dry up array comprehension and arrow functions by introducing an alias-functions transformer

This commit is contained in:
Sebastian McKenzie
2014-10-13 05:35:26 +11:00
parent a6ffde6e9b
commit 3d2c41bb5a
10 changed files with 132 additions and 81 deletions

View File

@@ -31,15 +31,13 @@ transform.test = function (task, assert) {
actualCode = recast.prettyPrint(actualAst).code;
if (task.options.exec) {
try {
var fn = new Function("assert", actualCode);
fn(assert);
} catch (err) {
console.log(actualCode);
throw err;
}
} else {
var expectCode = expect.code.trim();
var fn = new Function("assert", actualCode);
fn(assert);
}
var expectCode = expect.code.trim();
if (!task.options.exec || (task.options.exec && expectCode)) {
var expectAst = util.parse(expect, expectCode);
var expectResult = recast.prettyPrint(expectAst);
expectCode = expectResult.code;
@@ -64,7 +62,7 @@ transform.test = function (task, assert) {
transform._ensureTransformerNames = function (type, keys) {
_.each(keys, function (key) {
if (!transform.transformers[key]) {
if (key[0] === "_" || !transform.transformers[key]) {
throw new ReferenceError("unknown transformer " + key + " specified in " + type);
}
});
@@ -87,5 +85,7 @@ transform.transformers = {
restParameters: require("./transformers/rest-parameters"),
destructuring: require("./transformers/destructuring"),
forOf: require("./transformers/for-of"),
unicodeRegex: require("./transformers/unicode-regex")
unicodeRegex: require("./transformers/unicode-regex"),
_aliasFunctions: require("./transformers/_alias-functions")
};