v8/test/inspector/debugger/set-script-source-stack-padding.js
Alexey Kozyatinskiy c31bb8a4e4 [debug] retire ScriptWrapper
- rewritten couple tests,
- migrated JSMessageObject to real Script instead of wrapper,
- removed wrapper.

R=yangguo@chromium.org
TBR=ulan@chromium.org

Bug: v8:5530
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia95492344c7b5978a940e2ab007b389384537148
Reviewed-on: https://chromium-review.googlesource.com/1112851
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54274}
2018-07-05 21:33:03 +00:00

55 lines
1.9 KiB
JavaScript

// 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.
let {session, contextGroup, Protocol} =
InspectorTest.start('Change return string constant at breakpoint');
contextGroup.addScript(
`SlimFunction = eval(
'(function f() {\\n ' +
' return \\'Cat\\';\\n' +
'})\\n' +
'//# sourceURL=eval.js\\n');`);
(async function test() {
session.setupScriptMap();
let scriptPromise = new Promise(resolve => {
Protocol.Debugger.onScriptParsed(({params}) => {
if (params.url === 'eval.js') {
resolve(params);
Protocol.Debugger.onScriptParsed(null);
}
});
});
Protocol.Debugger.enable();
const script = await scriptPromise;
InspectorTest.log('Set breakpoint inside f() and call function..');
const {result:{actualLocation}} = await Protocol.Debugger.setBreakpoint({
location: { scriptId: script.scriptId, lineNumber: 1, columnNumber: 0}});
const evalPromise = Protocol.Runtime.evaluate({expression: 'SlimFunction()'});
const {params:{callFrames}} = await Protocol.Debugger.oncePaused();
InspectorTest.log('Paused at:');
await session.logSourceLocation(callFrames[0].location);
InspectorTest.log('Change Cat to Capybara..');
const {result:{scriptSource}} = await Protocol.Debugger.getScriptSource({
scriptId: script.scriptId
});
const {result:{callFrames:[topFrame],stackChanged}} =
await Protocol.Debugger.setScriptSource({
scriptId: script.scriptId,
scriptSource: scriptSource.replace(`'Cat'`, `'Capybara'`)
});
InspectorTest.log('Paused at:');
await session.logSourceLocation(topFrame.location, true);
InspectorTest.log('Resume and check return value..');
Protocol.Debugger.resume();
InspectorTest.log(
`SlimFunction() = ${(await evalPromise).result.result.value}`);
InspectorTest.completeTest();
})();