[ARM,MIPS] Skip slow tests
[WebKit-https.git] / JSTests / stress / dfg-object-prototype-of.js
1 function shouldBe(actual, expected)
2 {
3     if (actual !== expected)
4         throw new Error('bad value: ' + actual);
5 }
6
7 function shouldThrow(func, errorMessage) {
8     var errorThrown = false;
9     var error = null;
10     try {
11         func();
12     } catch (e) {
13         errorThrown = true;
14         error = e;
15     }
16     if (!errorThrown)
17         throw new Error('not thrown');
18     if (String(error) !== errorMessage)
19         throw new Error(`bad error: ${String(error)}`);
20 }
21
22 (function () {
23     function target(object)
24     {
25         return Object.getPrototypeOf(object);
26     }
27     noInline(target);
28
29     for (var i = 0; i < 1e3; ++i)
30         shouldBe(target({}), Object.prototype);
31 }());
32
33 (function () {
34     function target(object)
35     {
36         return Object.getPrototypeOf(object);
37     }
38     noInline(target);
39
40     for (var i = 0; i < 1e3; ++i) {
41         shouldThrow(() => target(null), `TypeError: null is not an object (evaluating 'Object.getPrototypeOf(object)')`);
42         shouldThrow(() => target(undefined), `TypeError: undefined is not an object (evaluating 'Object.getPrototypeOf(object)')`);
43     }
44 }());
45
46 (function () {
47     function target(object)
48     {
49         return Object.getPrototypeOf(object);
50     }
51     noInline(target);
52
53     for (var i = 0; i < 1e3; ++i)
54         shouldBe(target("Cocoa"), String.prototype);
55 }());
56
57 (function () {
58     function target(object)
59     {
60         return Object.getPrototypeOf(object);
61     }
62     noInline(target);
63
64     for (var i = 0; i < 1e3; ++i)
65         shouldBe(target(42), Number.prototype);
66 }());
67
68 (function () {
69     function target(object)
70     {
71         return Object.getPrototypeOf(object);
72     }
73     noInline(target);
74
75     for (var i = 0; i < 1e3; ++i)
76         shouldBe(target(42.195), Number.prototype);
77 }());
78
79 (function () {
80     function target(object)
81     {
82         return Object.getPrototypeOf(object);
83     }
84     noInline(target);
85
86     for (var i = 0; i < 1e3; ++i)
87         shouldBe(target(true), Boolean.prototype);
88 }());
89
90 (function () {
91     function target(object)
92     {
93         return Object.getPrototypeOf(object);
94     }
95     noInline(target);
96
97     for (var i = 0; i < 1e3; ++i)
98         shouldBe(target(Symbol("Cocoa")), Symbol.prototype);
99 }());
100
101 (function () {
102     function target(object)
103     {
104         return Object.getPrototypeOf(object);
105     }
106     noInline(target);
107
108     for (var i = 0; i < 1e3; ++i) {
109         shouldBe(target("Cocoa"), String.prototype);
110         shouldBe(target(42), Number.prototype);
111         shouldBe(target(42.195), Number.prototype);
112         shouldBe(target(true), Boolean.prototype);
113         shouldBe(target(Symbol("Cocoa")), Symbol.prototype);
114     }
115 }());