OLD | NEW |
1 // Copyright 2008 the V8 project authors. All rights reserved. | 1 // Copyright 2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 17 matching lines...) Expand all Loading... |
28 // Flags: --expose-debug-as debug | 28 // Flags: --expose-debug-as debug |
29 // Make sure that the retreival of local variables are performed correctly even | 29 // Make sure that the retreival of local variables are performed correctly even |
30 // when an adapter frame is present. | 30 // when an adapter frame is present. |
31 | 31 |
32 // Get the Debug object exposed from the debug context global object. | 32 // Get the Debug object exposed from the debug context global object. |
33 Debug = debug.Debug | 33 Debug = debug.Debug |
34 | 34 |
35 listenerCalled = false; | 35 listenerCalled = false; |
36 exception = false; | 36 exception = false; |
37 | 37 |
| 38 |
| 39 function checkName(name) { |
| 40 assertTrue(name == 'a' || name == 'b' || name == 'c'); |
| 41 } |
| 42 |
| 43 |
| 44 function checkValue(value) { |
| 45 assertEquals(void 0, value); |
| 46 } |
| 47 |
| 48 |
38 function listener(event, exec_state, event_data, data) { | 49 function listener(event, exec_state, event_data, data) { |
39 try { | 50 try { |
40 if (event == Debug.DebugEvent.Break) { | 51 if (event == Debug.DebugEvent.Break) { |
41 assertEquals('c', exec_state.frame(0).localName(0)); | 52 var local0Name = exec_state.frame(0).localName(0); |
42 assertEquals(void 0, exec_state.frame(0).localValue(0).value()); | 53 var local1Name = exec_state.frame(0).localName(1); |
| 54 var local2Name = exec_state.frame(0).localName(2); |
| 55 checkName(local0Name); |
| 56 checkName(local1Name); |
| 57 checkName(local2Name); |
| 58 var local0Value = exec_state.frame(0).localValue(0).value(); |
| 59 var local1Value = exec_state.frame(0).localValue(1).value(); |
| 60 var local2Value = exec_state.frame(0).localValue(2).value(); |
| 61 checkValue(local0Value); |
| 62 checkValue(local1Value); |
| 63 checkValue(local2Value); |
43 listenerCalled = true; | 64 listenerCalled = true; |
44 } | 65 } |
45 } catch (e) { | 66 } catch (e) { |
46 exception = e; | 67 exception = e; |
47 }; | 68 }; |
48 }; | 69 }; |
49 | 70 |
50 // Add the debug event listener. | 71 // Add the debug event listener. |
51 Debug.addListener(listener); | 72 Debug.addListener(listener); |
52 | 73 |
53 // Call a function with local variables passing a different number parameters | 74 // Call a function with local variables passing a different number parameters |
54 // that the number of arguments. | 75 // that the number of arguments. |
55 (function(x,y){var a,b,c; debugger; return 3})() | 76 (function(x,y){var a,b,c; debugger; return 3})() |
56 | 77 |
57 // Make sure that the debug event listener vas invoked (again). | 78 // Make sure that the debug event listener vas invoked (again). |
58 assertTrue(listenerCalled); | 79 assertTrue(listenerCalled); |
59 assertFalse(exception, "exception in listener") | 80 assertFalse(exception, "exception in listener") |
OLD | NEW |