summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/regress/bug1839065.js
blob: e3d84589b6bda49fe67fc1d6499d17144c2f01f5 (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
// |jit-test| --setpref=wasm_gc=true; skip-if: !wasmGcEnabled() || !wasmGcEnabled()
function wasmEvalText(str, imports) {
    let binary = wasmTextToBinary(str);
    m = new WebAssembly.Module(binary);
    return new WebAssembly.Instance(m, imports);
}
let { newElem, f1, f2, f3, f4 } = wasmEvalText(`
    (type $a (array funcref))
    (elem $e func $f1 $f2 $f3 $f4)
    (func $f1 )
    (func $f2 )
    (func $f3 )
    (func $f4 )
    (func (export "newElem") (result eqref)
             i32.const 0
             i32.const 4
            array.new_elem $a $e
    )`).exports;

let s = "no exception";
try {
    wasmGcReadField(newElem(), -1.5);
} catch (e) {
    s = "" + e;
}

assertEq(s, "Error: Second argument must be a non-negative integer. " +
            "Usage: wasmGcReadField(obj, index)");