Index: test/inspector/debugger/eval-scopes.js |
diff --git a/test/inspector/debugger/eval-scopes.js b/test/inspector/debugger/eval-scopes.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..46e0c4b5a7a7340574941737a245e3f23ebd438e |
--- /dev/null |
+++ b/test/inspector/debugger/eval-scopes.js |
@@ -0,0 +1,43 @@ |
+// 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. |
+ |
+InspectorTest.addScript( |
+`function testNonEmptyEvalScope() { |
+ eval("'use strict'; var hest = 420; debugger;"); |
+} |
+function testEmptyEvalScope() { |
+ eval("var fisk = 42; testNonEmptyEvalScope();"); |
+}`); |
+ |
+Protocol.Debugger.enable(); |
+Protocol.Debugger.oncePaused().then(dumpScopeOnPause); |
+Protocol.Runtime.evaluate({ "expression": "testEmptyEvalScope();" }); |
+ |
+var waitScopeObjects = 0; |
+function dumpScopeOnPause(message) |
+{ |
+ var scopeChain = message.params.callFrames[0].scopeChain; |
+ var evalScopeObjectIds = []; |
+ for (var scope of scopeChain) { |
+ if (scope.type === "eval") { |
+ evalScopeObjectIds.push(scope.object.objectId); |
+ } |
+ } |
+ waitScopeObjects = evalScopeObjectIds.length; |
+ if (!waitScopeObjects) { |
+ InspectorTest.completeTest(); |
+ } else { |
+ for (var objectId of evalScopeObjectIds) |
+ Protocol.Runtime.getProperties({ "objectId" : objectId }) |
+ .then(dumpProperties); |
+ } |
+} |
+ |
+function dumpProperties(message) |
+{ |
+ InspectorTest.logMessage(message); |
+ --waitScopeObjects; |
+ if (!waitScopeObjects) |
+ Protocol.Debugger.resume().then(InspectorTest.completeTest); |
+} |