summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/timeout/2.js
blob: 25267f226cc3ecd19c06462f6e846d58d32616e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// |jit-test| exitstatus: 6; skip-if: !wasmIsSupported()

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

var tbl = new WebAssembly.Table({initial:1, element:"anyfunc"});

new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`(module
    (import "imports" "tbl" (table 1 funcref))
    (func $iloop
        loop $top
            br $top
        end
    )
    (elem (i32.const 0) $iloop)
)`)), {imports:{tbl}});

var outer = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`(module
    (import "imports" "tbl" (table 1 funcref))
    (type $v2v (func))
    (func (export "run")
        i32.const 0
        call_indirect (type $v2v)
    )
)`)), {imports:{tbl}});

setJitCompilerOption('simulator.always-interrupt', 1);
timeout(1, () => { tbl.set(0, null); gc() });
outer.exports.run();
assertEq(true, false);