// 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. // Flags: --no-stress-opt --no-always-opt let {session, contextGroup, Protocol} = InspectorTest.start('Test scopes with variables in TDZ.'); Protocol.Debugger.enable(); contextGroup.addScript(` { debugger; (function() { debugger })(); let blockLet = 1; const blockConst = 2; let contextBlockLet = 3; let contextBlockConst = 4; _ => contextBlockConst + contextBlockLet; debugger; (function() { debugger })(); } debugger; (function() { debugger })(); let scriptLet = 1; const scriptConst = 2; debugger; (function() { debugger })(); `); (async function() { for (let i =0; i < 8; i++) { let message = await Protocol.Debugger.oncePaused(); let scopeChain = message.params.callFrames[0].scopeChain; let evalScopeObjectIds = []; InspectorTest.log("Debug break"); for (let scope of scopeChain) { if (scope.type == "global") continue; InspectorTest.log(` Scope type: ${scope.type}`); let { result: { result: locals }} = await Protocol.Runtime.getProperties({ "objectId" : scope.object.objectId }); for (let local of locals) { InspectorTest.log(` ${local.name} : ${local.value.value}`); } } await Protocol.Debugger.resume(); } InspectorTest.completeTest(); })();