workaround Node.js bugs (#1775)

Wrap test code in IIFE before passing to `vm`

fixes #1768
fixes #1771
This commit is contained in:
Alex Lam S.L
2017-04-03 18:56:11 +08:00
committed by GitHub
parent 59a4e56bc8
commit a400741868

View File

@@ -12,7 +12,6 @@ var FUNC_TOSTRING = [
' return "[Function: __func_" + i + "__]";',
" }",
"}();",
""
].join("\n");
exports.run_code = function(code) {
var stdout = "";
@@ -21,7 +20,12 @@ exports.run_code = function(code) {
stdout += chunk;
};
try {
new vm.Script(FUNC_TOSTRING + code).runInNewContext({
vm.runInNewContext([
"!function() {",
FUNC_TOSTRING,
code,
"}();",
].join("\n"), {
console: {
log: function() {
return console.log.apply(console, [].map.call(arguments, function(arg) {