6d25f20f35
The logic to locate the correct function to set a breakpoint in based on script position was treating SharedFunctionInfo::EndPosition() as inclusive rather than exclusive. There are various assumptions all over the Debugger that seem to demand this treatment for the toplevel script. But it's definitely wrong for function literals. Fixed: chromium:1253277 Change-Id: I3421703673f4d78aee28e923e03e2fca24bc06ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3197715 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#77186}
24 lines
879 B
JavaScript
24 lines
879 B
JavaScript
// Copyright 2020 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 {contextGroup, Protocol, session} = InspectorTest.start('Regression test for crbug.com/1253277');
|
|
|
|
const url = 'foo.js';
|
|
contextGroup.addScript('function foo(){}foo()', 0, 0, url);
|
|
session.setupScriptMap();
|
|
|
|
InspectorTest.runAsyncTestSuite([
|
|
async function test() {
|
|
await Promise.all([Protocol.Runtime.enable(), Protocol.Debugger.enable()]);
|
|
const {result: {breakpointId, locations}} = await Protocol.Debugger.setBreakpointByUrl({
|
|
columnNumber: 16,
|
|
lineNumber: 0,
|
|
url,
|
|
});
|
|
await session.logBreakLocations(locations);
|
|
await Protocol.Debugger.removeBreakpoint({breakpointId});
|
|
await Promise.all([Protocol.Runtime.disable(), Protocol.Debugger.disable()]);
|
|
}
|
|
]);
|