tor-browser

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

cross-realm-iterator-suppression.js (668B)


      1 function foo(o) {
      2  // Ensure a NativeIterator exists for o.
      3  for (var s in o) {}
      4 
      5  // Loop over the keys, deleting y.
      6  // If y is correctly suppressed, then result should
      7  // be the name of the first property.
      8  var result = "";
      9  for (var s in o) {
     10    delete o.y;
     11    result += s;
     12  }
     13  assertEq(o[result], 42);
     14 }
     15 
     16 with ({}) {}
     17 for (var i = 0; i < 100; i++) {
     18  var o = {};
     19  o["x" + i] = 42;
     20  o.y = 1;
     21  foo(o);
     22 }
     23 
     24 // Cross-realm, same-compartment
     25 var g = newGlobal({newCompartment: false});
     26 g.eval("var o = {x: 42, y: 1}");
     27 foo(g.o);
     28 
     29 // Cross-realm, cross-compartment
     30 var g2 = newGlobal({newCompartment: true});
     31 g2.eval("var o = {x: 42, y: 1}");
     32 foo(g2.o);