| // 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. |
| |
| let {session, contextGroup, Protocol} = |
| InspectorTest.start('Test for Runtime.globalLexicalScopeVariablesNames'); |
| |
| (async function test() { |
| InspectorTest.log('Running \'let a = 1\''); |
| Protocol.Runtime.evaluate({expression: 'let a = 1'}); |
| await dumpGlobalScopeVariables(); |
| |
| InspectorTest.log('Running \'let b = 2\''); |
| Protocol.Runtime.evaluate({expression: 'let b = 2'}); |
| await dumpGlobalScopeVariables(); |
| |
| InspectorTest.log('Running \'let b = 3\''); |
| Protocol.Runtime.evaluate({expression: 'let b = 3'}); |
| await dumpGlobalScopeVariables(); |
| |
| InspectorTest.log('Running \'const c = 4\''); |
| Protocol.Runtime.evaluate({expression: 'const c = 4'}); |
| await dumpGlobalScopeVariables(); |
| |
| InspectorTest.log('Running \'var d = 5\''); |
| InspectorTest.log('(should not be in list of scoped variables)'); |
| Protocol.Runtime.evaluate({expression: 'var d = 5'}); |
| await dumpGlobalScopeVariables(); |
| |
| InspectorTest.log('Running \'class Foo{}\''); |
| Protocol.Runtime.evaluate({expression: 'class Foo{}'}); |
| await dumpGlobalScopeVariables(); |
| |
| InspectorTest.log('Adding script with scope variables'); |
| contextGroup.addScript(` |
| let e = 1; |
| const f = 2; |
| const g = 3; |
| class Boo {}; |
| `); |
| await dumpGlobalScopeVariables(); |
| InspectorTest.completeTest(); |
| })(); |
| |
| async function dumpGlobalScopeVariables() { |
| let {result:{names}} = |
| await Protocol.Runtime.globalLexicalScopeNames(); |
| InspectorTest.log('Values:'); |
| for (let name of names) { |
| let {result:{result}} = await Protocol.Runtime.evaluate({expression: name}); |
| if (result.value) { |
| InspectorTest.log(`${name} = ${result.value}`); |
| } else { |
| InspectorTest.log(`${name} =`); |
| InspectorTest.logMessage(result); |
| } |
| } |
| InspectorTest.log(''); |
| } |