// 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(); })()