| // Copyright 2016 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("Check that debug and monitor methods from Command Line API works with bound function."); | |
| contextGroup.addScript(` | |
| function foo() {} | |
| function boo() {} | |
| var bar = boo.bind(null); | |
| function testFunction() { | |
| console.log("> debug foo and bar"); | |
| debug(foo); | |
| debug(bar); | |
| console.log("> call foo and bar"); | |
| foo(); | |
| bar(); | |
| console.log("> undebug foo and bar"); | |
| undebug(foo); | |
| undebug(bar); | |
| console.log("> call foo and bar"); | |
| foo(); | |
| bar(); | |
| console.log("> monitor foo and bar"); | |
| monitor(foo); | |
| monitor(bar); | |
| console.log("> call foo and bar"); | |
| foo(); | |
| bar(); | |
| console.log("> unmonitor foo and bar"); | |
| unmonitor(foo); | |
| unmonitor(bar); | |
| console.log("> call foo and bar"); | |
| foo(); | |
| bar(); | |
| console.log("> monitor and debug bar"); | |
| monitor(bar); | |
| debug(bar); | |
| console.log("> call bar"); | |
| bar(); | |
| console.log("> undebug bar"); | |
| undebug(bar); | |
| console.log("> call bar"); | |
| bar(); | |
| console.log("> debug and unmonitor bar"); | |
| debug(bar); | |
| unmonitor(bar); | |
| console.log("> call bar"); | |
| bar(); | |
| }`); | |
| Protocol.Runtime.enable(); | |
| Protocol.Debugger.enable(); | |
| Protocol.Debugger.onPaused(message => { | |
| var functionName = message.params.callFrames[0].functionName; | |
| InspectorTest.log(`paused in ${functionName}`); | |
| Protocol.Debugger.resume(); | |
| }); | |
| Protocol.Runtime.onConsoleAPICalled(message => InspectorTest.log(message.params.args[0].value)); | |
| Protocol.Runtime.evaluate({ expression: "testFunction()", includeCommandLineAPI: true }) | |
| .then(InspectorTest.completeTest); |