// 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. InspectorTest.addScript(` var self = this; function checkPrototype() { const prototype1 = Object.getPrototypeOf(console); const prototype2 = Object.getPrototypeOf(prototype1); if (Object.getOwnPropertyNames(prototype1).length !== 0) return "false: The [[Prototype]] must have no properties"; if (prototype2 !== Object.prototype) return "false: The [[Prototype]]'s [[Prototype]] must be %ObjectPrototype%"; return "true"; } `); InspectorTest.runAsyncTestSuite([ async function consoleExistsOnGlobal() { let message = await Protocol.Runtime.evaluate({ expression: 'self.hasOwnProperty(\'console\')', returnByValue: true}); InspectorTest.log(message.result.result.value); }, async function consoleHasRightPropertyDescriptor() { let message = await Protocol.Runtime.evaluate({ expression: 'Object.getOwnPropertyDescriptor(self, \'console\')', returnByValue: true}); let result = message.result.result.value; result.value = ''; InspectorTest.logObject(result); }, async function ConsoleNotExistsOnGlobal() { let message = await Protocol.Runtime.evaluate({ expression: '\'Console\' in self', returnByValue: true}) InspectorTest.log(message.result.result.value); }, async function prototypeChainMustBeCorrect() { let message = await Protocol.Runtime.evaluate({ expression: "checkPrototype()", returnByValue: true }); InspectorTest.log(message.result.result.value); }, async function consoleToString() { let message = await Protocol.Runtime.evaluate({ expression: 'console.toString()', returnByValue: true}) InspectorTest.log(message.result.result.value); } ]);