summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/compiler/helpers.js
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2015-09-01 00:48:20 -0500
committerkpdecker <kpdecker@gmail.com>2015-09-01 00:48:20 -0500
commite7a64f018ca541a7e0ac8ab2108ed86820bb47b1 (patch)
tree9680f623156fad643bae1a38ae9de425d8fbd583 /lib/handlebars/compiler/helpers.js
parent0f5061e44524a431659f0665c4cd7557af9525a0 (diff)
parent6c45f49b24d63acda37072df464bd670af97a072 (diff)
downloadhandlebars.js-e7a64f018ca541a7e0ac8ab2108ed86820bb47b1.zip
handlebars.js-e7a64f018ca541a7e0ac8ab2108ed86820bb47b1.tar.gz
handlebars.js-e7a64f018ca541a7e0ac8ab2108ed86820bb47b1.tar.bz2
Merge branch 'decorators'
Diffstat (limited to 'lib/handlebars/compiler/helpers.js')
-rw-r--r--lib/handlebars/compiler/helpers.js11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/handlebars/compiler/helpers.js b/lib/handlebars/compiler/helpers.js
index 9c40f0d..e09a08d 100644
--- a/lib/handlebars/compiler/helpers.js
+++ b/lib/handlebars/compiler/helpers.js
@@ -84,8 +84,9 @@ export function prepareMustache(path, params, hash, open, strip, locInfo) {
let escapeFlag = open.charAt(3) || open.charAt(2),
escaped = escapeFlag !== '{' && escapeFlag !== '&';
+ let decorator = (/\*/.test(open));
return {
- type: 'MustacheStatement',
+ type: decorator ? 'Decorator' : 'MustacheStatement',
path,
params,
hash,
@@ -124,12 +125,18 @@ export function prepareBlock(openBlock, program, inverseAndProgram, close, inver
validateClose(openBlock, close);
}
+ let decorator = (/\*/.test(openBlock.open));
+
program.blockParams = openBlock.blockParams;
let inverse,
inverseStrip;
if (inverseAndProgram) {
+ if (decorator) {
+ throw new Exception('Unexpected inverse block on decorator', inverseAndProgram);
+ }
+
if (inverseAndProgram.chain) {
inverseAndProgram.program.body[0].closeStrip = close.strip;
}
@@ -145,7 +152,7 @@ export function prepareBlock(openBlock, program, inverseAndProgram, close, inver
}
return {
- type: 'BlockStatement',
+ type: decorator ? 'DecoratorBlock' : 'BlockStatement',
path: openBlock.path,
params: openBlock.params,
hash: openBlock.hash,