| Index: test/mjsunit/debug-evaluate-locals.js
|
| diff --git a/test/mjsunit/debug-evaluate-locals.js b/test/mjsunit/debug-evaluate-locals.js
|
| index 4b87829169586ed4885bee9236138ecbd51faa87..61b6dd9bbd6163eee4473330b9c3fd6deec43a95 100644
|
| --- a/test/mjsunit/debug-evaluate-locals.js
|
| +++ b/test/mjsunit/debug-evaluate-locals.js
|
| @@ -33,33 +33,73 @@ listenerComplete = false;
|
| exception = false;
|
|
|
|
|
| -function checkFrame0(name, value) {
|
| - assertTrue(name == 'a' || name == 'b');
|
| - if (name == 'a') {
|
| - assertEquals(1, value);
|
| - }
|
| - if (name == 'b') {
|
| - assertEquals(2, value);
|
| +function h() {
|
| + var a = 1;
|
| + var b = 2;
|
| + debugger; // Breakpoint.
|
| +}
|
| +
|
| +function checkFrame0(frame) {
|
| + // Frame 0 (h) has normal variables a and b.
|
| + var count = frame.localCount();
|
| + assertEquals(2, count);
|
| + for (var i = 0; i < count; ++i) {
|
| + var name = frame.localName(i);
|
| + var value = frame.localValue(i).value();
|
| + if (name == 'a') {
|
| + assertEquals(1, value);
|
| + } else {
|
| + assertEquals('b', name);
|
| + assertEquals(2, value);
|
| + }
|
| }
|
| }
|
|
|
|
|
| -function checkFrame1(name, value) {
|
| - assertTrue(name == '.arguments' || name == 'a');
|
| - if (name == 'a') {
|
| - assertEquals(3, value);
|
| +function g() {
|
| + var a = 3;
|
| + eval("var b = 4;");
|
| + h();
|
| +}
|
| +
|
| +function checkFrame1(frame) {
|
| + // Frame 1 (g) has normal variable a (and arguments).
|
| + var count = frame.localCount();
|
| + assertEquals(2, count);
|
| + for (var i = 0; i < count; ++i) {
|
| + var name = frame.localName(i);
|
| + var value = frame.localValue(i).value();
|
| + if (name == 'a') {
|
| + assertEquals(3, value);
|
| + } else {
|
| + assertEquals('arguments', name);
|
| + }
|
| }
|
| }
|
|
|
|
|
| -function checkFrame2(name, value) {
|
| - assertTrue(name == '.arguments' || name == 'a' ||
|
| - name == 'arguments' || name == 'b');
|
| - if (name == 'a') {
|
| - assertEquals(5, value);
|
| +function f() {
|
| + var a = 5;
|
| + var b = 0;
|
| + with ({b:6}) {
|
| + g();
|
| }
|
| - if (name == 'b') {
|
| - assertEquals(0, value);
|
| +}
|
| +
|
| +function checkFrame2(frame) {
|
| + // Frame 2 (f) has normal variables a and b (and arguments).
|
| + var count = frame.localCount();
|
| + assertEquals(3, count);
|
| + for (var i = 0; i < count; ++i) {
|
| + var name = frame.localName(i);
|
| + var value = frame.localValue(i).value();
|
| + if (name == 'a') {
|
| + assertEquals(5, value);
|
| + } else if (name == 'b') {
|
| + assertEquals(0, value);
|
| + } else {
|
| + assertEquals('arguments', name);
|
| + }
|
| }
|
| }
|
|
|
| @@ -68,23 +108,9 @@ function listener(event, exec_state, event_data, data) {
|
| try {
|
| if (event == Debug.DebugEvent.Break)
|
| {
|
| - // Frame 0 has normal variables a and b.
|
| - var frame0 = exec_state.frame(0);
|
| - checkFrame0(frame0.localName(0), frame0.localValue(0).value());
|
| - checkFrame0(frame0.localName(1), frame0.localValue(1).value());
|
| -
|
| - // Frame 1 has normal variable a (and the .arguments variable).
|
| - var frame1 = exec_state.frame(1);
|
| - checkFrame1(frame1.localName(0), frame1.localValue(0).value());
|
| - checkFrame1(frame1.localName(1), frame1.localValue(1).value());
|
| -
|
| - // Frame 2 has normal variables a and b (and both the .arguments and
|
| - // arguments variable).
|
| - var frame2 = exec_state.frame(2);
|
| - checkFrame2(frame2.localName(0), frame2.localValue(0).value());
|
| - checkFrame2(frame2.localName(1), frame2.localValue(1).value());
|
| - checkFrame2(frame2.localName(2), frame2.localValue(2).value());
|
| - checkFrame2(frame2.localName(3), frame2.localValue(3).value());
|
| + checkFrame0(exec_state.frame(0));
|
| + checkFrame1(exec_state.frame(1));
|
| + checkFrame2(exec_state.frame(2));
|
|
|
| // Evaluating a and b on frames 0, 1 and 2 produces 1, 2, 3, 4, 5 and 6.
|
| assertEquals(1, exec_state.frame(0).evaluate('a').value());
|
| @@ -105,26 +131,6 @@ function listener(event, exec_state, event_data, data) {
|
| // Add the debug event listener.
|
| Debug.setListener(listener);
|
|
|
| -function h() {
|
| - var a = 1;
|
| - var b = 2;
|
| - debugger; // Breakpoint.
|
| -};
|
| -
|
| -function g() {
|
| - var a = 3;
|
| - eval("var b = 4;");
|
| - h();
|
| -};
|
| -
|
| -function f() {
|
| - var a = 5;
|
| - var b = 0;
|
| - with ({b:6}) {
|
| - g();
|
| - }
|
| -};
|
| -
|
| f();
|
|
|
| // Make sure that the debug event listener vas invoked.
|
|
|