From: Evan Lucas Date: Thu, 29 Oct 2015 16:22:00 +0000 (-0500) Subject: src: wrap source before doing syntax check X-Git-Tag: v4.2.2~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5d1f1c5fa8848e406f3bc1d66a79fd9f1e819bba;p=platform%2Fupstream%2Fnodejs.git src: wrap source before doing syntax check This is to ensure that it is evaluated the same way it would be if it were to be run by node or required. Before, the following would pass if run by node, but fail if run via the syntax check flag: if (true) { return; } Now, this will pass the syntax check PR-URL: https://github.com/nodejs/node/pull/3587 Reviewed-By: Ben Noordhuis Reviewed-By: Sakthipriyan Vairamani --- diff --git a/src/node.js b/src/node.js index 7cfd2c0..1aa489b 100644 --- a/src/node.js +++ b/src/node.js @@ -104,6 +104,8 @@ var source = fs.readFileSync(filename, 'utf-8'); // remove shebang and BOM source = internalModule.stripBOM(source.replace(/^\#\!.*/, '')); + // wrap it + source = Module.wrap(source); // compile the script, this will throw if it fails new vm.Script(source, {filename: filename, displayErrors: true}); process.exit(0); diff --git a/test/fixtures/syntax/illegal_if_not_wrapped.js b/test/fixtures/syntax/illegal_if_not_wrapped.js new file mode 100644 index 0000000..d76a836 --- /dev/null +++ b/test/fixtures/syntax/illegal_if_not_wrapped.js @@ -0,0 +1,3 @@ +if (true) { + return; +} diff --git a/test/parallel/test-cli-syntax.js b/test/parallel/test-cli-syntax.js index 20fdfdc..1118a63 100644 --- a/test/parallel/test-cli-syntax.js +++ b/test/parallel/test-cli-syntax.js @@ -20,6 +20,7 @@ var syntaxArgs = [ 'syntax/good_syntax', 'syntax/good_syntax_shebang.js', 'syntax/good_syntax_shebang', + 'syntax/illegal_if_not_wrapped.js' ].forEach(function(file) { file = path.join(common.fixturesDir, file);