// Copyright 2016 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('Tests that scopes do not report variables with empty names'); contextGroup.addScript( `function testFunction() { for (var a of [1]) { ++a; debugger; } }`); Protocol.Debugger.enable(); Protocol.Debugger.oncePaused().then(dumpScopeOnPause); Protocol.Runtime.evaluate({ "expression": "testFunction()" }); var waitScopeObjects = 0; function dumpScopeOnPause(message) { var scopeChain = message.params.callFrames[0].scopeChain; var localScopeObjectIds = []; for (var scope of scopeChain) { if (scope.type === "local") localScopeObjectIds.push(scope.object.objectId); } waitScopeObjects = localScopeObjectIds.length; if (!waitScopeObjects) { InspectorTest.completeTest(); } else { for (var objectId of localScopeObjectIds) Protocol.Runtime.getProperties({ "objectId" : objectId }).then(dumpProperties); } } function dumpProperties(message) { InspectorTest.logMessage(message); --waitScopeObjects; if (!waitScopeObjects) Protocol.Debugger.resume().then(InspectorTest.completeTest); }