OLD | NEW |
1 // Copyright 2017 the V8 project authors. All rights reserved. | 1 // Copyright 2017 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // Flags: --allow-natives-syntax | 4 // Flags: --allow-natives-syntax |
5 | 5 |
6 print('Checks that breaks in framework code correctly processed.'); | 6 print('Checks that breaks in framework code correctly processed.'); |
7 | 7 |
8 InspectorTest.addScript(` | 8 InspectorTest.addScript(` |
9 function frameworkAssert() { | 9 function frameworkAssert() { |
10 console.assert(false); | 10 console.assert(false); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 } | 52 } |
53 | 53 |
54 function throwInlinedUncaughtError() { | 54 function throwInlinedUncaughtError() { |
55 function inlinedWrapper() { | 55 function inlinedWrapper() { |
56 throwUserException(); | 56 throwUserException(); |
57 } | 57 } |
58 %OptimizeFunctionOnNextCall(inlinedWrapper); | 58 %OptimizeFunctionOnNextCall(inlinedWrapper); |
59 inlinedWrapper(); | 59 inlinedWrapper(); |
60 } | 60 } |
61 | 61 |
| 62 function syncDOMBreakpointWithInlinedUserFrame() { |
| 63 function inlinedWrapper() { |
| 64 userFunction(); |
| 65 } |
| 66 %OptimizeFunctionOnNextCall(inlinedWrapper); |
| 67 inlinedWrapper(); |
| 68 } |
| 69 |
62 //# sourceURL=framework.js`, 8, 26); | 70 //# sourceURL=framework.js`, 8, 26); |
63 | 71 |
64 InspectorTest.addScript(` | 72 InspectorTest.addScript(` |
65 function throwUserException() { | 73 function throwUserException() { |
66 throw new Error(); | 74 throw new Error(); |
67 } | 75 } |
| 76 |
| 77 function userFunction() { |
| 78 syncDOMBreakpoint(); |
| 79 } |
| 80 |
68 //# sourceURL=user.js`, 64, 26) | 81 //# sourceURL=user.js`, 64, 26) |
69 | 82 |
70 InspectorTest.setupScriptMap(); | 83 InspectorTest.setupScriptMap(); |
71 Protocol.Debugger.onPaused(message => { | 84 Protocol.Debugger.onPaused(message => { |
72 InspectorTest.logCallFrames(message.params.callFrames); | 85 InspectorTest.logCallFrames(message.params.callFrames); |
73 InspectorTest.log(''); | 86 InspectorTest.log(''); |
74 Protocol.Debugger.resume(); | 87 Protocol.Debugger.resume(); |
75 }); | 88 }); |
76 | 89 |
77 Protocol.Debugger.enable(); | 90 Protocol.Debugger.enable(); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 InspectorTest.log('> all frames in framework:'); | 173 InspectorTest.log('> all frames in framework:'); |
161 Protocol.Runtime | 174 Protocol.Runtime |
162 .evaluate({expression: 'syncDOMBreakpoint()//# sourceURL=framework.js'}) | 175 .evaluate({expression: 'syncDOMBreakpoint()//# sourceURL=framework.js'}) |
163 .then(() => InspectorTest.log('> mixed, top frame in framework:')) | 176 .then(() => InspectorTest.log('> mixed, top frame in framework:')) |
164 .then( | 177 .then( |
165 () => Protocol.Runtime.evaluate( | 178 () => Protocol.Runtime.evaluate( |
166 {expression: 'syncDOMBreakpoint()//# sourceURL=user.js'})) | 179 {expression: 'syncDOMBreakpoint()//# sourceURL=user.js'})) |
167 .then(next); | 180 .then(next); |
168 }, | 181 }, |
169 | 182 |
| 183 function testSyncDOMBreakpointWithInlinedUserFrame(next) { |
| 184 InspectorTest.log('> mixed, top frame in framework:'); |
| 185 Protocol.Runtime |
| 186 .evaluate({expression: 'syncDOMBreakpointWithInlinedUserFrame()//# sourc
eURL=framework.js'}) |
| 187 .then(next); |
| 188 }, |
| 189 |
170 function testAsyncDOMBreakpoint(next) { | 190 function testAsyncDOMBreakpoint(next) { |
171 schedulePauseOnNextStatement('', ''); | 191 schedulePauseOnNextStatement('', ''); |
172 InspectorTest.log('> all frames in framework:'); | 192 InspectorTest.log('> all frames in framework:'); |
173 Protocol.Runtime | 193 Protocol.Runtime |
174 .evaluate( | 194 .evaluate( |
175 {expression: 'asyncDOMBreakpoint()//# sourceURL=framework.js'}) | 195 {expression: 'asyncDOMBreakpoint()//# sourceURL=framework.js'}) |
176 .then(() => cancelPauseOnNextStatement()) | 196 .then(() => cancelPauseOnNextStatement()) |
177 .then( | 197 .then( |
178 () => Protocol.Runtime.evaluate( | 198 () => Protocol.Runtime.evaluate( |
179 {expression: '42//# sourceURL=user.js'})) | 199 {expression: '42//# sourceURL=user.js'})) |
(...skipping 25 matching lines...) Expand all Loading... |
205 () => Protocol.Runtime.evaluate( | 225 () => Protocol.Runtime.evaluate( |
206 {expression: 'throwFromJSONParse()//# sourceURL=framework.js'})) | 226 {expression: 'throwFromJSONParse()//# sourceURL=framework.js'})) |
207 .then(() => InspectorTest.log('> mixed, top frame in framework:')) | 227 .then(() => InspectorTest.log('> mixed, top frame in framework:')) |
208 .then( | 228 .then( |
209 () => Protocol.Runtime.evaluate( | 229 () => Protocol.Runtime.evaluate( |
210 {expression: 'throwFromJSONParse()//# sourceURL=user.js'})) | 230 {expression: 'throwFromJSONParse()//# sourceURL=user.js'})) |
211 .then(() => Protocol.Debugger.setPauseOnExceptions({state: 'none'})) | 231 .then(() => Protocol.Debugger.setPauseOnExceptions({state: 'none'})) |
212 .then(next); | 232 .then(next); |
213 } | 233 } |
214 ]); | 234 ]); |
OLD | NEW |