diff options
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.js | 63 |
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(); +})(); |