blob: 397a4303a7f9606845c7181970ffb3782735c0bf [file] [log] [blame]
// Copyright 2017 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 liveedit with ES6 modules.');
const moduleSource = `
export function foo() {
console.log('module1');
return 42;
}
foo()`;
const newModuleSource = `
export function foo() {
console.log('patched module1');
return 42;
}
foo()`;
const callFooSource = `
import { foo } from 'module';
foo();`;
(async function test() {
await Protocol.Runtime.enable();
await Protocol.Debugger.enable();
contextGroup.addModule(moduleSource, 'module');
const [{ params: { scriptId } }, { params: { args }}] = [
await Protocol.Debugger.onceScriptParsed(),
await Protocol.Runtime.onceConsoleAPICalled()
];
InspectorTest.log('console.log message from function before patching:')
InspectorTest.logMessage(args[0]);
const {result} = await Protocol.Debugger.setScriptSource({
scriptId,
scriptSource: newModuleSource
});
InspectorTest.log('Debugger.setScriptSource result:');
InspectorTest.logMessage(result);
contextGroup.addModule(callFooSource, 'callFoo');
const { params: {args: patchedArgs } } =
await Protocol.Runtime.onceConsoleAPICalled();
InspectorTest.log('console.log message from function after patching:')
InspectorTest.logMessage(patchedArgs[0]);
InspectorTest.completeTest();
})()