[ARM,MIPS] Skip slow tests
[WebKit-https.git] / JSTests / stress / for-in-side-effects.js
1 // Regression test for bug 179212
2
3 var p = { "a": {} };
4
5 var flag = 0;
6 var data = [];
7 var copy = [];
8
9 var z = new Proxy({}, {
10     getPrototypeOf: function() {
11         if (flag == 2) {
12             data[0] = { "x": "I changed" };
13         }
14
15         if (flag == 1) {
16             flag = 2;
17         }
18
19         return {"a": 1, "b": 2}
20     }
21 });
22
23 p.__proto__ = z;
24
25 function reset()
26 {
27     flag = 0;
28     data = [1.1, 2.2, 3.3];
29     copy = [];
30 }
31
32 function runTest(func)
33 {
34     reset();
35
36     for (var i = 0; i < 0x10000; i++)
37         func();
38
39     flag = 1;
40     func();
41
42     if (copy[0].x != "I changed")
43         throw "Expected updated value for copy[0]";
44 }
45
46 function testWithoutFTL()
47 {
48     function f()
49     {
50         data[0] = 2.2;
51         for(var d in p) {
52             copy[0] = data[0];
53             copy[1] = data[1];
54             copy[2] = data[2];
55         }
56     }
57
58     noFTL(f);
59
60     runTest(f);
61 }
62
63 function testWithFTL()
64 {
65     function f()
66     {
67         data[0] = 2.2;
68         for(var d in p) {
69             copy[0] = data[0];
70             copy[1] = data[1];
71             copy[2] = data[2];
72         }
73     }
74
75     runTest(f);
76 }
77
78 testWithoutFTL();
79 testWithFTL();