v8/test/inspector/runtime/regression-736302.js
Alexey Kozyatinskiy 292e96709c [inspector] catch exception during object.toString() call for console
Console methods should never throw an exception.

R=jgruber@chromium.org

Bug: chromium:736302
Change-Id: I05791b366d46a43b2a78825cbb8a82bb049110e6
Reviewed-on: https://chromium-review.googlesource.com/567434
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46573}
2017-07-12 06:01:42 +00:00

41 lines
1.2 KiB
JavaScript

// 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('crbug.com/736302');
InspectorTest.runAsyncTestSuite([
async function testThrowException() {
await Protocol.Runtime.enable();
Protocol.Runtime.evaluate({expression: `
console.count({
get [Symbol.toStringTag]() {
throw new Error();
}
});`});
InspectorTest.logMessage(await Protocol.Runtime.onceConsoleAPICalled());
await Protocol.Runtime.disable();
},
async function testCustomName() {
await Protocol.Runtime.enable();
Protocol.Runtime.evaluate({expression: `
console.count({
get [Symbol.toStringTag]() {
return 'MyObject';
}
});`});
InspectorTest.logMessage(await Protocol.Runtime.onceConsoleAPICalled());
await Protocol.Runtime.disable();
},
async function testObject() {
await Protocol.Runtime.enable();
Protocol.Runtime.evaluate({expression: `
console.count({});`});
InspectorTest.logMessage(await Protocol.Runtime.onceConsoleAPICalled());
await Protocol.Runtime.disable();
}
]);