diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/jit-test/tests/wasm/function-references/binary.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/wasm/function-references/binary.js')
-rw-r--r-- | js/src/jit-test/tests/wasm/function-references/binary.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/function-references/binary.js b/js/src/jit-test/tests/wasm/function-references/binary.js new file mode 100644 index 0000000000..91cf807dc4 --- /dev/null +++ b/js/src/jit-test/tests/wasm/function-references/binary.js @@ -0,0 +1,52 @@ +// |jit-test| skip-if: !wasmFunctionReferencesEnabled() + +load(libdir + "wasm-binary.js"); + +const v2vSig = {args:[], ret:VoidCode}; +const v2vSigSection = sigSection([v2vSig]); + +function checkInvalid(binary, errorMessage) { + assertErrorMessage(() => new WebAssembly.Module(binary), + WebAssembly.CompileError, + errorMessage); +} + +// The immediate of ref.null is a heap type, not a general reference type + +const invalidRefNullHeapBody = moduleWithSections([ + v2vSigSection, + declSection([0]), + bodySection([ + funcBody({locals:[], body:[ + RefNullCode, + OptRefCode, + AnyFuncCode, + DropCode, + ]}) + ]) +]); +checkInvalid(invalidRefNullHeapBody, /invalid heap type/); + +const invalidRefNullHeapElem = moduleWithSections([ + generalElemSection([ + { + flag: PassiveElemExpr, + typeCode: AnyFuncCode, + elems: [ + [RefNullCode, OptRefCode, AnyFuncCode, EndCode] + ] + } + ]) +]); +checkInvalid(invalidRefNullHeapElem, /invalid heap type/); + +const invalidRefNullHeapGlobal = moduleWithSections([ + globalSection([ + { + valType: AnyFuncCode, + flag: 0, + initExpr: [RefNullCode, OptRefCode, AnyFuncCode, EndCode] + } + ]) +]); +checkInvalid(invalidRefNullHeapGlobal, /invalid heap type/); |