| Index: test/mjsunit/debug-evaluate-locals.js
|
| ===================================================================
|
| --- test/mjsunit/debug-evaluate-locals.js (revision 435)
|
| +++ test/mjsunit/debug-evaluate-locals.js (working copy)
|
| @@ -32,29 +32,59 @@
|
| 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 checkFrame1(name, value) {
|
| + assertTrue(name == '.arguments' || name == 'a');
|
| + if (name == 'a') {
|
| + assertEquals(3, value);
|
| + }
|
| +}
|
| +
|
| +
|
| +function checkFrame2(name, value) {
|
| + assertTrue(name == '.arguments' || name == 'a' ||
|
| + name == 'arguments' || name == 'b');
|
| + if (name == 'a') {
|
| + assertEquals(5, value);
|
| + }
|
| + if (name == 'b') {
|
| + assertEquals(0, value);
|
| + }
|
| +}
|
| +
|
| +
|
| function listener(event, exec_state, event_data, data) {
|
| try {
|
| if (event == Debug.DebugEvent.Break)
|
| {
|
| // Frame 0 has normal variables a and b.
|
| - assertEquals('a', exec_state.frame(0).localName(0));
|
| - assertEquals('b', exec_state.frame(0).localName(1));
|
| - assertEquals(1, exec_state.frame(0).localValue(0).value());
|
| - assertEquals(2, exec_state.frame(0).localValue(1).value());
|
| + 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).
|
| - assertEquals('.arguments', exec_state.frame(1).localName(0));
|
| - assertEquals('a', exec_state.frame(1).localName(1));
|
| - assertEquals(3, exec_state.frame(1).localValue(1).value());
|
| + var frame1 = exec_state.frame(1);
|
| + checkFrame1(frame1.localName(0), frame1.localValue(0).value());
|
| + checkFrame1(frame1.localName(1), frame1.localValue(1).value());
|
|
|
| - // Frame 0 has normal variables a and b (and both the .arguments and
|
| + // Frame 2 has normal variables a and b (and both the .arguments and
|
| // arguments variable).
|
| - assertEquals('.arguments', exec_state.frame(2).localName(0));
|
| - assertEquals('a', exec_state.frame(2).localName(1));
|
| - assertEquals('arguments', exec_state.frame(2).localName(2));
|
| - assertEquals('b', exec_state.frame(2).localName(3));
|
| - assertEquals(5, exec_state.frame(2).localValue(1).value());
|
| - assertEquals(0, exec_state.frame(2).localValue(3).value());
|
| + 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());
|
|
|
| // 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());
|
|
|