Nils Knappmeier
379172e236
Merge branch '4.x'
2018-09-04 20:57:30 +02:00
Nils Knappmeier
8359722e5d
style: omit linting error caused by removing "if"
2018-09-04 00:16:01 +02:00
Qiang Li
0ddff8b388
unnecessary check
...
(cherry picked from commit e1fa310 )
2018-05-31 23:16:26 +02:00
Qiang Li
e1fa310101
unnecessary check
2018-03-31 08:22:20 +02:00
Nils Knappmeier
fb26f69485
Merge branch '4.x'
...
# Conflicts:
# CONTRIBUTING.md
# lib/handlebars/compiler/compiler.js
# package.json
# spec/compiler.js
2017-05-21 14:20:32 +02:00
Nils Knappmeier
0e953d1db5
Replace "Object.assign" (not support in IE) by "util/extend"
2017-05-21 14:02:35 +02:00
Nils Knappmeier
8a836e2272
Handlebars.compile() does not modify "options" anymore
...
Fixes #1327
- This commit creates a shallow copy of the "options" passed to
Handlebars.compile() in order to prevent modifications
- Note that "new Handlebars.Compiler().compile(..., options)" still
modify the options object. This might change in the future, if
anybody needs a fix for that.
2017-05-21 13:20:48 +02:00
kpdecker
118836f390
Throw exception if id tracking args are passed
...
Fixes #1151
2015-12-26 18:49:28 -06:00
kpdecker
63a08890cc
Remove semi-documented _setup and _child APIs
...
These were a bad idea to begin with and without the trackIds implementation they don’t make much sense.
2015-12-12 15:27:26 -06:00
machty
3f77b82ed0
Remove stringParams and trackIds mode
...
Closes #1145
2015-12-10 14:22:45 -05:00
kpdecker
b63d74a7b3
Add explicitPartialContext compiler flag
...
Fixes #1032
2015-09-01 01:05:00 -05:00
kpdecker
452afbf2ff
Implement block decorators
...
These allow for a given block to be wrapped in helper methods or metadata and allow for more control over the current container and method before the code is run.
2015-08-22 10:59:34 -07:00
kpdecker
91ffd32cad
Implement partial blocks
...
This allows for failover for missing partials as well as limited templating ability through the `{{> @partial-block }}` partial special case.
Partial fix for #1018
2015-08-22 10:59:08 -07:00
kpdecker
2571dd8e8e
Improve sanity checks in compiler and visitor
2015-08-22 10:58:44 -07:00
kpdecker
95d84badca
Drop AST constructors in favor of JSON
...
These were little more than object literal statements that were less clear due to their use of index-based arguments.
Fixes #1077
2015-08-18 23:57:27 -07:00
kpdecker
5d4b8da344
Pass undefined fields to helpers in strict mode
...
This allows for `{{helper foo}}` to still operate under strict mode when `foo` is not defined on the context. This allows helpers to perform whatever existence checks they please so patterns like `{{#if foo}}{{foo}}{{/if}}` can be used to protect against missing values.
Fixes #1063
2015-08-03 15:59:53 -05:00
kpdecker
9f265b9761
Handle this references properly in track id mode
2015-08-03 12:13:24 -05:00
kpdecker
efddc3c09c
Increase code coverage
2015-08-01 22:01:16 -05:00
kpdecker
4bed826d0e
Update for let and optional parameters
2015-04-20 02:38:28 -05:00
kpdecker
e3d3eda2e1
Add full support for es6
...
Converts the tool chain to use babel, eslint, and webpack vs. the previous proprietary solutions.
Additionally begins enforcing additional linting concerns as well as updates the code to reflect these rules.
Fixes #855
Fixes #993
2015-04-16 16:43:01 -05:00
kpdecker
2d149e7797
Add undefined and null literal support
...
This adds the UndefinedLiteral and NullLiteral to AST.
Fixes #990
2015-04-07 23:37:38 -05:00
kpdecker
c15f90e513
Fix typo
2015-02-10 20:40:53 -06:00
kpdecker
39121cf8f5
Handle all potential literal values
...
Adds support for literal helper names in a few missing cases such as block expressions and subexpressions.
2015-02-09 23:54:46 -06:00
Marcio Junior
07f27843dc
Transform literals to path expressions in mustache nodes
2015-02-08 19:31:38 -02:00
Marcio Junior
5cc326d425
Test compilation of literal values in mustaches
2015-02-08 19:31:38 -02:00
kpdecker
884bf15536
Avoid direct references to sexpr in statements
...
This allows us to avoid creating unnecessary AST nodes and avoids things like isHelper.
Side effect of these changes is that @data functions can now have data parameters passed to them.
2015-01-18 17:27:27 -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
0a9fc171b0
Fix block param evaluation under older IE
2014-12-27 13:13:52 -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
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
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
kpdecker
a655aedb5c
s/Subexpression/SubExpression/
2014-11-29 17:59:09 -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
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
249f559104
Include location information in all opcodes
2014-11-08 17:50:01 -06: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