dry up array comprehension and arrow functions by introducing an alias-functions transformer
This commit is contained in:
@@ -9,12 +9,14 @@ var single = function (node) {
|
||||
var templateName = "array-comprehension-map";
|
||||
if (node.filter) templateName = "array-comprehension-filter";
|
||||
|
||||
return util.template(templateName, {
|
||||
var result = util.template(templateName, {
|
||||
STATEMENT: node.body,
|
||||
FILTER: node.filter,
|
||||
ARRAY: block.right,
|
||||
KEY: block.left
|
||||
});
|
||||
result._aliasFunction = true;
|
||||
return result;
|
||||
};
|
||||
|
||||
var multiple = function (node, file) {
|
||||
@@ -23,6 +25,7 @@ var multiple = function (node, file) {
|
||||
var container = util.template("array-comprehension-container", {
|
||||
KEY: uid
|
||||
});
|
||||
container._aliasFunction = true;
|
||||
|
||||
var block = container.callee.body;
|
||||
var body = block.body;
|
||||
@@ -47,7 +50,10 @@ var multiple = function (node, file) {
|
||||
var filter = util.template("if", {
|
||||
STATEMENT: node.filter
|
||||
});
|
||||
|
||||
// set if body
|
||||
filter.consequent.body = [child];
|
||||
|
||||
child = filter;
|
||||
}
|
||||
}
|
||||
@@ -56,7 +62,10 @@ var multiple = function (node, file) {
|
||||
ARRAY: self.right,
|
||||
KEY: self.left
|
||||
}, true);
|
||||
|
||||
// set function body
|
||||
container2.expression.arguments[0].body.body = [child];
|
||||
|
||||
return container2;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user