summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/arm-hwcap-madness.js
blob: ab95fb207c74a574f3b0e26d454bd27b25519856 (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
31
// |jit-test| skip-if: !getBuildConfiguration("arm"); test-also=--arm-hwcap=armv7,vfp

// The command line options disable the idiv instruction and thus make the
// baseline compiler unavailable, so we must be prepared for a run-time error
// below in the baseline-only configuration.

// The flags above should be sufficient for there to be a WebAssembly object.
assertEq(typeof WebAssembly, "object");

try {
    var i = new WebAssembly.Instance(
        new WebAssembly.Module(
            wasmTextToBinary('(module (func (export "") (result i32) (i32.const 42)))')));
    assertEq(i.exports[""](), 42);
} catch (e) {
    if (String(e).match(/no WebAssembly compiler available/)) {
        switch (wasmCompileMode()) {
        case "none":
            // This is fine: the limited feature set combined with command line
            // compiler selection caused all compilers to be disabled.
            break;
        default:
            // This is not fine: if there's a compiler available then we should
            // not get an error.
            throw e;
        }
    } else {
        // Some other error, propagate it.
        throw e;
    }
}