aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/inspector/debugger/wasm-reset-context-group.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/inspector/debugger/wasm-reset-context-group.js')
-rw-r--r--deps/v8/test/inspector/debugger/wasm-reset-context-group.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/deps/v8/test/inspector/debugger/wasm-reset-context-group.js b/deps/v8/test/inspector/debugger/wasm-reset-context-group.js
new file mode 100644
index 0000000000..be347c0736
--- /dev/null
+++ b/deps/v8/test/inspector/debugger/wasm-reset-context-group.js
@@ -0,0 +1,63 @@
+// Copyright 2018 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.
+
+InspectorTest.log('Checks resetting context group with wasm.');
+
+utils.load('test/mjsunit/wasm/wasm-constants.js');
+utils.load('test/mjsunit/wasm/wasm-module-builder.js');
+
+var builder = new WasmModuleBuilder();
+
+// wasm_B calls wasm_A <param0> times.
+builder.addFunction('wasm_func', kSig_i_i)
+ .addBody([
+ // clang-format off
+ kExprGetLocal, 0,
+ kExprI32Const, 1,
+ kExprI32Sub,
+ // clang-format on
+ ])
+ .exportAs('main');
+
+
+var module_bytes = builder.toArray();
+
+function instantiate(bytes) {
+ var buffer = new ArrayBuffer(bytes.length);
+ var view = new Uint8Array(buffer);
+ for (var i = 0; i < bytes.length; ++i) {
+ view[i] = bytes[i] | 0;
+ }
+
+ var module = new WebAssembly.Module(buffer);
+ // Set global variable.
+ instance = new WebAssembly.Instance(module);
+}
+
+var contextGroup1 = new InspectorTest.ContextGroup();
+var session1 = contextGroup1.connect();
+session1.setupScriptMap();
+
+let contextGroup2 = new InspectorTest.ContextGroup();
+let session2 = contextGroup2.connect();
+session2.setupScriptMap();
+
+(async function test() {
+ await session1.Protocol.Debugger.enable();
+ await session2.Protocol.Debugger.enable();
+
+ session1.Protocol.Runtime.evaluate({
+ expression: `var instance;(${instantiate.toString()})(${JSON.stringify(module_bytes)})`});
+
+ session2.Protocol.Runtime.evaluate({
+ expression: `var instance;(${instantiate.toString()})(${JSON.stringify(module_bytes)})`});
+
+ contextGroup2.reset();
+
+ await session1.Protocol.Debugger.onceScriptParsed(2);
+ InspectorTest.logMessage(await session1.Protocol.Runtime.evaluate({expression: 'instance.exports.main(4)'}));
+ InspectorTest.logMessage(await session2.Protocol.Runtime.evaluate({expression: 'instance.exports.main(5)'}));
+
+ InspectorTest.completeTest();
+})();