summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/timeout/debug-interrupt-1.js
blob: 940bde07a1c1dd84c0481034009d97fd4315741f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// |jit-test| exitstatus: 6; skip-if: !wasmDebuggingEnabled()

// Don't include wasm.js in timeout tests: when wasm isn't supported, it will
// quit(0) which will cause the test to fail.

// Note: this test triggers an interrupt and then iloops in Wasm code. If the
// interrupt fires before the Wasm code is compiled, the test relies on the
// JS interrupt check in onEnterFrame to catch it. Warp/Ion code however can
// elide the combined interrupt/overrecursion check in simple leaf functions.
// Long story short, set the Warp threshold to a non-zero value to prevent
// intermittent timeouts with --ion-eager.
setJitCompilerOption("ion.warmup.trigger", 30);

var g = newGlobal({newCompartment: true});
g.parent = this;
g.eval("Debugger(parent).onEnterFrame = function() {};");
timeout(0.01);
var code = wasmTextToBinary(`(module
    (func (export "f1")
        (loop $top br $top)
    )
)`);
new WebAssembly.Instance(new WebAssembly.Module(code)).exports.f1();