Exemple #1
0
 it('should not rewrite "do" in object properties', function () {
   var c = code.notprops;
   var compiled = loopProtect.rewriteLoops(c);
   assert(compiled === c);
   c = code.irl3;
   compiled = loopProtect.rewriteLoops(c);
   assert(compiled === c);
 });
Exemple #2
0
  it('should handle continue statements and gotos', function () {
    var c = code.continues;
    var compiled = loopProtect.rewriteLoops(c);
    assert(spy(compiled) === 10);

    c = code.continues2;
    compiled = loopProtect.rewriteLoops(c);
    assert(spy(compiled) === 2);
  });
Exemple #3
0
  it('should rewrite for loops', function () {
    var c = code.simplefor;
    var compiled = loopProtect.rewriteLoops(c);
    assert(compiled !== c);
    var result = run(compiled);
    assert(result === 10);

    c = code.simplefor2;
    compiled = loopProtect.rewriteLoops(c);
    assert(compiled !== c);
    result = run(compiled);
    assert(result === 10);
  });
Exemple #4
0
  it('should protect infinite while', function () {
    var c = code.whiletrue;
    var compiled = loopProtect.rewriteLoops(c);

    assert(compiled !== c);
    assert(spy(compiled) === true);
  });
Exemple #5
0
 it('should handle one liner for with an inline function', function () {
   var c = code.onelineforinline;
   var compiled = loopProtect.rewriteLoops(c);
   assert(compiled !== c);
   var result = run(compiled);
   assert(result === true, 'value is ' + result);
 });
Exemple #6
0
 it('should allow nested loops to run', function () {
   var c = code.irl2;
   var compiled = loopProtect.rewriteLoops(c);
   var r = run(compiled);
   assert(compiled !== c);
   assert(r === 120000, r);
 });
Exemple #7
0
 it('should rewrite loops when curlies are on the next line', function () {
   var c = code.dirtybraces;
   var compiled = loopProtect.rewriteLoops(c);
   var r = spy(compiled);
   assert(compiled !== c);
   assert(r === 10000, r);
 });
Exemple #8
0
 it('should not rewrite "do" in comments', function () {
   var c = code.notcomments;
   var compiled = loopProtect.rewriteLoops(c);
   // console.log(compiled);
   assert(compiled === c);
   assert(spy(compiled) === true);
 });
Exemple #9
0
  it('should rewrite one line for loops', function () {
    var c = code.onelinefor;
    var compiled = loopProtect.rewriteLoops(c);
    assert(compiled !== c);
    var result = run(compiled);
    assert(result === 10);

    c = code.onelinefor2;
    compiled = loopProtect.rewriteLoops(c);
    assert(compiled !== c);

    // console.log('\n---------\n' + c + '\n---------\n' + compiled);

    result = run(compiled);
    assert(result === 0);
  });
Exemple #10
0
  it('should protect do loops', function () {
    var c = code.dowhile;
    var compiled = loopProtect.rewriteLoops(c);
    assert(compiled !== c);
    assert(spy(compiled) === 3);

    c = code.dowhilenested;
    compiled = loopProtect.rewriteLoops(c);
    // console.log('\n----------');
    // console.log(c);
    // console.log('\n----------');
    // console.log(compiled);
    assert(compiled !== c);
    assert(spy(compiled) === 3);

  });
Exemple #11
0
 it('should rewrite one line while loops', function () {
   var c = code.onelinewhile2;
   var compiled = loopProtect.rewriteLoops(c);
   assert(compiled !== c);
   // console.log('\n---------\n' + c + '\n---------\n' + compiled);
   var result = run(compiled);
   assert(result === undefined);
 });
Exemple #12
0
 it('should ignore comments', function () {
   var c = code.ignorecomments;
   var compiled = loopProtect.rewriteLoops(c);
   // console.log('\n---------\n' + c + '\n---------\n' + compiled);
   assert(compiled === c);
   var result = run(compiled);
   assert(result === true);
 });
Exemple #13
0
  it('should handle things that *look* like labels', function () {
    var c = code.notlabels2;
    var compiled = loopProtect.rewriteLoops(c);
    assert(compiled !== c);
    var result = run(compiled);
    assert(result === 10, 'actual ' + result);

    c = code.notlabels;
    compiled = loopProtect.rewriteLoops(c);
    assert(compiled !== c);
    result = run(compiled);
    assert(result === 10, 'actual ' + result);

    // c = code.cs;
    // compiled = loopProtect.rewriteLoops(c);
    // assert(compiled !== c);
    // result = run(compiled);
    // assert(result === 10, 'actual ' + result);
  });
Exemple #14
0
 it('should find one liners on multiple lines', function () {
   var c = code.onelinenewliner;
   var compiled = loopProtect.rewriteLoops(c);
   var r = spy(compiled);
   // console.log('\n----------');
   // console.log(c);
   // console.log('\n----------');
   // console.log(compiled);
   assert(compiled !== c, compiled);
   assert(r === 10000, 'return value does not match 10000: ' + r);
 });
Exemple #15
0
 it('should leave none loop code alone', function () {
   assert(loopProtect.rewriteLoops(code.simple) === code.simple);
 });
Exemple #16
0
 it('should ignore when loop protect is disabled', function () {
   var c = code.disabled;
   var compiled = loopProtect.rewriteLoops(c);
   assert(compiled === c);
   assert(spy(compiled) === 3);
 });
Exemple #17
0
 it('should not corrupt multi-line (on more than one line) loops', function () {
   var c = code.lotolines;
   var compiled = loopProtect.rewriteLoops(c);
   assert(compiled !== c);
   assert(spy(compiled) === 8);
 });
Exemple #18
0
 it('should handle brackets inside of loop conditionals', function () {
   var c = code.brackets;
   var compiled = loopProtect.rewriteLoops(c);
   assert(compiled !== c);
   assert(spy(compiled) === 11);
 });
Exemple #19
0
 it('should handle labels with comments', function () {
   var c = code.labelWithComment;
   var compiled = loopProtect.rewriteLoops(c);
   assert(spy(compiled) === 10);
 });
Exemple #20
0
 it('should protect infinite for', function () {
   var c = code.irl1;
   var compiled = loopProtect.rewriteLoops(c);
   assert(compiled !== c);
   assert(spy(compiled) === 0);
 });
Exemple #21
0
 it('should not rewrite "do" in strings', function () {
   var c = code.notloops;
   var compiled = loopProtect.rewriteLoops(c);
   assert(compiled === c);
 });