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
2a02261a5b
Fix IE test freakout
2015-04-14 22:57:15 -05:00
kpdecker
54e743a09a
Allow this references in literal statements
...
Fixes #967
2015-04-14 01:12:39 -05:00
kpdecker
dfd141cd35
Allow undefined and null in helper names
2015-04-13 21:18:53 -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
81a4d50955
Avoid source-map import under AMD
...
Fixes #989
2015-04-07 22:35:14 -05:00
kpdecker
e15af4c849
Add require.js error reporting in tests
...
Adds test coverage for #989
2015-04-07 21:51:50 -05: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
Marcio Junior
f857471cc8
Boolean literals can be passed to mustaches
2015-02-08 19:31:38 -02:00
kpdecker
fd8484798c
Fix console.log cleanup
2015-02-07 14:31:54 -06:00
kpdecker
810d86d474
Fix global leak in test
2015-02-07 13:28:27 -06:00
kpdecker
cfbef2585d
Fail over to console.log if lacking console method
...
This improves logger resiliency under older browsers.
2015-02-07 13:23:10 -06:00
kpdecker
95421271e3
Change default log level to info
...
Eventually we want to fix this API so that you can provide per-instance levels, etc but for now this is a quick fix.
Fixes wycats/handlebars-site#91
2015-02-07 12:31:19 -06: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
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
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
Kevin Decker
96a5cf5ba1
Merge pull request #932 from wycats/strict
...
Implement strict and assumeObject modes
2014-12-31 19:28:05 -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
9c9a972a0c
Safely handle source map in browser tests
2014-12-27 13:01:13 -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
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
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
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
6a7a8c803d
Rename AST objects to match type names
2014-11-28 14:42:24 -06:00
kpdecker
1124908d2a
Update subexpression and hash AST constructs
2014-11-27 08:37:48 -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
3a9440f954
Make each helper data uniform
...
Provide @key and @last value for all forms of iteration.
Fixes #910
2014-11-26 08:02:55 -06:00
kpdecker
c4b3c901a5
Provide Handlebars.noConflict implementation
...
Allows for users who are loading via a global pattern to avoid conflicting with other instances of the library.
Fixes #887
2014-11-26 07:48:45 -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
8dfeabdd16
Fix missing coverage
2014-11-08 18:11:29 -06:00
kpdecker
6d7696ef66
Remove unnecessary test stub
2014-11-08 18:09:15 -06:00
kpdecker
0dbeeb4503
Add source map output support to the CLI
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