'use strict'; const common = require('../common'); const ArrayStream = require('../common/arraystream'); const fixtures = require('../common/fixtures'); const assert = require('assert'); const repl = require('repl'); let found = false; process.on('exit', () => { assert.strictEqual(found, true); }); ArrayStream.prototype.write = function(output) { // Matching only on a minimal piece of the stack because the string will vary // greatly depending on the JavaScript engine. V8 includes `;` because it // displays the line of code (`var foo bar;`) that is causing a problem. // ChakraCore does not display the line of code but includes `;` in the phrase // `Expected ';' `. if (/;/.test(output)) found = true; }; const putIn = new ArrayStream(); repl.start('', putIn); let file = fixtures.path('syntax', 'bad_syntax'); if (common.isWindows) file = file.replace(/\\/g, '\\\\'); putIn.run(['.clear']); putIn.run([`require('${file}');`]);