tor-browser

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

iterator-set-and-redefine.js (804B)


      1 function mapped() {
      2    var Iterator = {};
      3 
      4    // First overwrite the iterator.
      5    arguments[Symbol.iterator] = Iterator;
      6 
      7    // And then redefine a property attribute.
      8    Object.defineProperty(arguments, Symbol.iterator, {
      9        writable: false
     10    });
     11 
     12    // Make sure redefining an attribute doesn't reset the iterator value.
     13    assertEq(arguments[Symbol.iterator], Iterator);
     14 }
     15 mapped();
     16 
     17 function unmapped() {
     18  "use strict";
     19 
     20  var Iterator = {};
     21 
     22  // First overwrite the iterator.
     23  arguments[Symbol.iterator] = Iterator;
     24 
     25  // And then redefine a property attribute.
     26  Object.defineProperty(arguments, Symbol.iterator, {
     27      writable: false
     28  });
     29 
     30  // Make sure redefining an attribute doesn't reset the iterator value.
     31  assertEq(arguments[Symbol.iterator], Iterator);
     32 }
     33 unmapped();