// 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: ''
  });
}
