Index: test/mjsunit/regress/regress-crbug-609046.js |
diff --git a/test/mjsunit/regress/regress-crbug-605581.js b/test/mjsunit/regress/regress-crbug-609046.js |
similarity index 52% |
copy from test/mjsunit/regress/regress-crbug-605581.js |
copy to test/mjsunit/regress/regress-crbug-609046.js |
index 0f1daabead95a6357503f418c5b46c710ba6b99b..10b63af3e33feba396f4466098025bef688fd213 100644 |
--- a/test/mjsunit/regress/regress-crbug-605581.js |
+++ b/test/mjsunit/regress/regress-crbug-609046.js |
@@ -4,13 +4,21 @@ |
// Flags: --expose-debug-as debug |
+// Test that hidden scopes are correctly walked in the scope chain. |
+ |
var Debug = debug.Debug; |
var exception = null; |
+var delegate = null; |
+var done = false; |
function listener(event, exec_state, event_data, data) { |
if (event != Debug.DebugEvent.Break) return; |
try { |
- assertThrows(() => exec_state.frame(0).evaluate("bar.baz"), ReferenceError); |
+ assertEquals([ debug.ScopeType.Block, |
+ debug.ScopeType.Script, |
+ debug.ScopeType.Global ], |
+ exec_state.frame(0).allScopes().map(s => s.scopeType())); |
+ done = true; |
} catch (e) { |
exception = e; |
} |
@@ -18,11 +26,11 @@ function listener(event, exec_state, event_data, data) { |
Debug.setListener(listener); |
-(function() { |
- debugger; // bar is still in TDZ at this point. |
- let bar = 1; |
- (x => bar); // force bar to be context-allocated. |
-})(); |
+for(let a = 0; a < 3; a++) { |
+ debugger; |
+ eval(); // Force context-allocation of everything. |
+} |
Debug.setListener(null); |
assertNull(exception); |
+assertTrue(done); |