// Reference: https://github.com/nodejs/node/pull/7624 'use strict'; require('../common'); const assert = require('assert'); const repl = require('repl'); const stream = require('stream'); const r = initRepl(); r.input.emit('data', 'function a() { return 42; } (1)\n'); r.input.emit('data', 'a\n'); r.input.emit('data', '.exit'); const expected = '1\n[Function: a]\n'; const got = r.output.accumulator.join(''); assert.strictEqual(got, expected); function initRepl() { const input = new stream(); input.write = input.pause = input.resume = () => {}; input.readable = true; const output = new stream(); output.writable = true; output.accumulator = []; output.write = (data) => output.accumulator.push(data); return repl.start({ input, output, useColors: false, terminal: false, prompt: '' }); }