tor-browser

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

testSetElem-Indexed.js (696B)


      1 // vim: set ts=8 sts=4 et sw=4 tw=99:
      2 
      3 function f() {
      4    return [[], [], [], []];
      5 }
      6 
      7 function setelem(obj, key, val) {
      8    obj[key] = val;
      9 }
     10 
     11 // Generate IC
     12 setelem([], 0, "hi");
     13 setelem([], 0, "hi");
     14 
     15 // Get some arrays pre-indexing.
     16 var arrays = f();
     17 
     18 // Do bad stuff.
     19 Object.defineProperty(Object.prototype, "1", { set: function (v) { this.kettle = v; } });
     20 
     21 var k = arrays[0];
     22 setelem(k, 1, 13);
     23 assertEq(k.kettle, 13);
     24 assertEq(k.hasOwnProperty("1"), false);
     25 
     26 Object.defineProperty(Array.prototype, "2", { set: function (v) { this.pot = v; } });
     27 k = arrays[1];
     28 setelem(k, 2, "yam");
     29 assertEq(k.pot, "yam");
     30 
     31 gc();
     32 
     33 // make sure this reset okay.
     34 setelem([], 0, "hi");
     35 setelem([], 0, "hi");