diff --git a/bin/6to5-node b/bin/6to5-node index 4853e710ca..e862736934 100755 --- a/bin/6to5-node +++ b/bin/6to5-node @@ -20,11 +20,15 @@ commander.parse(process.argv); to5.register(); +var _eval = function (code, filename) { + var mod = new Module("."); + return mod._compile(code, filename); +}; + if (commander.eval) { var code = to5.transform(commander.eval, { filename: "eval" }); - var mod = new Module("."); - var result = mod._compile(code, "eval"); + var result = _eval(code, "eval"); if (commander.print) console.log(result); } else { var filenames = commander.args; @@ -43,7 +47,8 @@ function replStart() { prompt: "> ", input: process.stdin, output: process.stdout, - eval: replEval + eval: replEval, + useGlobal: true }); } @@ -55,7 +60,7 @@ function replEval(code, context, filename, callback) { code = code.slice(1, -2); // remove "(" and "\n)" code = to5.transform(code, { filename: filename }); - result = vm.runInContext(code, context, filename, { displayErrors: false }); + result = vm.runInThisContext(code, filename); } catch (e) { err = e; } diff --git a/lib/6to5/register.js b/lib/6to5/register.js index f2e1a54dd9..0d072cb2be 100644 --- a/lib/6to5/register.js +++ b/lib/6to5/register.js @@ -1,16 +1,23 @@ require("./polyfill"); var maps = {}; +var node = require("./node"); var old = require.extensions[".js"]; +// escodegen lazy requires source-map so we force it to load before we override +// the built-in requires +var escodegen = require("escodegen"); +escodegen.generate({ type: "Program", body: [] }, { sourceMap: true }); + // TODO: source maps - Error.prepareStackTrace override -require.extensions[".js"] = function (m, filename) { +require.extensions[".js"] = +require.extensions[".es6"] = function (m, filename) { if (filename.indexOf("node_modules") >= 0) { return old.apply(this, arguments); } - var result = exports.transformFileSync(filename, { + var result = node.transformFileSync(filename, { sourceMapObject: true }); diff --git a/lib/6to5/transformers/constants.js b/lib/6to5/transformers/constants.js index 65d579444b..0d1801b56c 100644 --- a/lib/6to5/transformers/constants.js +++ b/lib/6to5/transformers/constants.js @@ -16,7 +16,7 @@ exports.ForStatement = function (node) { }; _.each(node.body, function (child) { - if (child.type === "VariableDeclaration" && child.kind === "const") { + if (child && child.type === "VariableDeclaration" && child.kind === "const") { _.each(child.declarations, function (declar) { var name = declar.id.name; check(declar, name);