[ARM,MIPS] Skip slow tests
[WebKit-https.git] / JSTests / stress / arguments-elimination-throw.js
1 function shouldBe(actual, expected)
2 {
3     if (actual !== expected)
4         throw new Error('bad value: ' + actual);
5 }
6
7 function shouldThrow(func, errorCondition) {
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 (!errorCondition(error))
19         throw new Error(`bad error: ${String(error)}`);
20 }
21
22 function strict(flag)
23 {
24     "use strict";
25     if (flag)
26         throw arguments;
27     return arguments.length;
28 }
29 noInline(strict);
30
31 function sloppy(flag)
32 {
33     if (flag)
34         throw arguments;
35     return arguments.length;
36 }
37 noInline(sloppy);
38
39 for (var i = 0; i < 1e6; ++i) {
40     shouldBe(strict(false), 1);
41     shouldBe(sloppy(false), 1);
42 }
43 function isArguments(arg)
44 {
45     shouldBe(String(arg), `[object Arguments]`);
46     shouldBe(arg.length, 1);
47     shouldBe(arg[0], true);
48     return true;
49 }
50 shouldThrow(() => strict(true), isArguments);
51 shouldThrow(() => sloppy(true), isArguments);