summaryrefslogtreecommitdiff
path: root/test/parallel/test-repl.js
diff options
context:
space:
mode:
authorPrince J Wesley <princejohnwesley@gmail.com>2016-02-25 00:26:41 +0530
committerRoman Reiss <me@silverwind.io>2016-02-29 10:46:31 +0100
commit40d57b714e6b8e20c320ddaee22b3ff14c0e2fee (patch)
tree79883b342aca242882b019dd8d61e11c9e653879 /test/parallel/test-repl.js
parentf0c06147b3ff29919532c69d147d1d64983b3af6 (diff)
downloadandroid-node-v8-40d57b714e6b8e20c320ddaee22b3ff14c0e2fee.tar.gz
android-node-v8-40d57b714e6b8e20c320ddaee22b3ff14c0e2fee.tar.bz2
android-node-v8-40d57b714e6b8e20c320ddaee22b3ff14c0e2fee.zip
repl: fix stack trace column number in strict mode
On strict mode, "'use strict'; void 0; " is added as prefix in order to prevent "use strict" as the result value for let/const statements. It causes wrong column number in stack trace. PR-URL: https://github.com/nodejs/node/pull/5416 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io>
Diffstat (limited to 'test/parallel/test-repl.js')
-rw-r--r--test/parallel/test-repl.js23
1 files changed, 20 insertions, 3 deletions
diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js
index 539878a947..7ec9f1c363 100644
--- a/test/parallel/test-repl.js
+++ b/test/parallel/test-repl.js
@@ -15,7 +15,7 @@ const prompt_npm = 'npm should be run outside of the ' +
'node repl, in your normal shell.\n' +
'(Press Control-D to exit.)\n';
const expect_npm = prompt_npm + prompt_unix;
-var server_tcp, server_unix, client_tcp, client_unix, timer;
+var server_tcp, server_unix, client_tcp, client_unix, timer, replServer;
// absolute path to test/fixtures/a.js
@@ -48,9 +48,17 @@ function clean_up() {
clearTimeout(timer);
}
+function strict_mode_error_test() {
+ send_expect([
+ { client: client_unix, send: 'ref = 1',
+ expect: /^ReferenceError:\sref\sis\snot\sdefined\n\s+at\srepl:1:5/ },
+ ]);
+}
+
function error_test() {
// The other stuff is done so reuse unix socket
var read_buffer = '';
+ var run_strict_test = true;
client_unix.removeAllListeners('data');
client_unix.on('data', function(data) {
@@ -72,6 +80,10 @@ function error_test() {
read_buffer = '';
if (client_unix.list && client_unix.list.length > 0) {
send_expect(client_unix.list);
+ } else if (run_strict_test) {
+ replServer.replMode = repl.REPL_MODE_STRICT;
+ run_strict_test = false;
+ strict_mode_error_test();
} else {
console.error('End of Error test, running TCP test.');
tcp_test();
@@ -83,6 +95,10 @@ function error_test() {
read_buffer = '';
if (client_unix.list && client_unix.list.length > 0) {
send_expect(client_unix.list);
+ } else if (run_strict_test) {
+ replServer.replMode = repl.REPL_MODE_STRICT;
+ run_strict_test = false;
+ strict_mode_error_test();
} else {
console.error('End of Error test, running TCP test.\n');
tcp_test();
@@ -381,12 +397,13 @@ function unix_test() {
socket.end();
});
- repl.start({
+ replServer = repl.start({
prompt: prompt_unix,
input: socket,
output: socket,
useGlobal: true
- }).context.message = message;
+ });
+ replServer.context.message = message;
});
server_unix.on('listening', function() {