diff options
Diffstat (limited to 'deps/v8/test/mjsunit/regress/regress-crbug-323936.js')
-rw-r--r-- | deps/v8/test/mjsunit/regress/regress-crbug-323936.js | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-323936.js b/deps/v8/test/mjsunit/regress/regress-crbug-323936.js index d896eadcc4..6e75729c18 100644 --- a/deps/v8/test/mjsunit/regress/regress-crbug-323936.js +++ b/deps/v8/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 @@ function listener(event, exec_state, event_data, data) { 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 @@ function f(e, x) { 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); |