tor-browser

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

iterator-indices-megamorphic-permissive.js (864B)


      1 function test(obj, expected) {
      2  var count = 0;
      3  for (var s in obj) {
      4    if (obj.hasOwnProperty(s)) {
      5      count += obj[s];
      6    }
      7  }
      8  assertEq(count, expected);
      9 }
     10 
     11 function test2(obj, expected) {
     12  var count = 0;
     13  var keys = Object.keys(obj);
     14  for (var i = 0; i < keys.length; i++) {
     15    var s = keys[i];
     16    if (obj.hasOwnProperty(s)) {
     17      count += obj[s];
     18    }
     19  }
     20  assertEq(count, expected);
     21 }
     22 
     23 var arr = [];
     24 for (var i = 0; i < 20; i++) {
     25  var obj = {};
     26  for (var j = 0; j < i; j++) {
     27    if (j == i - 1) {
     28      Object.defineProperty(obj, "x_" + i + "_" + j, {
     29        get() {
     30          return 1;
     31        },
     32        enumerable: true,
     33      })
     34    } else {
     35      obj["x_" + i + "_" + j] = 1;
     36    }
     37  }
     38 
     39  arr.push(obj);
     40 }
     41 
     42 with ({}) {}
     43 for (var i = 0; i < 2000; i++) {
     44  var idx = i % arr.length;
     45  test(arr[idx], idx);
     46  test2(arr[idx], idx);
     47 }