84 lines
2.8 KiB
JavaScript
84 lines
2.8 KiB
JavaScript
|
// 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);
|
||
|
}
|
||
|
})();
|