improve 6to5-node and fix register hook
This commit is contained in:
parent
fa86f58389
commit
b194461ba3
@ -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;
|
||||
}
|
||||
|
||||
@ -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
|
||||
});
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user