diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-01-02 16:12:39 +0100 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-01-06 00:52:57 +0100 |
commit | 47a9eea8c8843414aa09dbdea9ca5fb74279f5ab (patch) | |
tree | 04ba5587feb07836a74939775c5f4f91d0465270 /test | |
parent | b91093f0e529229cb2810dbc22781a57a71c3749 (diff) | |
download | android-node-v8-47a9eea8c8843414aa09dbdea9ca5fb74279f5ab.tar.gz android-node-v8-47a9eea8c8843414aa09dbdea9ca5fb74279f5ab.tar.bz2 android-node-v8-47a9eea8c8843414aa09dbdea9ca5fb74279f5ab.zip |
v8: enable inline WASM in serialization API
Since the API we expose through the `v8` module is Buffer-based,
we cannot transfer WASM modules directly. Instead, we enable
the V8-provided inline WASM (de)serialization for WASM modules.
PR-URL: https://github.com/nodejs/node/pull/25313
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gus Caplan <me@gus.host>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-v8-serdes.js | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/test/parallel/test-v8-serdes.js b/test/parallel/test-v8-serdes.js index 242f0e1bda..3f88503546 100644 --- a/test/parallel/test-v8-serdes.js +++ b/test/parallel/test-v8-serdes.js @@ -4,6 +4,7 @@ const { internalBinding } = require('internal/test/binding'); const common = require('../common'); +const fixtures = require('../common/fixtures'); const assert = require('assert'); const v8 = require('v8'); const os = require('os'); @@ -11,6 +12,8 @@ const os = require('os'); const circular = {}; circular.circular = circular; +const wasmModule = new WebAssembly.Module(fixtures.readSync('test.wasm')); + const objects = [ { foo: 'bar' }, { bar: 'baz' }, @@ -20,7 +23,8 @@ const objects = [ undefined, null, 42, - circular + circular, + wasmModule ]; const hostObject = new (internalBinding('js_stream').JSStream)(); @@ -230,3 +234,9 @@ const deserializerTypeError = /^TypeError: buffer must be a TypedArray or a DataView$/, ); } + +{ + const deserializedWasmModule = v8.deserialize(v8.serialize(wasmModule)); + const instance = new WebAssembly.Instance(deserializedWasmModule); + assert.strictEqual(instance.exports.addTwo(10, 20), 30); +} |