-
- Downloads
Bug 1703105 - wasm: Add testing utilities for running wasm spec test suite. r=lth
This commit adds new utilities for running the wasm spec test suite with a custom wast2js translator. The overall approach is to re-use WebAssembly.Global as a tagged value container so that JS may examine and create these values in a lossless manner. Specifically: * wasmGlobalsEqual - compares two globals for equality * wasmGlobalToString - debugging util for raw representation details * wasmGlobalFromArrayBuffer - create a POD value type from bytes * wasmGlobalExtractLane - extract a lane from a v128 value, as a global * wasmLosslessInvoke - call a wasm function, taking globals as parameters and returning globals as results. See the new test harness [1] for context of how these functions will be used. The addition of `wasmLosslessInvoke` causes a slight tweak to the stub layer so that interpreter entries can pass and receive v128 values. This functionality is only allowed for `wasmLosslessInvoke` and is guarded against explicitly. [1] https://github.com/eqrion/wasm-generate-testsuite/blob/master/wast2js/src/harness.js Differential Revision: https://phabricator.services.mozilla.com/D111225
Showing
- js/public/friend/ErrorNumbers.msg 1 addition, 1 deletionjs/public/friend/ErrorNumbers.msg
- js/src/builtin/TestingFunctions.cpp 394 additions, 2 deletionsjs/src/builtin/TestingFunctions.cpp
- js/src/shell/WasmTesting.cpp 6 additions, 0 deletionsjs/src/shell/WasmTesting.cpp
- js/src/wasm/WasmInstance.cpp 15 additions, 11 deletionsjs/src/wasm/WasmInstance.cpp
- js/src/wasm/WasmInstance.h 4 additions, 2 deletionsjs/src/wasm/WasmInstance.h
- js/src/wasm/WasmJS.cpp 1 addition, 33 deletionsjs/src/wasm/WasmJS.cpp
- js/src/wasm/WasmStubs.cpp 12 additions, 8 deletionsjs/src/wasm/WasmStubs.cpp
- js/src/wasm/WasmTypes.cpp 119 additions, 18 deletionsjs/src/wasm/WasmTypes.cpp
- js/src/wasm/WasmTypes.h 28 additions, 4 deletionsjs/src/wasm/WasmTypes.h
Loading
Please register or sign in to comment