Index: test/mjsunit/debug-evaluate-shadowed-context.js |
diff --git a/test/mjsunit/debug-evaluate-shadowed-context.js b/test/mjsunit/debug-evaluate-shadowed-context.js |
deleted file mode 100644 |
index 6847a93f66216d1306007022211d4758a8b5da66..0000000000000000000000000000000000000000 |
--- a/test/mjsunit/debug-evaluate-shadowed-context.js |
+++ /dev/null |
@@ -1,83 +0,0 @@ |
-// Copyright 2015 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: --expose-debug-as debug --no-analyze-environment-liveness |
- |
-// Test that debug-evaluate only resolves variables that are used by |
-// the function inside which we debug-evaluate. This is to avoid |
-// incorrect variable resolution when a context-allocated variable is |
-// shadowed by a stack-allocated variable. |
- |
-Debug = debug.Debug |
- |
-var exception = null; |
-function listener(event, exec_state, event_data, data) { |
- if (event != Debug.DebugEvent.Break) return; |
- try { |
- for (var i = 0; i < exec_state.frameCount() - 1; i++) { |
- var frame = exec_state.frame(i); |
- var value; |
- try { |
- value = frame.evaluate("x").value(); |
- } catch (e) { |
- value = e.name; |
- } |
- print(frame.sourceLineText()); |
- var expected = frame.sourceLineText().match(/\/\/ (.*$)/)[1]; |
- assertEquals(String(expected), String(value)); |
- } |
- assertEquals("[object global]", |
- String(exec_state.frame(0).evaluate("this").value())); |
- assertEquals("y", exec_state.frame(0).evaluate("y").value()); |
- assertEquals("a", exec_state.frame(0).evaluate("a").value()); |
- exec_state.frame(0).evaluate("a = 'A'"); |
- assertThrows(() => exec_state.frame(0).evaluate("z"), ReferenceError); |
- } catch (e) { |
- exception = e; |
- print(e + e.stack); |
- } |
-} |
- |
-Debug.setListener(listener); |
- |
-var a = "a"; |
-(function() { |
- var x = 1; // context allocate x |
- (() => x); |
- var y = "y"; |
- var z = "z"; |
- (function() { |
- var x = 2; // stack allocate shadowing x |
- (function() { |
- y; // access y |
- debugger; // ReferenceError |
- })(); // 2 |
- })(); // 1 |
- return y; |
-})(); |
- |
-assertEquals("A", a); |
-a = "a"; |
- |
-(function() { |
- var x = 1; // context allocate x |
- (() => x); |
- var y = "y"; |
- var z = "z"; |
- (function() { |
- var x = 2; // stack allocate shadowing x |
- (() => { |
- y; |
- a; |
- this; // context allocate receiver |
- debugger; // ReferenceError |
- })(); // 2 |
- })(); // 1 |
- return y; |
-})(); |
- |
-assertEquals("A", a); |
- |
-Debug.setListener(null); |
-assertNull(exception); |