[JSC] Clean up Object.entries implementation
[WebKit-https.git] / JSTests / microbenchmarks / undefined-property-access.js
1 var someGlobal;
2
3 // This is a simple speed test. It should go fast.
4
5 function foo() {
6     var myObject = {};
7     for (var i = 0; i < 10000000; ++i) {
8         someGlobal = myObject.undefinedProperty;
9     }
10     return someGlobal;
11 }
12 result = foo();
13 if (result != undefined)
14     throw new Error("Bad result: " + result);
15
16 // This test checks that a cached property lookup miss doesn't continue to fire when the property suddenly appears on the object.
17
18 function bar() {
19     var myObject = {};
20     for (var i = 0; i < 100000000; ++i) {
21         someGlobal = myObject.someProperty;
22         if (i == 50000000)
23             myObject.someProperty = 1;
24     }
25     return someGlobal;
26 }
27 var result = bar();
28 if (result != 1)
29     throw new Error("Bad result: " + result);
30 someGlobal = undefined;
31
32 // This test checks that a cached property lookup miss doesn't continue to fire when the property suddenly appears on the object's prototype.
33
34 function baz() {
35     var myPrototype = {}
36     var myObject = {};
37     myObject.__proto__ = myPrototype;
38     for (var i = 0; i < 100000000; ++i) {
39         someGlobal = myObject.someProperty;
40         if (i == 50000000)
41             myPrototype.someProperty = 2;
42     }
43     return someGlobal;
44 }
45 var result = baz();
46 if (result != 2)
47     throw new Error("Bad result: " + result);
48