set-has-object.js (553B)
1 // Return a new set, possibly filling some dummy entries to enforce creating 2 // multiple hash buckets. 3 function createSet(values, n) { 4 var xs = [...values]; 5 for (var i = 0; i < n; ++i) { 6 xs.push({}); 7 } 8 return new Set(xs); 9 } 10 11 function runTest(fn) { 12 fn(0); 13 fn(100); 14 } 15 16 function test(n) { 17 var xs = [{}, {}]; 18 var ys = [{}, {}]; 19 var zs = [...xs, ...ys]; 20 var set = createSet(xs, n); 21 22 var N = 100; 23 var c = 0; 24 for (var i = 0; i < N; ++i) { 25 var z = zs[i & 3]; 26 if (set.has(z)) c++; 27 } 28 assertEq(c, N / 2); 29 } 30 runTest(test);