Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Unified Diff: test/mjsunit/debug-evaluate-closure.js

Issue 1513183003: [debugger] debug-evaluate should not not modify local values. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@arrowthis
Patch Set: addressed comments. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/flag-definitions.h ('k') | test/mjsunit/debug-evaluate-const.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/debug-evaluate-closure.js
diff --git a/test/mjsunit/debug-evaluate-closure.js b/test/mjsunit/debug-evaluate-closure.js
index 7e8fb91da7e4f23ac2c155432fb26db2dd9a64d4..541dec9d6dab28fdc8ec7bade515a21cb230dd7c 100644
--- a/test/mjsunit/debug-evaluate-closure.js
+++ b/test/mjsunit/debug-evaluate-closure.js
@@ -26,6 +26,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --expose-debug-as debug --allow-natives-syntax
+// Flags: --debug-eval-readonly-locals
Debug = debug.Debug;
var listened = false;
@@ -34,20 +35,18 @@ function listener(event, exec_state, event_data, data) {
if (event != Debug.DebugEvent.Break) return;
try {
assertEquals("goo", exec_state.frame(0).evaluate("goo").value());
- exec_state.frame(0).evaluate("goo = 'goo foo'");
+ exec_state.frame(0).evaluate("goo = 'goo foo'"); // no effect
assertEquals("bar return", exec_state.frame(0).evaluate("bar()").value());
- // Check that calling bar() has no effect to context-allocated variables.
- // TODO(yangguo): reevaluate this if we no longer update context from copy.
- assertEquals("inner", exec_state.frame(0).evaluate("inner").value());
- assertEquals("outer", exec_state.frame(0).evaluate("outer").value());
+ assertEquals("inner bar", exec_state.frame(0).evaluate("inner").value());
+ assertEquals("outer bar", exec_state.frame(0).evaluate("outer").value());
assertEquals("baz inner", exec_state.frame(0).evaluate("baz").value());
assertEquals("baz outer", exec_state.frame(1).evaluate("baz").value());
exec_state.frame(0).evaluate("w = 'w foo'");
- exec_state.frame(0).evaluate("inner = 'inner foo'");
- exec_state.frame(0).evaluate("outer = 'outer foo'");
- exec_state.frame(0).evaluate("baz = 'baz inner foo'");
- exec_state.frame(1).evaluate("baz = 'baz outer foo'");
+ exec_state.frame(0).evaluate("inner = 'inner foo'"); // no effect
+ exec_state.frame(0).evaluate("outer = 'outer foo'"); // has effect
+ exec_state.frame(0).evaluate("baz = 'baz inner foo'"); // no effect
+ exec_state.frame(1).evaluate("baz = 'baz outer foo'"); // has effect
listened = true;
} catch (e) {
print(e);
@@ -69,9 +68,9 @@ function foo() {
with (withv) {
var bar = function bar() {
- assertEquals("goo foo", goo);
- inner = "inner bar"; // this has no effect, when called from debug-eval
- outer = "outer bar"; // this has no effect, when called from debug-eval
+ assertEquals("goo", goo);
+ inner = "inner bar";
+ outer = "outer bar";
v = "v bar";
return "bar return";
};
@@ -81,8 +80,8 @@ function foo() {
debugger;
}
- assertEquals("inner foo", inner);
- assertEquals("baz inner foo", baz);
+ assertEquals("inner bar", inner);
+ assertEquals("baz inner", baz);
assertEquals("w foo", withw.w);
assertEquals("v bar", withv.v);
}
« no previous file with comments | « src/flag-definitions.h ('k') | test/mjsunit/debug-evaluate-const.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698