| // 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('Tests console object and it\'s prototype'); |
| |
| contextGroup.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 = '<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); |
| }, |
| |
| async function consoleMethodPropertyDescriptor() { |
| let message = await Protocol.Runtime.evaluate({ |
| expression: 'Object.getOwnPropertyDescriptor(console, \'log\')', |
| returnByValue: true}); |
| InspectorTest.logObject(message.result.result.value); |
| } |
| ]); |