Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecedc23892 | ||
|
|
163c68dd6a | ||
|
|
4dc6147348 | ||
|
|
fa6e50ea28 | ||
|
|
a72c839a73 | ||
|
|
32b5edb711 | ||
|
|
8cbb121e3f | ||
|
|
75ece96475 | ||
|
|
b016fda8af | ||
|
|
2cffad61fa | ||
|
|
4e248c0a16 | ||
|
|
4f5026101b | ||
|
|
4ce38eab37 | ||
|
|
0a7ce115ff | ||
|
|
21ed438fd8 | ||
|
|
5f9e954d21 | ||
|
|
a03fd0f43a | ||
|
|
dcc5eaa95e | ||
|
|
3b7ce5aaa1 | ||
|
|
6811f071a9 | ||
|
|
9abda34e59 | ||
|
|
417ba2bd92 | ||
|
|
e23f8e92ba |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,5 +4,6 @@ test/tmp
|
||||
*.log
|
||||
*.cache
|
||||
/templates.json
|
||||
/browser.js
|
||||
coverage
|
||||
dist
|
||||
|
||||
@@ -17,5 +17,12 @@
|
||||
"loopfunc": true,
|
||||
"white": true,
|
||||
"maxparams": 5,
|
||||
"maxdepth": 4
|
||||
"maxdepth": 4,
|
||||
|
||||
"globals": {
|
||||
"suite": true,
|
||||
"set": true,
|
||||
"before": true,
|
||||
"bench": true
|
||||
}
|
||||
}
|
||||
|
||||
9
Makefile
9
Makefile
@@ -14,7 +14,7 @@ bench:
|
||||
node node_modules/matcha/bin/_matcha
|
||||
|
||||
test:
|
||||
$(JSHINT_CMD) lib
|
||||
$(JSHINT_CMD) lib bin benchmark/index.js
|
||||
$(MOCHA_CMD)
|
||||
|
||||
test-cov:
|
||||
@@ -35,7 +35,7 @@ build:
|
||||
|
||||
node bin/cache-templates
|
||||
|
||||
browserify lib/6to5/transform.js -s to5 >dist/6to5.js
|
||||
browserify lib/6to5/browser.js -s to5 >dist/6to5.js
|
||||
uglifyjs dist/6to5.js >dist/6to5.min.js
|
||||
|
||||
rm -rf templates.json
|
||||
@@ -45,6 +45,9 @@ publish:
|
||||
|
||||
make test
|
||||
|
||||
make build
|
||||
cp dist/6to5.js browser.js
|
||||
|
||||
node bin/cache-templates
|
||||
test -f templates.json
|
||||
|
||||
@@ -54,4 +57,4 @@ publish:
|
||||
|
||||
git push --follow-tags
|
||||
|
||||
rm -rf templates.json
|
||||
rm -rf templates.json browser.js
|
||||
|
||||
@@ -7,13 +7,10 @@ var es6now = require("es6now");
|
||||
var esnext = require("esnext");
|
||||
var to5 = require("../lib/6to5");
|
||||
|
||||
var uglify = require("uglify-js");
|
||||
//var uglify = require("uglify-js");
|
||||
var matcha = require("matcha");
|
||||
var stream = require("stream");
|
||||
var path = require("path");
|
||||
var zlib = require("zlib");
|
||||
var fs = require("fs");
|
||||
var vm = require("vm");
|
||||
var _ = require("lodash");
|
||||
|
||||
var readResolve = function (filename) {
|
||||
@@ -51,7 +48,7 @@ var compilers = {
|
||||
|
||||
traceur: {
|
||||
runtime: readResolve("traceur/bin/traceur-runtime.js"),
|
||||
compile: function (code, filename) {
|
||||
compile: function (code) {
|
||||
return traceur.compile(code, {
|
||||
modules: "commonjs",
|
||||
experimental: true
|
||||
@@ -61,20 +58,20 @@ var compilers = {
|
||||
|
||||
esnext: {
|
||||
runtime: readResolve("esnext/node_modules/regenerator/runtime.js") || readResolve("regenerator/runtime.js"),
|
||||
compile: function (code, filename) {
|
||||
compile: function (code) {
|
||||
return esnext.compile(code).code;
|
||||
}
|
||||
},
|
||||
|
||||
es6now: {
|
||||
runtime: readResolve("es6now/runtime/ES6.js"),
|
||||
compile: function (code, filename) {
|
||||
compile: function (code) {
|
||||
return es6now.translate(code);
|
||||
}
|
||||
},
|
||||
|
||||
"es6-transpiler": {
|
||||
compile: function (code, filename) {
|
||||
compile: function (code) {
|
||||
var result = es6tr.run({ src: code });
|
||||
if (result.errors.length) throw new Error(result.join("; "));
|
||||
return result.src;
|
||||
@@ -82,7 +79,7 @@ var compilers = {
|
||||
},
|
||||
|
||||
jstransform: {
|
||||
compile: function (code, filename) {
|
||||
compile: function (code) {
|
||||
return jsTrans.transform(jsTransVisitors, code).code;
|
||||
}
|
||||
}
|
||||
@@ -90,7 +87,7 @@ var compilers = {
|
||||
|
||||
// versions
|
||||
|
||||
var uglifyTitle = "uglify v" + getVersion("uglify-js");
|
||||
//var uglifyTitle = "uglify v" + getVersion("uglify-js");
|
||||
|
||||
_.each(compilers, function (compiler, name) {
|
||||
compiler.title = name + " v" + (compiler.version || getVersion(name));
|
||||
@@ -140,9 +137,9 @@ var sizeBenchmark = function (code, loc, name, compiler) {
|
||||
});
|
||||
if (!output) return;
|
||||
|
||||
go(function () {
|
||||
return uglify.minify(output, { fromString: true }).code;
|
||||
}, uglifyTitle);
|
||||
//go(function () {
|
||||
// return uglify.minify(output, { fromString: true }).code;
|
||||
//}, uglifyTitle);
|
||||
};
|
||||
|
||||
//
|
||||
@@ -162,7 +159,7 @@ _.each(fs.readdirSync(__dirname + "/fixtures"), function (name) {
|
||||
});
|
||||
});
|
||||
|
||||
_.each(compilers, function (compiler, name) {
|
||||
_.each(compilers, function (compiler) {
|
||||
bench(compiler.title, function () {
|
||||
compiler.compile(code, loc);
|
||||
});
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var commander = require("commander");
|
||||
var Module = require("module");
|
||||
var util = require("../lib/6to5/util");
|
||||
var path = require("path");
|
||||
var repl = require("repl");
|
||||
|
||||
@@ -6,7 +6,7 @@ var util = require("./util");
|
||||
var fs = require("fs");
|
||||
var _ = require("lodash");
|
||||
|
||||
module.exports = function (commander, filenames, opts) {
|
||||
module.exports = function (commander, filenames) {
|
||||
var results = [];
|
||||
|
||||
var buildResult = function () {
|
||||
@@ -48,7 +48,7 @@ module.exports = function (commander, filenames, opts) {
|
||||
return {
|
||||
map: map,
|
||||
code: code
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
var output = function () {
|
||||
@@ -101,7 +101,7 @@ module.exports = function (commander, filenames, opts) {
|
||||
});
|
||||
|
||||
_.each(_filenames, function (filename, i) {
|
||||
results.push(util.compile(filename, { _noStrict: i != 0 }));
|
||||
results.push(util.compile(filename, { _noStrict: +i !== 0 }));
|
||||
});
|
||||
|
||||
output();
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var commander = require("commander");
|
||||
var sourceMap = require("source-map");
|
||||
var transform = require("../../lib/6to5/transform");
|
||||
var chokidar = require("chokidar");
|
||||
var mkdirp = require("mkdirp");
|
||||
var util2 = require("../../lib/6to5/util");
|
||||
var util = require("./util");
|
||||
var path = require("path");
|
||||
var util = require("../../lib/6to5/util");
|
||||
var fs = require("fs");
|
||||
var _ = require("lodash");
|
||||
|
||||
@@ -17,8 +12,8 @@ commander.option("-f, --filename [filename]", "Filename to use when reading from
|
||||
commander.option("-w, --watch", "Recompile files on changes");
|
||||
|
||||
commander.option("-m, --modules [modules]", "Module formatter type to use [common]", "common");
|
||||
commander.option("-w, --whitelist [whitelist]", "Whitelist of transformers to ONLY use", util2.list);
|
||||
commander.option("-b, --blacklist [blacklist]", "Blacklist of transformers to NOT use", util2.list);
|
||||
commander.option("-w, --whitelist [whitelist]", "Whitelist of transformers to ONLY use", util.list);
|
||||
commander.option("-b, --blacklist [blacklist]", "Blacklist of transformers to NOT use", util.list);
|
||||
commander.option("-o, --out-file [out]", "Compile all input files into a single file");
|
||||
commander.option("-d, --out-dir [out]", "Compile an input directory of modules into an output directory");
|
||||
|
||||
|
||||
3
lib/6to5/browser.js
Normal file
3
lib/6to5/browser.js
Normal file
@@ -0,0 +1,3 @@
|
||||
var transform = require("./transform");
|
||||
|
||||
module.exports = transform;
|
||||
@@ -84,7 +84,8 @@ File.prototype.parse = function (code) {
|
||||
code = this.parseShebang(code);
|
||||
|
||||
return util.parse(this.opts, code, function (tree) {
|
||||
return self.transform(tree);
|
||||
self.transform(tree);
|
||||
return self.generate();
|
||||
});
|
||||
};
|
||||
|
||||
@@ -96,8 +97,6 @@ File.prototype.transform = function (ast) {
|
||||
_.each(transform.transformers, function (transformer) {
|
||||
transformer.transform(self);
|
||||
});
|
||||
|
||||
return this.generate();
|
||||
};
|
||||
|
||||
File.prototype.generate = function () {
|
||||
|
||||
@@ -71,7 +71,7 @@ transform.test = function (task, assert) {
|
||||
|
||||
transform._ensureTransformerNames = function (type, keys) {
|
||||
_.each(keys, function (key) {
|
||||
if (key[0] === "_" || !_.has(transform.transformers, key)) {
|
||||
if (!_.has(transform.transformers, key)) {
|
||||
throw new ReferenceError("unknown transformer " + key + " specified in " + type);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -15,7 +15,7 @@ var go = function (getBody, node, file) {
|
||||
};
|
||||
|
||||
// traverse the function and find all alias functions so we can alias
|
||||
// arguments and this if neccesary
|
||||
// arguments and this if necessary
|
||||
traverse(node, function (node) {
|
||||
var _aliasFunction = node._aliasFunction;
|
||||
if (!_aliasFunction) {
|
||||
|
||||
@@ -13,11 +13,15 @@ var buildVariableAssign = function (kind, id, init) {
|
||||
}
|
||||
};
|
||||
|
||||
var push = function (kind, nodes, pattern, parentId) {
|
||||
if (pattern.type === "ObjectPattern") {
|
||||
pushObjectPattern(kind, nodes, pattern, parentId);
|
||||
} else if (pattern.type === "ArrayPattern") {
|
||||
pushArrayPattern(kind, nodes, pattern, parentId);
|
||||
var push = function (kind, nodes, elem, parentId) {
|
||||
if (elem.type === "ObjectPattern") {
|
||||
pushObjectPattern(kind, nodes, elem, parentId);
|
||||
} else if (elem.type === "ArrayPattern") {
|
||||
pushArrayPattern(kind, nodes, elem, parentId);
|
||||
} else if (elem.type === "MemberExpression") {
|
||||
nodes.push(buildVariableAssign(false, elem, parentId));
|
||||
} else {
|
||||
nodes.push(buildVariableAssign(kind, elem, parentId));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -39,12 +43,7 @@ var pushArrayPattern = function (kind, nodes, pattern, parentId) {
|
||||
if (!elem) return;
|
||||
|
||||
var newPatternId = b.memberExpression(parentId, b.literal(i), true);
|
||||
|
||||
if (elem.type === "Identifier") {
|
||||
nodes.push(buildVariableAssign(kind, elem, newPatternId));
|
||||
} else {
|
||||
push(kind, nodes, elem, newPatternId);
|
||||
}
|
||||
push(kind, nodes, elem, newPatternId);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -42,9 +42,11 @@ exports.VariableDeclaration = function (node, parent, file) {
|
||||
if (node.type === "FunctionDeclaration") {
|
||||
throw new Error("`FunctionDeclaration`s that use `let` and `constant` references aren't allowed outside of the root scope");
|
||||
} else {
|
||||
return b.callExpression(b.functionExpression(null, letReferences, b.blockStatement([
|
||||
var func = b.functionExpression(null, letReferences, b.blockStatement([
|
||||
b.returnStatement(node)
|
||||
])), letReferences);
|
||||
]));
|
||||
func._aliasFunction = true;
|
||||
return b.callExpression(func, letReferences);
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -275,7 +275,7 @@ exports.parse = function (opts, code, callback) {
|
||||
message += frame;
|
||||
}
|
||||
|
||||
err.stack = err.stack.replace(err.message, message);
|
||||
err.stack = err.stack.replace(err.message, message);
|
||||
err.message = message;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "6to5",
|
||||
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
|
||||
"version": "1.10.2",
|
||||
"version": "1.10.7",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://github.com/sebmck/6to5",
|
||||
"repository": {
|
||||
@@ -48,7 +48,7 @@
|
||||
"source-map-support": "0.2.7",
|
||||
"esutils": "1.1.4",
|
||||
"acorn-jsx": "https://github.com/sebmck/acorn-jsx/archive/master.tar.gz",
|
||||
"acorn-recast": "0.8.0-3",
|
||||
"acorn-recast": "0.8.0-4",
|
||||
"acorn-ast-types": "0.5.3-1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
1
test/fixtures/transformation/destructuring/member-expression/actual.js
vendored
Normal file
1
test/fixtures/transformation/destructuring/member-expression/actual.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
[this.foo, this.bar] = [1, 2];
|
||||
4
test/fixtures/transformation/destructuring/member-expression/expected.js
vendored
Normal file
4
test/fixtures/transformation/destructuring/member-expression/expected.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
"use strict";
|
||||
var _ref = [1, 2];
|
||||
this.foo = _ref[0];
|
||||
this.bar = _ref[1];
|
||||
Reference in New Issue
Block a user