summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/compiler/visitor.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/handlebars/compiler/visitor.js')
-rw-r--r--lib/handlebars/compiler/visitor.js45
1 files changed, 24 insertions, 21 deletions
diff --git a/lib/handlebars/compiler/visitor.js b/lib/handlebars/compiler/visitor.js
index 89dd632..cc54c53 100644
--- a/lib/handlebars/compiler/visitor.js
+++ b/lib/handlebars/compiler/visitor.js
@@ -75,35 +75,21 @@ Visitor.prototype = {
this.acceptArray(program.body);
},
- MustacheStatement: function(mustache) {
- this.acceptRequired(mustache, 'path');
- this.acceptArray(mustache.params);
- this.acceptKey(mustache, 'hash');
- },
+ MustacheStatement: visitSubExpression,
- BlockStatement: function(block) {
- this.acceptRequired(block, 'path');
- this.acceptArray(block.params);
- this.acceptKey(block, 'hash');
+ BlockStatement: visitBlock,
- this.acceptKey(block, 'program');
- this.acceptKey(block, 'inverse');
- },
+ PartialStatement: visitPartial,
+ PartialBlockStatement: function(partial) {
+ visitPartial.call(this, partial);
- PartialStatement: function(partial) {
- this.acceptRequired(partial, 'name');
- this.acceptArray(partial.params);
- this.acceptKey(partial, 'hash');
+ this.acceptKey(partial, 'program');
},
ContentStatement: function(/* content */) {},
CommentStatement: function(/* comment */) {},
- SubExpression: function(sexpr) {
- this.acceptRequired(sexpr, 'path');
- this.acceptArray(sexpr.params);
- this.acceptKey(sexpr, 'hash');
- },
+ SubExpression: visitSubExpression,
PathExpression: function(/* path */) {},
@@ -121,4 +107,21 @@ Visitor.prototype = {
}
};
+function visitSubExpression(mustache) {
+ this.acceptRequired(mustache, 'path');
+ this.acceptArray(mustache.params);
+ this.acceptKey(mustache, 'hash');
+}
+function visitBlock(block) {
+ visitSubExpression.call(this, block);
+
+ this.acceptKey(block, 'program');
+ this.acceptKey(block, 'inverse');
+}
+function visitPartial(partial) {
+ this.acceptRequired(partial, 'name');
+ this.acceptArray(partial.params);
+ this.acceptKey(partial, 'hash');
+}
+
export default Visitor;