| // Copyright 2018 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( |
| 'Tests Command Line API evaluations with throwOnSideEffect.'); |
| |
| session.setupScriptMap(); |
| contextGroup.addScript(` |
| function f() { |
| } |
| var obj = {x: 1, y: 2}; |
| //# sourceURL=test.js`); |
| Protocol.Runtime.enable(); |
| Protocol.Debugger.enable(); |
| |
| (async function() { |
| utils.setMemoryInfoForTest(42); |
| await testExpression('console.memory'); |
| await Protocol.Runtime.evaluate( |
| {expression: '43', objectGroup: 'console', includeCommandLineAPI: true}); |
| await testExpression('$_'); |
| await testExpression('$0'); |
| await testExpression('$1'); |
| await testExpression('$2'); |
| await testExpression('$3'); |
| await testExpression('$4'); |
| await testMethod('console.debug'); |
| await testMethod('console.error'); |
| await testMethod('console.info'); |
| await testMethod('console.log'); |
| await testMethod('console.warn'); |
| await testMethod('console.dir'); |
| await testMethod('console.dirxml'); |
| await testMethod('console.table'); |
| await testMethod('console.trace'); |
| await testMethod('console.group'); |
| await testMethod('console.groupEnd'); |
| await testMethod('console.groupCollapsed'); |
| await testMethod('console.clear'); |
| await testMethod('console.count'); |
| await testMethod('console.assert'); |
| await testMethod('console.profile'); |
| await testMethod('console.profileEnd'); |
| await testMethod('console.time'); |
| await testMethod('console.timeEnd'); |
| await testMethod('debug', ['f']); |
| await testMethod('undebug', ['f']); |
| await testMethod('monitor'); |
| await testMethod('unmonitor'); |
| await testMethod('keys', ['obj']); |
| await testMethod('values', ['obj']); |
| await testMethod('inspect'); |
| await testMethod('copy', ['1']); |
| await testMethod('queryObjects', ['Array']); |
| |
| InspectorTest.completeTest(); |
| |
| async function testExpression(expression) { |
| InspectorTest.log(`\nExpression: ${expression}`); |
| await evaluateAndPrint(expression); |
| } |
| |
| async function testMethod(method, args = []) { |
| InspectorTest.log(`\nMethod: ${method}`); |
| await evaluateAndPrint(`${method}(${args.join(', ')})`); |
| await evaluateAndPrint(`${method}.toString()`); |
| } |
| |
| async function evaluateAndPrint(expression) { |
| const result = (await Protocol.Runtime.evaluate({ |
| expression, |
| throwOnSideEffect: true, |
| includeCommandLineAPI: true |
| })).result; |
| if (result.exceptionDetails) |
| InspectorTest.logMessage(result.exceptionDetails.exception.description); |
| else if (result.result) |
| InspectorTest.logMessage( |
| result.result.description || result.result.value || |
| result.result.type); |
| } |
| })(); |