%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'; // This verifies that adding an `uncaughtException` listener in an REPL instance // does not suppress errors in the whole application. Adding such listener // should throw. require('../common'); const ArrayStream = require('../common/arraystream'); const repl = require('repl'); const assert = require('assert'); let accum = ''; const output = new ArrayStream(); output.write = (data) => accum += data.replace('\r', ''); const r = repl.start({ prompt: '', input: new ArrayStream(), output, terminal: false, useColors: false, global: false }); r.write( 'process.nextTick(() => {\n' + ' process.on("uncaughtException", () => console.log("Foo"));\n' + ' throw new TypeError("foobar");\n' + '});\n' ); r.write( 'setTimeout(() => {\n' + ' throw new RangeError("abc");\n' + '}, 1);console.log()\n' ); r.close(); setTimeout(() => { const len = process.listenerCount('uncaughtException'); process.removeAllListeners('uncaughtException'); assert.strictEqual(len, 0); assert.match(accum, /ERR_INVALID_REPL_INPUT.*(?!Type)RangeError: abc/s); }, 2);