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