1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
'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);
}
|