5ba9362bf9
When opening DevTools, make sure that Wasm modules properly show up, aka are reported via "Debugger.scriptParsed" events. Previously these scripts corresponding to Wasm modules had been filtered out explicitly (accidentally). Bug: chromium:1032042 Tbr: clemensb@chromium.org Change-Id: Id5e49616a4959c9ca611dbae6f1a4e9a47413ea6 Doc: https://bit.ly/wasm-dbg-stories-2019#bookmark=id.drrsobk5mo0p Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980588 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Mathias Bynens <mathias@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#65560}
45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
// 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.
|
|
|
|
load("test/mjsunit/wasm/wasm-module-builder.js");
|
|
|
|
const Debug = new DebugWrapper();
|
|
Debug.enable();
|
|
|
|
// Record the ID of the first script reported. This is to ignore
|
|
// the (now deprecated) fake scripts that are generated for every
|
|
// Wasm module.
|
|
let scriptId;
|
|
Debug.setListener((eventType, execState, eventData, data) => {
|
|
assertEquals(Debug.DebugEvent.AfterCompile, eventType);
|
|
if (scriptId === undefined) scriptId = eventData.scriptId;
|
|
});
|
|
|
|
// Create a simple Wasm script, which will be caught by the event listener.
|
|
const builder = new WasmModuleBuilder();
|
|
builder.addFunction('sub', kSig_i_ii)
|
|
// input is 2 args of type int and output is int
|
|
.addBody([
|
|
kExprLocalGet, 0, // local.get i0
|
|
kExprLocalGet, 1, // local.get i1
|
|
kExprI32Sub]) // i32.sub i0 i1
|
|
.exportFunc();
|
|
const instance = builder.instantiate();
|
|
|
|
// By now we should have recorded the ID of the Wasm script above.
|
|
assertNotEquals(undefined, scriptId);
|
|
|
|
// Disable and re-enable the Debugger and collect the reported
|
|
// script IDs.
|
|
const scriptIds = new Set();
|
|
Debug.disable();
|
|
Debug.setListener((eventType, execState, eventData, data) => {
|
|
assertEquals(Debug.DebugEvent.AfterCompile, eventType);
|
|
scriptIds.add(eventData.scriptId);
|
|
});
|
|
Debug.enable();
|
|
|
|
// Make sure the Wasm script was reported.
|
|
assertTrue(scriptIds.has(scriptId));
|