41 lines
789 B
JavaScript
41 lines
789 B
JavaScript
'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);
|
|
}
|