%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; require('../common'); // This test ensures that console methods cannot be invoked as constructors and // that their name is always correct. 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', ]; const alternateNames = { debug: 'log', info: 'log', dirxml: 'log', error: 'warn', groupCollapsed: 'group' }; function assertEqualName(method) { try { assert.strictEqual(console[method].name, method); } catch { assert.strictEqual(console[method].name, alternateNames[method]); } try { assert.strictEqual(newInstance[method].name, method); } catch { assert.strictEqual(newInstance[method].name, alternateNames[method]); } } for (const method of methods) { assertEqualName(method); 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); }