v8/test/inspector/runtime/console-message-before-enable.js
Benedikt Meurer 8f8d2fe4ca [inspector] Fix Runtime.setMaxCallStackSizeToCapture.
This change fixes the implementation of the previously introduced API
`Runtime.setMaxCallStackSizeToCapture` to work correctly and also apply
(consistently) to stack traces captured by V8 when exceptions are
thrown. It does so in a fully backwards compatible manner.

This change thus makes the previous fix for catapult (which landed in
http://crrev.com/c/3347789) effective, and therefore ensures that real
world performance benchmarks aren't affected by the use of the `Runtime`
domain in the catapult test framework.

Note this is basically a reland of crrev.com/c/3361839, but without
touching the stack traces for console messages (which led to the
regressions in crbug/1283516, crbug/1283523, etc.).

Fixed: chromium:1280831
Bug: chromium:1283162, chromium:1278650, chromium:1258599
Bug: chromium:1280803, chromium:1280832, chromium:1280818
Doc: https://bit.ly/v8-cheaper-inspector-stack-traces
Change-Id: I3dcec7b75d76ca267fac8bd6fcb2cda60d5e60dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3364086
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78479}
2022-01-04 15:30:46 +00:00

38 lines
957 B
JavaScript

// Copyright 2022 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.
const {session, contextGroup, Protocol} = InspectorTest.start(
'Checks that console messages before Runtime.enable include a single stack frame');
contextGroup.addScript(`
function foo() {
console.log("Hello from foo!");
}
function bar() {
console.trace("Hello from bar!");
foo();
}
console.error('Error on toplevel');
foo();
bar();
//# sourceURL=test.js`);
Protocol.Runtime.onConsoleAPICalled(
({params}) => InspectorTest.logMessage(params));
InspectorTest.runAsyncTestSuite([
async function testEnable() {
await Protocol.Runtime.enable();
await Protocol.Runtime.disable();
},
async function testEnableAfterDiscard() {
await Protocol.Runtime.discardConsoleEntries();
await Protocol.Runtime.enable();
await Protocol.Runtime.disable();
}
]);