[JSC] Do not use asArrayModes() with Structures because it discards TypedArray inform...
[WebKit-https.git] / JSTests / stress / for-in-proxy-target-changed-structure.js
1 var createProxy = $vm.createProxy;
2
3 var theO;
4
5 function deleteAll() {
6     delete theO.a;
7     delete theO.b;
8     delete theO.c;
9     delete theO.d;
10     for (var i = 0; i < 10; ++i)
11         theO["i" + i] = 42;
12     theO.a = 11;
13     theO.b = 12;
14     theO.c = 13;
15     theO.d = 14;
16 }
17
18 function foo(o_) {
19     var o = o_;
20     var result = 0;
21     for (var s in o) {
22         result += o[s];
23         deleteAll();
24     }
25     return result;
26 }
27
28 noInline(foo);
29
30 for (var i = 0; i < 10000; ++i) {
31     var result = foo(createProxy(theO = {a:1, b:2, c:3, d:4}));
32     if (result != 1 + 12 + 13 + 14)
33         throw "Error: bad result: " + result;
34 }