mirror of https://github.com/lukechilds/node.git
Browse Source
Currently, when a file with a syntax error is imported in the REPL, no information is provided on the error's location. This commit adds the error's location to the stack trace. Refs: https://github.com/nodejs/node/issues/2762 Refs: https://github.com/nodejs/node/issues/3411 Refs: https://github.com/nodejs/node/issues/3784 PR-URL: https://github.com/nodejs/node/pull/4013 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>v5.x
cjihrig
9 years ago
committed by
Rod Vagg
2 changed files with 40 additions and 0 deletions
@ -0,0 +1,39 @@ |
|||
'use strict'; |
|||
|
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const path = require('path'); |
|||
const repl = require('repl'); |
|||
const util = require('util'); |
|||
let found = false; |
|||
|
|||
process.on('exit', () => { |
|||
assert.strictEqual(found, true); |
|||
}); |
|||
|
|||
// A stream to push an array into a REPL
|
|||
function ArrayStream() { |
|||
this.run = function(data) { |
|||
data.forEach(line => { |
|||
this.emit('data', line + '\n'); |
|||
}); |
|||
}; |
|||
} |
|||
util.inherits(ArrayStream, require('stream').Stream); |
|||
ArrayStream.prototype.readable = true; |
|||
ArrayStream.prototype.writable = true; |
|||
ArrayStream.prototype.resume = function() {}; |
|||
ArrayStream.prototype.write = function(output) { |
|||
if (/var foo bar;/.test(output)) |
|||
found = true; |
|||
}; |
|||
|
|||
const putIn = new ArrayStream(); |
|||
const testMe = repl.start('', putIn); |
|||
let file = path.resolve(__dirname, '../fixtures/syntax/bad_syntax'); |
|||
|
|||
if (common.isWindows) |
|||
file = file.replace(/\\/g, '\\\\'); |
|||
|
|||
putIn.run(['.clear']); |
|||
putIn.run([`require('${file}');`]); |
Loading…
Reference in new issue