diff --git a/lib/xjst/compiler.js b/lib/xjst/compiler.js index 6efbcf8..d37b57d 100644 --- a/lib/xjst/compiler.js +++ b/lib/xjst/compiler.js @@ -415,10 +415,7 @@ exports.generate = function generate(ast, options) { var engine = xjst.engines[options.engine] || xjst.engines[process.env.XJST_ENGINE] || xjst.engines.fullgen, - tree = optimizeRecursion(engine( - templates, options, - predicateValues, predicateMap - )); + tree = optimizeRecursion(engine(templates, options, predicateValues)); // Finally render tree body = [ diff --git a/lib/xjst/engines/fullgen.js b/lib/xjst/engines/fullgen.js index 8787dd1..95df107 100644 --- a/lib/xjst/engines/fullgen.js +++ b/lib/xjst/engines/fullgen.js @@ -59,17 +59,14 @@ Merger.prototype.merge = function merge(obj) { }; // -// ### function engine (templates, options, predicateMap) +// ### function engine (templates, options, values) // #### @templates {Array} AST // #### @options {Object} Compiler options // #### @values {Object} Hash map of values of each each predicate -// #### @map {Object} Map: predicate id => predicate AST // Returns optimized tree (via fullgen algorithm) // -module.exports = function engine(templates, options, values, map) { - var predicatesValues = values, - predicateMap = map, - merger = new Merger(), +module.exports = function engine(templates, options, values) { + var merger = new Merger(), merge = merger.merge.bind(merger), unique = new utils.Identifier(); @@ -134,7 +131,7 @@ module.exports = function engine(templates, options, values, map) { var result = {}; result['switch'] = subMatch[1]; - result.cases = predicatesValues[subMatch[0]].map(function(v) { + result.cases = values[subMatch[0]].map(function(v) { return [v, traverse(i, j, xjst.state.create(state, predicate, utils.stringify(v)))];