tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

testSlowArrayPopMultiFrame.js (648B)


      1 // Same thing but it needs to reconstruct multiple stack frames (so,
      2 // multiple functions called inside the loop)
      3 function testSlowArrayPopMultiFrame() {    
      4    var a = [];
      5    for (var i = 0; i < 9; i++)
      6        a[i] = [0];
      7    a[8].__defineGetter__("0", function () { return 23; });
      8 
      9    function child(a, i) {
     10        return a[i].pop();  // reenters interpreter in getter
     11    }
     12    function parent(a, i) {
     13        return child(a, i);
     14    }
     15    function gramps(a, i) { 
     16        return parent(a, i);
     17    }
     18 
     19    var last;
     20    for (var i = 0; i < 9; i++)
     21        last = gramps(a, i);
     22    return last;
     23 }
     24 assertEq(testSlowArrayPopMultiFrame(), 23);