| 'use strict'; |
| // Refs: https://github.com/nodejs/node/issues/7788 |
| const common = require('../common'); |
| const assert = require('assert'); |
| const path = require('../common/fixtures').path; |
| const repl = require('repl'); |
| const stream = require('stream'); |
| const inputStream = new stream.PassThrough(); |
| const outputStream = new stream.PassThrough(); |
| const fixture = path('is-object.js'); |
| const r = repl.start({ |
| input: inputStream, |
| output: outputStream, |
| useGlobal: false |
| }); |
| |
| let output = ''; |
| outputStream.setEncoding('utf8'); |
| outputStream.on('data', (data) => output += data); |
| |
| r.on('exit', common.mustCall(() => { |
| const results = output.replace(/^> /mg, '').split('\n'); |
| |
| assert.deepStrictEqual(results, ['undefined', 'true', 'true', '']); |
| })); |
| |
| inputStream.write('const isObject = (obj) => obj.constructor === Object;\n'); |
| inputStream.write('isObject({});\n'); |
| inputStream.write(`require('${fixture}').isObject({});\n`); |
| r.close(); |