kpdecker
ffc9fb5007
Add original to BooleanLiteral
2014-11-28 16:55:41 -06:00
kpdecker
6a7a8c803d
Rename AST objects to match type names
2014-11-28 14:42:24 -06:00
kpdecker
f990cf0064
Treat partial exec in a manner closer to helpers
...
This helps unify the code handling and will also be needed to support string/id tracking on partials.
2014-11-27 09:11:03 -06:00
kpdecker
1124908d2a
Update subexpression and hash AST constructs
2014-11-27 08:37:48 -06:00
kpdecker
e1cba432a6
Simplify Path and Sexpr calculated flags
2014-11-27 07:32:15 -06:00
kpdecker
5c921cafeb
Replace DataNode and IdNode with PathNode
...
This is a breaking change for string mode users as there is no longer a distinct type for data parameters. Instead data consumers should look for the @ prefix value.
2014-11-26 20:36:36 -06:00
kpdecker
697bbe59ca
Update literal ast nodes for new spec
2014-11-26 19:22:09 -06:00
kpdecker
2a4819d75c
Update statement node ASTs
2014-11-26 19:04:18 -06:00
kpdecker
5cfe6a0be1
Update MustacheNode for new AST structure
2014-11-26 09:31:46 -06:00
kpdecker
df421f1e4b
Update ProgramNode to better match SpiderMonkey
2014-11-26 09:18:33 -06:00
kpdecker
61dd721ca2
Update AST location info to match SpiderMonkey
...
Part of #889
2014-11-26 09:01:03 -06:00
kpdecker
d044a8c99d
Optimize variable declaration
2014-11-25 23:15:11 -06:00
Martin Muñoz
b8a9f7264d
Add parser support for block params
2014-11-11 21:35:10 -05:00
kpdecker
4a2afa9d02
Propagate options for client compiled partials
...
Fixes #901
2014-11-08 19:06:40 -06:00
kpdecker
bf8cc50798
Merge branch 'remove-block-mustache' of github.com:mmun/handlebars.js into mmun-remove-block-mustache
...
Conflicts:
lib/handlebars/compiler/helpers.js
spec/parser.js
2014-11-08 18:57:06 -06:00
kpdecker
ac208b1bcd
Only provide aliases for multiple use calls
...
Fixes #903
2014-11-08 18:53:43 -06:00
kpdecker
1429587dd4
Provide default mapping for boilerplate code
2014-11-08 17:50:01 -06:00
kpdecker
3ee0682247
Generate source maps
...
Allow the precompiler to generate source maps when the srcFile parameter is passed.
This refactors large chunks of the code generation pipeline, allowing metadata to be associated with code chunks as well as breaking out much of the code generation logic into a separate helper.
2014-11-08 17:50:01 -06:00
kpdecker
249f559104
Include location information in all opcodes
2014-11-08 17:50:01 -06:00
Kevin Decker
ea6b0be910
Merge pull request #892 from wycats/else-if
...
Implement parser for else chaining of helpers
2014-11-08 17:49:14 -06:00
kpdecker
d595ebc0e2
Simplify program generation logic
2014-11-08 14:36:17 -06:00
kpdecker
d47e4dd1f7
Bump test coverage
2014-11-08 14:35:23 -06:00
kpdecker
83bcbee222
Ignore unused code paths
...
We don’t want to remove these as the generic code may need it in the future, but these code paths are not triggered through the existing language constructs.
2014-11-08 14:35:23 -06:00
kpdecker
30034c75e7
Merge setupParams and setupOptions
2014-11-06 09:43:43 -06:00
kpdecker
d3bd1a523d
Simplify flushInline implementation
2014-11-05 23:23:43 -06:00
kpdecker
9665379cdc
Use terinary operator for inline appends
...
Allows for append operations to avoid breaking inline chain.
2014-11-05 22:28:12 -06:00
kpdecker
a7000f8129
Provide stubbed visitor implementation
...
Part of #889
2014-11-05 21:57:09 -06:00
Martin Muñoz
a5d0491d57
Remove RawBlockNode in favor of prepareRawBlock helper
2014-11-05 11:00:39 -05:00
Martin Muñoz
12e3d210e8
Simplify BlockNode by removing intermediate MustacheNode
2014-11-02 18:19:20 -05:00
kpdecker
632fadcea3
Add preventIndent option for partials
...
This disables the standalone partial indent behavior required by the Mustache spec and allows for users to utilize partials in the same manner as under 1.x.
Fixes #858
2014-11-02 12:19:56 -06:00
kpdecker
f30b3ea329
Allow whitespace control on comments
...
This changes the call signature for the CommentNode constructor, which is a potentially breaking change for AST users.
Fixes #866
2014-11-02 11:55:52 -06:00
kpdecker
4282668d47
Implement parser for else chaining of helpers
...
Allows users to chain multiple helpers together using their inverse callbacks. I.e.
```
{{#if foo}}
{{else if bar}}
{{else}}
{{/if}}
```
The control flow here effectively causes the helpers to be nested. The above is actually syntactic sugar for this:
```
{{#if foo}}
{{else}}
{{#if bar}}
{{else}}
{{/if}}
{{/if}}
```
Any helper may be used in this manner, the only requirement is they support normal calls and inverse calls.
Introduces a breaking change in that `{{else foo}}` may no longer be used as a root level operator. Instead `{{^foo}}` must be used.
Fixes #72 .
2014-10-27 19:17:16 -05:00
kpdecker
4f01f650dc
Render false literal as “false”
...
Fixes #827
2014-08-25 23:35:43 -05:00
kpdecker
ca1486b960
Prune unused code
2014-08-25 22:39:17 -05:00
kpdecker
dc9a2ed7eb
Refactor content blocks to ignore lines
...
We can simplify our previous standalone determination logic by merging content blocks again.
Fixes #854
2014-08-25 13:27:28 -05:00
kpdecker
501a640330
Allow passing depths to _child
2014-08-25 00:32:57 -05:00
kpdecker
477a26913a
Optimize compiler opcode call
2014-08-24 18:16:11 -05:00
kpdecker
2b3fdf7ea8
Additional test coverage cleanup
...
Also fixes the template._child implementation which broke with the depthed work.
2014-08-23 18:52:30 -05:00
kpdecker
0c7c37df6a
Restore helperMissing for ambiguous statements
...
Fixes #318 (regression)
Partial fix for #783
2014-08-23 18:26:57 -05:00
kpdecker
cde008b49f
Cleanup from code coverage report
2014-08-23 17:44:45 -05:00
kpdecker
84d646bb5d
Move strip processing into AST helper logic
...
We already have to track these behaviors for the standalone parsing and rather than having two whitespace pruning implementations this moves all of the behavior into one place.
Fixes #852
2014-08-23 17:44:20 -05:00
kpdecker
ccd803ff15
Replace string value rather than add omit flag
2014-08-23 16:37:30 -05:00
kpdecker
0528b91644
Add original value tracking to ContentNode
2014-08-23 16:33:14 -05:00
kpdecker
529e2b6796
Merge branch 'refactor-parser' of github.com:mmun/handlebars.js into mmun-refactor-parser
...
Conflicts:
lib/handlebars/compiler/ast.js
spec/ast.js
src/handlebars.yy
2014-08-23 16:29:22 -05:00
kpdecker
3531e04117
Optimize replaceStack for inline methods
...
Only use case was with inline input so most of this code was unnecessary.
2014-08-23 07:43:09 -05:00
kpdecker
c3fde1c01c
Remove unnecessary stack variable from blockHelper
2014-08-23 07:42:24 -05:00
kpdecker
19ce981296
Do not flush subexpressions
...
They are no longer duplicated with the new helper calling pattern and this also introduced stack corruption issues due to improper value lookups.
Fixes #767
Fixes #768
2014-08-23 07:36:01 -05:00
kpdecker
3ce105ae89
Fix undefined handling for pathed lookups
...
Fixes #837
2014-08-15 01:45:50 -05:00
kpdecker
f2b5519e76
Strip dead code from javascript compiler
2014-08-15 00:40:07 -05:00
kpdecker
cc5de5df3c
Fix compat partial exec without data
2014-08-15 00:38:23 -05:00