diff options
Diffstat (limited to 'lib/handlebars/compiler/helpers.js')
-rw-r--r-- | lib/handlebars/compiler/helpers.js | 11 |
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, |