|  | // Copyright 2017 the V8 project authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | let {session, contextGroup, Protocol} = InspectorTest.start('Checks nested scheduled break in framework code.'); | 
|  |  | 
|  | contextGroup.addScript(` | 
|  | function frameworkCall(callback) { | 
|  | inspector.callWithScheduledBreak(doFrameworkWork.bind(null, callback), | 
|  | 'top-framework-scheduled-break', | 
|  | JSON.stringify({ data: 'data for top-framework-scheduled-break' })); | 
|  | } | 
|  |  | 
|  | function doFrameworkWork(callback) { | 
|  | inspector.callWithScheduledBreak(doFrameworkBreak, 'should-not-be-a-reason', ''); | 
|  | callback(); | 
|  | } | 
|  |  | 
|  | function doFrameworkBreak() { | 
|  | inspector.breakProgram('framework-break', JSON.stringify({ data: 'data for framework-break' })); | 
|  | } | 
|  |  | 
|  | //# sourceURL=framework.js`, 7, 26); | 
|  |  | 
|  | contextGroup.addScript(` | 
|  | function testFunction() { | 
|  | inspector.callWithScheduledBreak(frameworkCall.bind(null, callback), | 
|  | 'top-scheduled-break', ''); | 
|  | } | 
|  |  | 
|  | function callback() { | 
|  | inspector.breakProgram('user-break', JSON.stringify({ data: 'data for user-break' })); | 
|  | return 42; | 
|  | } | 
|  |  | 
|  | //# sourceURL=user.js`, 25, 26); | 
|  |  | 
|  | session.setupScriptMap(); | 
|  | Protocol.Debugger.onPaused(message => { | 
|  | InspectorTest.log('break reason: ' + message.params.reason); | 
|  | InspectorTest.log('break aux data: ' + JSON.stringify(message.params.data || {}, null, '  ')); | 
|  | session.logCallFrames(message.params.callFrames); | 
|  | InspectorTest.log(''); | 
|  | Protocol.Debugger.resume(); | 
|  | }); | 
|  | Protocol.Debugger.enable() | 
|  | .then(() => Protocol.Debugger.setBlackboxPatterns({patterns: ['framework\.js']})) | 
|  | .then(() => Protocol.Runtime.evaluate({ expression: 'testFunction()//# sourceURL=expr.js'})) | 
|  | .then(InspectorTest.completeTest); |