[JSC] Implement optimized WeakMap and WeakSet
[WebKit-https.git] / JSTests / microbenchmarks / weak-map-key.js
1 function assert(b) {
2     if (!b)
3         throw new Error("Bad!");
4 }
5 noInline(assert);
6
7 let weakMap = new WeakMap;
8
9 function objectKey(o) {
10     return weakMap.get(o);
11 }
12 noInline(objectKey);
13
14 const iters = 1000000;
15 let start = Date.now();
16
17 {
18     let o = {f: 20};
19     var array = [];
20     for (var i = 0; i < 10; i++) {
21         let newObject = { f: i };
22         weakMap.set(newObject, i);
23         array[i] = newObject;
24     }
25
26     for (var j = 0; j < iters; ++j) {
27         for (let i = 0; i < 10; i++)
28             assert(objectKey(array[i]) === i);
29     }
30 }
31
32 const verbose = false;
33 if (verbose)
34     print(Date.now() - start);