Upgrade V8 to version 4.9.385.28
https://chromium.googlesource.com/v8/v8/+/4.9.385.28
FPIIM-449
Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
diff --git a/test/mjsunit/regress/regress-crbug-323936.js b/test/mjsunit/regress/regress-crbug-323936.js
index d896ead..6e75729 100644
--- a/test/mjsunit/regress/regress-crbug-323936.js
+++ b/test/mjsunit/regress/regress-crbug-323936.js
@@ -2,7 +2,7 @@
// 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
+// Flags: --expose-debug-as debug --debug-eval-readonly-locals
Debug = debug.Debug;
@@ -14,11 +14,11 @@
try {
if (step == 0) {
assertEquals("error", exec_state.frame(0).evaluate("e").value());
- exec_state.frame(0).evaluate("e = 'foo'");
- exec_state.frame(0).evaluate("x = 'modified'");
+ exec_state.frame(0).evaluate("write_0('foo')");
+ exec_state.frame(0).evaluate("write_1('modified')");
} else {
assertEquals("argument", exec_state.frame(0).evaluate("e").value());
- exec_state.frame(0).evaluate("e = 'bar'");
+ exec_state.frame(0).evaluate("write_2('bar')");
}
step++;
} catch (e) {
@@ -33,9 +33,15 @@
try {
throw "error";
} catch(e) {
+ // In ES2015 hoisting semantics, 'x' binds to the argument
+ // and 'e' binds to the exception.
+ function write_0(v) { e = v }
+ function write_1(v) { x = v }
debugger;
- assertEquals("foo", e);
+ assertEquals("foo", e); // overwritten by the debugger
}
+ assertEquals("argument", e); // debugger did not overwrite
+ function write_2(v) { e = v }
debugger;
assertEquals("bar", e);
assertEquals("modified", x);