| Index: test/mjsunit/debug-evaluate-closure.js
|
| diff --git a/test/mjsunit/regress/regress-frame-details-null-receiver.js b/test/mjsunit/debug-evaluate-closure.js
|
| similarity index 57%
|
| copy from test/mjsunit/regress/regress-frame-details-null-receiver.js
|
| copy to test/mjsunit/debug-evaluate-closure.js
|
| index d15ed4d00ae774ad01406855fc42cb8c1dfbcc07..e7427eccbe13df64659c85464847f267375e115f 100644
|
| --- a/test/mjsunit/regress/regress-frame-details-null-receiver.js
|
| +++ b/test/mjsunit/debug-evaluate-closure.js
|
| @@ -31,22 +31,57 @@ Debug = debug.Debug;
|
| var listened = false;
|
|
|
| function listener(event, exec_state, event_data, data) {
|
| - if (event == Debug.DebugEvent.Exception) {
|
| - for (var i = 0; i < exec_state.frameCount(); i++) {
|
| - print(exec_state.frame(i).receiver());
|
| - print(exec_state.frame(i).func().name());
|
| - }
|
| + if (event != Debug.DebugEvent.Break) return;
|
| + try {
|
| + assertEquals("bar return", exec_state.frame(0).evaluate("bar()").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'").value();
|
| + exec_state.frame(0).evaluate("inner = 'inner foo'").value();
|
| + exec_state.frame(0).evaluate("outer = 'outer foo'").value();
|
| + exec_state.frame(0).evaluate("baz = 'baz inner foo'").value();
|
| + exec_state.frame(1).evaluate("baz = 'baz outer foo'").value();
|
| + } catch (e) {
|
| + print(e);
|
| + print(e.stack);
|
| }
|
| listened = true;
|
| }
|
|
|
| Debug.setListener(listener);
|
| -Debug.setBreakOnException();
|
|
|
| -assertThrows(function() { delete null['foo']; });
|
| +var outer = "outer";
|
| +var baz = "baz outer"
|
|
|
| -Debug.clearBreakOnException();
|
| -Debug.setListener(null);
|
| +function foo() {
|
| + var inner = "inner";
|
| + var baz = "baz inner";
|
| + var withw = { w: "w" };
|
| + var withv = { v: "v" };
|
|
|
| -assertTrue(listened);
|
| + with (withv) {
|
| + var bar = function bar() {
|
| + inner = "inner bar";
|
| + outer = "outer bar";
|
| + v = "v bar";
|
| + return "bar return";
|
| + };
|
| + }
|
| +
|
| + with (withw) {
|
| + debugger;
|
| + }
|
|
|
| + assertEquals("inner foo", inner);
|
| + assertEquals("baz inner foo", baz);
|
| + assertEquals("w foo", withw.w);
|
| + assertEquals("v bar", withv.v);
|
| +}
|
| +
|
| +foo();
|
| +assertEquals("outer foo", outer);
|
| +assertEquals("baz outer foo", baz);
|
| +assertTrue(listened);
|
| +Debug.setListener(null);
|
|
|