| 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 function f() {}; | 46 function f() {}; |
| 47 function g() {h(count++)}; | 47 function g() {h(count++)}; |
| 48 function h(x) {var a=x; return a}; | 48 function h(x) {var a=x; return a}; |
| 49 | 49 |
| 50 | 50 |
| 51 // Conditional breakpoint which syntax error. | 51 // Conditional breakpoint which syntax error. |
| 52 break_point_hit_count = 0; | 52 break_point_hit_count = 0; |
| 53 bp = Debug.setBreakPoint(f, 0, 0, '{{{'); | 53 bp = Debug.setBreakPoint(f, 0, 0, '{{{'); |
| 54 f(); | 54 f(); |
| 55 assertEquals(0, break_point_hit_count); | 55 assertEquals(0, break_point_hit_count); |
| 56 assertEquals(0, Debug.findBreakPoint(bp, false).hit_count()); | |
| 57 Debug.clearBreakPoint(bp); | 56 Debug.clearBreakPoint(bp); |
| 58 | 57 |
| 59 // Conditional breakpoint which evaluates to false. | 58 // Conditional breakpoint which evaluates to false. |
| 60 break_point_hit_count = 0; | 59 break_point_hit_count = 0; |
| 61 bp = Debug.setBreakPoint(f, 0, 0, 'false'); | 60 bp = Debug.setBreakPoint(f, 0, 0, 'false'); |
| 62 f(); | 61 f(); |
| 63 assertEquals(0, break_point_hit_count); | 62 assertEquals(0, break_point_hit_count); |
| 64 assertEquals(0, Debug.findBreakPoint(bp, false).hit_count()); | |
| 65 Debug.clearBreakPoint(bp); | 63 Debug.clearBreakPoint(bp); |
| 66 | 64 |
| 67 // Conditional breakpoint which evaluates to true. | 65 // Conditional breakpoint which evaluates to true. |
| 68 break_point_hit_count = 0; | 66 break_point_hit_count = 0; |
| 69 bp = Debug.setBreakPoint(f, 0, 0, 'true'); | 67 bp = Debug.setBreakPoint(f, 0, 0, 'true'); |
| 70 f(); | 68 f(); |
| 71 assertEquals(1, break_point_hit_count); | 69 assertEquals(1, break_point_hit_count); |
| 72 assertEquals(1, Debug.findBreakPoint(bp, false).hit_count()); | |
| 73 Debug.clearBreakPoint(bp); | 70 Debug.clearBreakPoint(bp); |
| 74 | 71 |
| 75 // Conditional breakpoint which different types of quotes. | 72 // Conditional breakpoint which different types of quotes. |
| 76 break_point_hit_count = 0; | 73 break_point_hit_count = 0; |
| 77 bp = Debug.setBreakPoint(f, 0, 0, '"a" == "a"'); | 74 bp = Debug.setBreakPoint(f, 0, 0, '"a" == "a"'); |
| 78 f(); | 75 f(); |
| 79 assertEquals(1, break_point_hit_count); | 76 assertEquals(1, break_point_hit_count); |
| 80 assertEquals(1, Debug.findBreakPoint(bp, false).hit_count()); | |
| 81 Debug.clearBreakPoint(bp); | 77 Debug.clearBreakPoint(bp); |
| 82 break_point_hit_count = 0; | 78 break_point_hit_count = 0; |
| 83 bp = Debug.setBreakPoint(f, 0, 0, "'a' == 'a'"); | 79 bp = Debug.setBreakPoint(f, 0, 0, "'a' == 'a'"); |
| 84 f(); | 80 f(); |
| 85 assertEquals(1, break_point_hit_count); | 81 assertEquals(1, break_point_hit_count); |
| 86 assertEquals(1, Debug.findBreakPoint(bp, false).hit_count()); | |
| 87 Debug.clearBreakPoint(bp); | 82 Debug.clearBreakPoint(bp); |
| 88 | 83 |
| 89 // Changing condition. | 84 // Changing condition. |
| 90 break_point_hit_count = 0; | 85 break_point_hit_count = 0; |
| 91 bp = Debug.setBreakPoint(f, 0, 0, '"ab".indexOf("b") > 0'); | 86 bp = Debug.setBreakPoint(f, 0, 0, '"ab".indexOf("b") > 0'); |
| 92 f(); | 87 f(); |
| 93 assertEquals(1, break_point_hit_count); | 88 assertEquals(1, break_point_hit_count); |
| 94 assertEquals(1, Debug.findBreakPoint(bp, false).hit_count()); | |
| 95 Debug.changeBreakPointCondition(bp, 'Math.sin(Math.PI/2) > 1'); | 89 Debug.changeBreakPointCondition(bp, 'Math.sin(Math.PI/2) > 1'); |
| 96 f(); | 90 f(); |
| 97 assertEquals(1, break_point_hit_count); | 91 assertEquals(1, break_point_hit_count); |
| 98 assertEquals(1, Debug.findBreakPoint(bp, false).hit_count()); | |
| 99 Debug.changeBreakPointCondition(bp, '1==1'); | 92 Debug.changeBreakPointCondition(bp, '1==1'); |
| 100 f(); | 93 f(); |
| 101 assertEquals(2, break_point_hit_count); | 94 assertEquals(2, break_point_hit_count); |
| 102 assertEquals(2, Debug.findBreakPoint(bp, false).hit_count()); | |
| 103 Debug.clearBreakPoint(bp); | 95 Debug.clearBreakPoint(bp); |
| 104 | 96 |
| 105 // Conditional breakpoint which checks global variable. | 97 // Conditional breakpoint which checks global variable. |
| 106 break_point_hit_count = 0; | 98 break_point_hit_count = 0; |
| 107 bp = Debug.setBreakPoint(f, 0, 0, 'x==1'); | 99 bp = Debug.setBreakPoint(f, 0, 0, 'x==1'); |
| 108 f(); | 100 f(); |
| 109 assertEquals(0, break_point_hit_count); | 101 assertEquals(0, break_point_hit_count); |
| 110 assertEquals(0, Debug.findBreakPoint(bp, false).hit_count()); | |
| 111 x=1; | 102 x=1; |
| 112 f(); | 103 f(); |
| 113 assertEquals(1, break_point_hit_count); | 104 assertEquals(1, break_point_hit_count); |
| 114 assertEquals(1, Debug.findBreakPoint(bp, false).hit_count()); | |
| 115 Debug.clearBreakPoint(bp); | 105 Debug.clearBreakPoint(bp); |
| 116 | 106 |
| 117 // Conditional breakpoint which checks global variable. | 107 // Conditional breakpoint which checks global variable. |
| 118 break_point_hit_count = 0; | 108 break_point_hit_count = 0; |
| 119 bp = Debug.setBreakPoint(g, 0, 0, 'count % 2 == 0'); | 109 bp = Debug.setBreakPoint(g, 0, 0, 'count % 2 == 0'); |
| 120 for (var i = 0; i < 10; i++) { | 110 for (var i = 0; i < 10; i++) { |
| 121 g(); | 111 g(); |
| 122 } | 112 } |
| 123 assertEquals(5, break_point_hit_count); | 113 assertEquals(5, break_point_hit_count); |
| 124 assertEquals(5, Debug.findBreakPoint(bp, false).hit_count()); | |
| 125 Debug.clearBreakPoint(bp); | 114 Debug.clearBreakPoint(bp); |
| 126 | 115 |
| 127 // Conditional breakpoint which checks a parameter. | 116 // Conditional breakpoint which checks a parameter. |
| 128 break_point_hit_count = 0; | 117 break_point_hit_count = 0; |
| 129 bp = Debug.setBreakPoint(h, 0, 0, 'x % 2 == 0'); | 118 bp = Debug.setBreakPoint(h, 0, 0, 'x % 2 == 0'); |
| 130 for (var i = 0; i < 10; i++) { | 119 for (var i = 0; i < 10; i++) { |
| 131 g(); | 120 g(); |
| 132 } | 121 } |
| 133 assertEquals(5, break_point_hit_count); | 122 assertEquals(5, break_point_hit_count); |
| 134 assertEquals(5, Debug.findBreakPoint(bp, false).hit_count()); | |
| 135 Debug.clearBreakPoint(bp); | 123 Debug.clearBreakPoint(bp); |
| 136 | 124 |
| 137 // Conditional breakpoint which checks a local variable. | 125 // Conditional breakpoint which checks a local variable. |
| 138 break_point_hit_count = 0; | 126 break_point_hit_count = 0; |
| 139 bp = Debug.setBreakPoint(h, 0, 22, 'a % 2 == 0'); | 127 bp = Debug.setBreakPoint(h, 0, 22, 'a % 2 == 0'); |
| 140 for (var i = 0; i < 10; i++) { | 128 for (var i = 0; i < 10; i++) { |
| 141 g(); | 129 g(); |
| 142 } | 130 } |
| 143 assertEquals(5, break_point_hit_count); | 131 assertEquals(5, break_point_hit_count); |
| 144 assertEquals(5, Debug.findBreakPoint(bp, false).hit_count()); | |
| 145 Debug.clearBreakPoint(bp); | 132 Debug.clearBreakPoint(bp); |
| 146 | 133 |
| 147 // Multiple conditional breakpoint which the same condition. | 134 // Multiple conditional breakpoint which the same condition. |
| 148 break_point_hit_count = 0; | 135 break_point_hit_count = 0; |
| 149 bp1 = Debug.setBreakPoint(h, 0, 22, 'a % 2 == 0'); | 136 bp1 = Debug.setBreakPoint(h, 0, 22, 'a % 2 == 0'); |
| 150 bp2 = Debug.setBreakPoint(h, 0, 22, 'a % 2 == 0'); | 137 bp2 = Debug.setBreakPoint(h, 0, 22, 'a % 2 == 0'); |
| 151 for (var i = 0; i < 10; i++) { | 138 for (var i = 0; i < 10; i++) { |
| 152 g(); | 139 g(); |
| 153 } | 140 } |
| 154 assertEquals(5, break_point_hit_count); | 141 assertEquals(5, break_point_hit_count); |
| 155 assertEquals(5, Debug.findBreakPoint(bp1, false).hit_count()); | |
| 156 assertEquals(5, Debug.findBreakPoint(bp2, false).hit_count()); | |
| 157 Debug.clearBreakPoint(bp1); | 142 Debug.clearBreakPoint(bp1); |
| 158 Debug.clearBreakPoint(bp2); | 143 Debug.clearBreakPoint(bp2); |
| 159 | 144 |
| 160 // Multiple conditional breakpoint which different conditions. | 145 // Multiple conditional breakpoint which different conditions. |
| 161 break_point_hit_count = 0; | 146 break_point_hit_count = 0; |
| 162 bp1 = Debug.setBreakPoint(h, 0, 22, 'a % 2 == 0'); | 147 bp1 = Debug.setBreakPoint(h, 0, 22, 'a % 2 == 0'); |
| 163 bp2 = Debug.setBreakPoint(h, 0, 22, '(a + 1) % 2 == 0'); | 148 bp2 = Debug.setBreakPoint(h, 0, 22, '(a + 1) % 2 == 0'); |
| 164 for (var i = 0; i < 10; i++) { | 149 for (var i = 0; i < 10; i++) { |
| 165 g(); | 150 g(); |
| 166 } | 151 } |
| 167 assertEquals(10, break_point_hit_count); | 152 assertEquals(10, break_point_hit_count); |
| 168 assertEquals(5, Debug.findBreakPoint(bp1, false).hit_count()); | |
| 169 assertEquals(5, Debug.findBreakPoint(bp2, false).hit_count()); | |
| 170 Debug.clearBreakPoint(bp1); | 153 Debug.clearBreakPoint(bp1); |
| 171 Debug.clearBreakPoint(bp2); | 154 Debug.clearBreakPoint(bp2); |
| OLD | NEW |