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();
|
to5.register();
|
||||||
|
|
||||||
|
var _eval = function (code, filename) {
|
||||||
|
var mod = new Module(".");
|
||||||
|
return mod._compile(code, filename);
|
||||||
|
};
|
||||||
|
|
||||||
if (commander.eval) {
|
if (commander.eval) {
|
||||||
var code = to5.transform(commander.eval, { filename: "eval" });
|
var code = to5.transform(commander.eval, { filename: "eval" });
|
||||||
|
|
||||||
var mod = new Module(".");
|
var result = _eval(code, "eval");
|
||||||
var result = mod._compile(code, "eval");
|
|
||||||
if (commander.print) console.log(result);
|
if (commander.print) console.log(result);
|
||||||
} else {
|
} else {
|
||||||
var filenames = commander.args;
|
var filenames = commander.args;
|
||||||
@ -43,7 +47,8 @@ function replStart() {
|
|||||||
prompt: "> ",
|
prompt: "> ",
|
||||||
input: process.stdin,
|
input: process.stdin,
|
||||||
output: process.stdout,
|
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 = code.slice(1, -2); // remove "(" and "\n)"
|
||||||
code = to5.transform(code, { filename: filename });
|
code = to5.transform(code, { filename: filename });
|
||||||
|
|
||||||
result = vm.runInContext(code, context, filename, { displayErrors: false });
|
result = vm.runInThisContext(code, filename);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
err = e;
|
err = e;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,16 +1,23 @@
|
|||||||
require("./polyfill");
|
require("./polyfill");
|
||||||
|
|
||||||
var maps = {};
|
var maps = {};
|
||||||
|
var node = require("./node");
|
||||||
var old = require.extensions[".js"];
|
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
|
// 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) {
|
if (filename.indexOf("node_modules") >= 0) {
|
||||||
return old.apply(this, arguments);
|
return old.apply(this, arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = exports.transformFileSync(filename, {
|
var result = node.transformFileSync(filename, {
|
||||||
sourceMapObject: true
|
sourceMapObject: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@ exports.ForStatement = function (node) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
_.each(node.body, function (child) {
|
_.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) {
|
_.each(child.declarations, function (declar) {
|
||||||
var name = declar.id.name;
|
var name = declar.id.name;
|
||||||
check(declar, name);
|
check(declar, name);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user