tor-browser

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

cross-realm-iterator-lookup.js (688B)


      1 // Test for `arguments[Symbol.iterator]` lookups on a cross-realm ArgumentsObject.
      2 // The result must have the same realm as the object.
      3 function test() {
      4  var g = newGlobal({sameCompartmentAs: this});
      5  for (var i = 0; i < 30; i++) {
      6    var myRealmArgs = (function() { return arguments; })(1, 2, 3);
      7    var crossRealmArgs = g.evaluate(`(function() { return arguments; })(1, 2, 3)`);
      8    var args = (i & 1) ? myRealmArgs : crossRealmArgs;
      9    var createIter = args[Symbol.iterator];
     10    assertEq(objectGlobal(createIter), (i & 1) ? this : g);
     11    var iter = createIter.call(args);
     12    assertEq(objectGlobal(iter), (i & 1) ? this : g);
     13    assertEq(iter.next().value, 1);
     14  }
     15 }
     16 test();