aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/inspector/debugger/wasm-clone-module.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/inspector/debugger/wasm-clone-module.js')
-rw-r--r--deps/v8/test/inspector/debugger/wasm-clone-module.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/deps/v8/test/inspector/debugger/wasm-clone-module.js b/deps/v8/test/inspector/debugger/wasm-clone-module.js
new file mode 100644
index 0000000000..ac027a2f8b
--- /dev/null
+++ b/deps/v8/test/inspector/debugger/wasm-clone-module.js
@@ -0,0 +1,40 @@
+// Copyright 2019 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+let {session, contextGroup, Protocol} =
+ InspectorTest.start('Tests that cloning a module notifies the debugger');
+
+utils.load('test/mjsunit/wasm/wasm-module-builder.js');
+
+let builder = new WasmModuleBuilder();
+builder.addFunction('f', kSig_v_v).addBody([]).exportAs('f');
+let moduleBytes = JSON.stringify(builder.toArray());
+
+contextGroup.addScript(`
+ function test(moduleBytes) {
+ let wireBytes = new Uint8Array(moduleBytes);
+ let module = new WebAssembly.Module(wireBytes.buffer);
+ let serialized = %SerializeWasmModule(module);
+ let module2 = %DeserializeWasmModule(serialized, wireBytes);
+ let module3 = %CloneWasmModule(module);
+ }
+`);
+
+let scriptsSeen = 0;
+
+Protocol.Debugger.onScriptParsed(msg => {
+ let url = msg.params.url;
+ if (url.startsWith('wasm://')) {
+ InspectorTest.log(`Got URL: ${url}`);
+ if (++scriptsSeen == 3) {
+ InspectorTest.log('Done!');
+ InspectorTest.completeTest();
+ }
+ }
+});
+
+Protocol.Debugger.enable();
+Protocol.Runtime.evaluate({expression: `test(${moduleBytes});`});