summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-01-02 16:12:39 +0100
committerAnna Henningsen <anna@addaleax.net>2019-01-06 00:52:57 +0100
commit47a9eea8c8843414aa09dbdea9ca5fb74279f5ab (patch)
tree04ba5587feb07836a74939775c5f4f91d0465270 /test
parentb91093f0e529229cb2810dbc22781a57a71c3749 (diff)
downloadandroid-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.js12
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);
+}