[ARM,MIPS] Skip slow tests
[WebKit-https.git] / JSTests / stress / activation-sink-default-value-tdz-error.js
1 //@ skip if $buildType == "debug" or $architecture == "x86"
2
3 "use strict";
4
5 var n = 10000000;
6
7 function shouldThrowTDZ(func) {
8     var hasThrown = false;
9     try {
10         func();
11     } catch(e) {
12         if (e.name.indexOf("ReferenceError") !== -1)
13             hasThrown = true;
14     }
15     if (!hasThrown)
16         throw new Error("Did not throw TDZ error");
17 }
18 noInline(shouldThrowTDZ);
19
20 function bar(f) { f(10); }
21
22 function foo(b) {
23     let result = 0;
24     var set = function (x) { result = x; }
25     var cap = function() { return tdzPerpetrator; }
26     if (b) {
27         bar(set);
28         return tdzPerpetrator;
29     }
30     let tdzPerpetrator;
31     return result;
32 }
33
34 noInline(bar);
35 noInline(foo);
36
37 for (var i = 0; i < n; i++) {
38     var bool = !(i % 100);
39     if (bool)
40         shouldThrowTDZ(function() { foo(bool); });
41     else {
42         var result = foo(bool);
43         if (result != 0)
44             throw "Error: bad result: " + result;
45     }
46 }