[ARM,MIPS] Skip slow tests
[WebKit-https.git] / JSTests / stress / array-storage-length.js
1 'use strict';
2
3 function shouldBe(actual, expected) {
4     if (actual !== expected)
5         throw new Error('bad value: ' + actual);
6 }
7
8 var object = { a: 10 };
9 Object.defineProperties(object, {
10     "0": {
11         get: function() { return this.a; },
12         set: function(x) { this.a = x; },
13     },
14 });
15
16 var array = [ 0, 1, 2, 3, 4, 5 ];
17 ensureArrayStorage(array);
18
19 function testInBound(array)
20 {
21     return array.length;
22 }
23 noInline(testInBound);
24 for (var i = 0; i < 1e5; ++i)
25     shouldBe(testInBound(array), 6);
26
27 function testUncountable(array)
28 {
29     return array.length;
30 }
31 noInline(testUncountable);
32 for (var i = 0; i < 1e5; ++i)
33     shouldBe(testUncountable(array), 6);
34 array.length = 0xffffffff - 1;
35 for (var i = 0; i < 1e5; ++i)
36     shouldBe(testUncountable(array), 0xffffffff - 1);
37
38
39 var slowPutArray = [ 0, 1, 2, 3, 4, 5 ];
40 ensureArrayStorage(slowPutArray);
41 slowPutArray.__proto__ = object;
42
43 function testSlowPutInBound(array)
44 {
45     return array.length;
46 }
47 noInline(testSlowPutInBound);
48 for (var i = 0; i < 1e5; ++i)
49     shouldBe(testSlowPutInBound(slowPutArray), 6);
50
51 function testSlowPutUncountable(array)
52 {
53     return array.length;
54 }
55 noInline(testSlowPutUncountable);
56 for (var i = 0; i < 1e5; ++i)
57     shouldBe(testSlowPutUncountable(slowPutArray), 6);
58 slowPutArray.length = 0xffffffff - 1;
59 for (var i = 0; i < 1e5; ++i)
60     shouldBe(testSlowPutUncountable(slowPutArray), 0xffffffff - 1);