tor-browser

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

iterator-indices-8.js (1056B)


      1 // Tests megamorphic stores to fixed and dynamics slots, and dense elements
      2 function test(obj) {
      3  let index = 0;
      4  for (var s in obj) {
      5    obj[s] = index;
      6    index++;
      7  }
      8  index = 0;
      9  for (var s in obj) {
     10    assertEq(obj[s], index);
     11    index++;
     12  }
     13 }
     14 function test2(obj) {
     15  let index = 0;
     16  var keys = Object.keys(obj);
     17  for (var i = 0; i < keys.length; i++) {
     18    var s = keys[i];
     19    obj[s] = index;
     20    index++;
     21  }
     22  index = 0;
     23  var keys = Object.keys(obj);
     24  for (var i = 0; i < keys.length; i++) {
     25    var s = keys[i];
     26    assertEq(obj[s], index);
     27    index++;
     28  }
     29 }
     30 
     31 var arr = [];
     32 var arr2 = [];
     33 var elem_obj = [];
     34 var elem_obj2 = [];
     35 for (var i = 0; i < 20; i++) {
     36  var obj = {};
     37  var obj2 = {};
     38  for (var j = 0; j < i; j++) {
     39    obj["x_" + i + "_" + j] = 1;
     40    obj2["x_" + i + "_" + j] = 1;
     41  }
     42  arr.push(obj);
     43  arr2.push(obj2);
     44  elem_obj.push(1);
     45  elem_obj2.push(1);
     46 }
     47 arr.push(elem_obj);
     48 arr2.push(elem_obj2);
     49 
     50 with ({}) {}
     51 for (var i = 0; i < 2000; i++) {
     52  var idx = i % arr.length;
     53  test(arr[idx]);
     54  test2(arr2[idx]);
     55 }