| // 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. |
| // |
| // Flags: --harmony-public-fields --harmony-static-fields |
| |
| let { session, contextGroup, Protocol } = InspectorTest.start( |
| "Test class fields scopes" |
| ); |
| |
| contextGroup.addScript(` |
| function run() { |
| function foo() { |
| debugger; |
| return "foo"; |
| } |
| |
| function bar() { |
| return 3; |
| } |
| |
| class X { |
| x = 1; |
| [foo()] = 2; |
| p = bar(); |
| } |
| |
| debugger; |
| new X; |
| }`); |
| |
| InspectorTest.runAsyncTestSuite([ |
| async function testScopesPaused() { |
| Protocol.Debugger.enable(); |
| Protocol.Runtime.evaluate({ expression: "run()" }); |
| |
| let { |
| params: { callFrames: callFrames0 } |
| } = await Protocol.Debugger.oncePaused(); // inside foo() |
| InspectorTest.logMessage(callFrames0); |
| |
| Protocol.Debugger.resume(); |
| |
| await Protocol.Debugger.oncePaused(); // at debugger; |
| Protocol.Debugger.stepOver(); // at debugger; |
| |
| await Protocol.Debugger.oncePaused(); // at new X; |
| Protocol.Debugger.stepInto(); // step into initializer_function; |
| |
| // at x = 1; |
| let { |
| params: { callFrames: callFrames1 } |
| } = await Protocol.Debugger.oncePaused(); |
| InspectorTest.logMessage(callFrames1); |
| Protocol.Debugger.stepOver(); |
| |
| // at [foo()] = 2; |
| let { |
| params: { callFrames: callFrames2 } |
| } = await Protocol.Debugger.oncePaused(); |
| InspectorTest.logMessage(callFrames2); |
| Protocol.Debugger.stepOver(); |
| |
| // at p = bar(); |
| let { |
| params: { callFrames: callFrames3 } |
| } = await Protocol.Debugger.oncePaused(); |
| InspectorTest.logMessage(callFrames3); |
| Protocol.Debugger.stepInto(); |
| |
| // inside bar(); |
| let { |
| params: { callFrames: callFrames4 } |
| } = await Protocol.Debugger.oncePaused(); |
| InspectorTest.logMessage(callFrames4); |
| |
| Protocol.Debugger.resume(); |
| Protocol.Debugger.disable(); |
| } |
| ]); |