summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/gc/disabled.js
blob: 206d32b1c429100768bb794380bb9769cfb5feea (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
// |jit-test| skip-if: wasmGcEnabled()

const { CompileError, validate } = WebAssembly;

const UNRECOGNIZED_OPCODE_OR_BAD_TYPE = /unrecognized opcode|gc not enabled|invalid heap type|invalid inline block type|bad type|Invalid type|invalid function type/;

let simpleTests = [
    "(module (func (drop (ref.null eq))))",
    "(module (func $test (local eqref)))",
    "(module (func $test (param eqref)))",
    "(module (func $test (result eqref) (ref.null eq)))",
    "(module (func $test (block (result eqref) (unreachable)) unreachable))",
    "(module (func $test (result i32) (local eqref) (ref.is_null (local.get 0))))",
    `(module (import "a" "b" (func (param eqref))))`,
    `(module (import "a" "b" (func (result eqref))))`,
    `(module (type $s (struct)))`,
];

// Test that use of gc-types fails when gc is disabled.

for (let src of simpleTests) {
    let bin = wasmTextToBinary(src);
    assertEq(validate(bin), false);
    wasmCompilationShouldFail(bin, UNRECOGNIZED_OPCODE_OR_BAD_TYPE);
}