| 'use strict'; |
| require('../common'); |
| |
| // This test ensures that console methods |
| // cannot be invoked as constructors |
| |
| const assert = require('assert'); |
| |
| const { Console } = console; |
| const newInstance = new Console(process.stdout); |
| const err = TypeError; |
| |
| const methods = [ |
| 'log', |
| 'warn', |
| 'dir', |
| 'time', |
| 'timeEnd', |
| 'timeLog', |
| 'trace', |
| 'assert', |
| 'clear', |
| 'count', |
| 'countReset', |
| 'group', |
| 'groupEnd', |
| 'table', |
| 'debug', |
| 'info', |
| 'dirxml', |
| 'error', |
| 'groupCollapsed', |
| ]; |
| |
| for (const method of methods) { |
| assert.throws(() => new console[method](), err); |
| assert.throws(() => new newInstance[method](), err); |
| assert.throws(() => Reflect.construct({}, [], console[method]), err); |
| assert.throws(() => Reflect.construct({}, [], newInstance[method]), err); |
| } |