kpdecker
999da739a6
Update for proposed SubExpression dependency break
...
Avoids parsing against SubExpressions and instead inlines the content that a subexpression otherwise would have. This can still be based via duck typing so should not add much overhead to the compiler.
2015-01-18 14:21:04 -06:00
kpdecker
d567d9c345
Update PartialExpression AST docs
2015-01-18 13:29:15 -06:00
kpdecker
cb51b82b8e
Add support for dynamic partial names
...
Uses the subexpression syntax to allow for dynamic partial lookups. Ex:
```
{{> (helper) }}
```
Fixes #933
2015-01-18 13:23:45 -06:00
kpdecker
b0b522b4f8
Add tests for partial comment whitespace control
2015-01-17 19:19:30 -06:00
kpdecker
3cf47abe19
Include error info when throwing type error
2015-01-17 19:19:30 -06:00
Kevin Decker
b7488acf89
Merge pull request #940 from mattflaschen/addMissingReservedWords
...
Add missing reserved words so compiler knows to use array syntax:
2015-01-17 18:32:58 -06:00
Matthew Flaschen
c9d723e0fb
Add missing reserved words so compiler knows to use array syntax:
...
* await
* null
* true
* false
IE 8 was failing to compile Handlebars-generated source code
because it had helpers.null.
I came up with this list by diffing
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords
against the ones Handlebars already had.
I added two corresponding tests for nameLookup.
2015-01-17 19:04:38 -05:00
kpdecker
c5fe2527b3
Ignore coverage dir in npm package
...
Fixes #937
2015-01-17 14:51:49 -06:00
Kevin Decker
9c40c07941
Merge pull request #938 from diwo/patch-1
...
Fix example using #with helper
2015-01-15 10:57:23 -08:00
Dickson Wong
9c7641f63f
Fix example using #with helper
...
Example using #with helper should close tag using {{/with}}
2015-01-14 15:46:54 -08:00
Kevin Decker
96a5cf5ba1
Merge pull request #932 from wycats/strict
...
Implement strict and assumeObject modes
2014-12-31 19:28:05 -06:00
Kevin Decker
4b2146b12d
Merge pull request #930 from wycats/visitor-update
...
Add parent tracking and mutation to AST visitors
2014-12-29 16:59:21 -06:00
kpdecker
6650957f79
Implement strict and assumeObject modes
...
Causes templates to throw when lookup fields are not defined within the context. Strict mode will throw when any field is omitted. assumeObjects mode maintains the existing behavior of outputting an empty response when fields are not defined but allows for performance/size optimizations by not doing safety checks for intermediate objects in the lookup chain.
Strict mode effectively disables the helperMissing and inverse handling for blockHelperMissing as templates will throw rather than call those features for missing data fields.
Fixes #651
Fixes #805
2014-12-27 14:59:36 -06:00
kpdecker
ec798a7c44
Merge branch 'master' into visitor-update
2014-12-27 13:30:20 -06:00
kpdecker
b764fb1ded
Fix sourcemap test
2014-12-27 13:17:55 -06:00
kpdecker
0a9fc171b0
Fix block param evaluation under older IE
2014-12-27 13:13:52 -06:00
kpdecker
9c9a972a0c
Safely handle source map in browser tests
2014-12-27 13:01:13 -06:00
kpdecker
b474630c7d
Strip unnecessary whitespace in template output
2014-12-27 12:58:28 -06:00
kpdecker
f147050513
Update dependencies
2014-12-27 12:12:21 -06:00
kpdecker
daa8f3dd05
Fix duplicate return statement on simple templates
2014-12-27 10:05:05 -06:00
kpdecker
be0ba75925
Fix case-insensitive file system compile issue
2014-12-26 11:34:48 -06:00
kpdecker
9ff3daf785
Add parent tracking and mutation to AST visitors
...
Fixes #916
2014-12-26 11:32:30 -06:00
kpdecker
8babe05953
Bump code coverage
2014-12-26 11:12:47 -06:00
kpdecker
396795c983
Implement block parameters
...
Fixes #907
2014-12-26 00:31:57 -06:00
kpdecker
9e907e6785
Expose AST helpers in public API
2014-12-21 22:32:50 -06:00
kpdecker
6d2239d8ac
Update fix for #926 for 3.0 codeline
2014-12-17 00:40:28 -06:00
kpdecker
59e80c5103
Track depths on deduped children
...
Fixes a very specific error case where deduped children won’t receive the depths object due to it being omitted by the caller when optimizing.
Fixes #926
2014-12-16 17:59:32 -06:00
kpdecker
69b1bdd32e
Avoid unnecessary this. reference
2014-12-16 12:57:46 -06:00
kpdecker
c05fad8b18
Fix remaining depth arg
2014-12-16 12:57:46 -06:00
kpdecker
203df9d5b7
Remove unused vars and add jshint checking
2014-12-16 12:57:46 -06:00
kpdecker
0d396ccd30
Remove Compiler.depths parameter
...
This is no longer necessary with the depths array tracking and adds compiler overhead.
2014-12-16 12:57:46 -06:00
Kevin Decker
ae8c1d229f
Merge pull request #918 from oneeman/submodule-instr-in-contributing
...
Add instructions for 'spec/mustache' to CONTRIBUTING.md, fix a few typos
2014-12-08 11:39:22 -08:00
Or Neeman
e7f51c2248
Add instructions for 'spec/mustache' to CONTRIBUTING.md, fix a few typos elsewere
2014-12-07 09:00:56 -06:00
kpdecker
3238645f26
Allow blockParams on chained inverse statements
2014-11-29 18:38:22 -06:00
kpdecker
f84f76f006
Add basic docs for JavaScriptCompiler override API
2014-11-29 18:20:11 -06:00
kpdecker
96c1300f15
Drop unused JavaScriptCompiler.namespace param
2014-11-29 18:11:58 -06:00
kpdecker
b6ba2dcdb0
Move compileProgram out of visitor methods
2014-11-29 18:02:58 -06:00
kpdecker
5b0efc7e91
Track source node via accept call rather vs opcode
2014-11-29 18:02:58 -06:00
Kevin Decker
d4070c3667
Merge pull request #915 from wycats/ast-update
...
Ast update
2014-11-29 18:02:12 -06:00
kpdecker
a655aedb5c
s/Subexpression/SubExpression/
2014-11-29 17:59:09 -06:00
kpdecker
928ba56b95
Rework strip flags to make clearer at in AST level
...
Rather than keeping state in the AST, which requires some gymnastics, we create a separate visitor flow which does the top down iteration necessary to calculate all of the state needed for proper whitespace control evaluation.
2014-11-28 23:13:06 -06:00
kpdecker
8a6796e5c0
Move Jison parsing out of AST into helpers
2014-11-28 17:26:52 -06:00
kpdecker
95b23095c0
First crack at compiler API docs
2014-11-28 16:55:53 -06:00
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