c31bb8a4e4
- 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}
55 lines
1.9 KiB
JavaScript
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();
|
|
})();
|