kpdecker
085e5e1937
Refactor template init logic
2014-04-13 07:21:08 -05:00
kpdecker
c72a8d5e84
Add child accessor API
2014-02-09 22:48:38 -06:00
kpdecker
16f135835e
Add support for depthed resolution of data fields
2014-02-09 18:35:22 -06:00
kpdecker
2812fe2775
Convert template spec to object literal
...
This allows for metadata to be associated with the template and a simplification of the template init logic.
2014-02-06 23:05:45 -08:00
kpdecker
cea57c05e2
Optimize initData for root defined case
2014-01-18 09:23:11 -06:00
kpdecker
45ae86a248
Implement partial hash evaluation
2014-01-17 17:51:52 -06:00
Blake Embrey
13633e7896
Improve usefulness of extend util, properly use namespace property, update setup options to use a hash helper.
2014-01-16 21:24:26 +10:00
kpdecker
f650b0d69e
Expose the initial context via @root
2014-01-15 09:41:53 -06:00
kpdecker
6e4e1f8404
Include line info in compiler thrown exceptions
...
Fixes #636
2014-01-01 19:14:51 -06:00
kpdecker
bbc7c7d080
Expose compilerInfo and checkRevision as APIs
...
Fixes #656
2013-12-23 21:00:59 -06:00
kpdecker
abe9c82e75
Use env.VM to lookup runtime methods
...
Allows for overrides by 3rd parties
Fixes #679
2013-12-23 19:53:11 -06:00
kpdecker
93fb25c702
Handle empty responses from partials
...
Fixes #675
2013-12-23 15:33:33 -06:00
kpdecker
f17cb3ecac
Run jshint on output
...
Allows us to execute jshint in non-forced mode.
2013-12-01 15:40:08 -06:00
kpdecker
15500aef70
Access utils methods via modules
...
Allows for monkey patching (under ES5 systems). This somewhat mirrors
the proposed behavior in https://github.com/square/es6-module-transpiler/issues/37
but applies the behavior via manual code changes rather than compiler
support.
2013-10-14 11:50:18 -05:00
kpdecker
9769045e04
Cleanup unused var warnings
2013-10-09 03:53:09 -07:00
kpdecker
b6c9f85d22
Use template env and compile methods
2013-10-09 03:20:22 -07:00
Alex Navasardyan
19f1a1f81d
fixing jshint errors
2013-10-04 14:28:05 -04:00
kpdecker
6a23391a9a
Break exception class out into a standalone module
2013-10-01 21:14:18 -05:00
kpdecker
1e8409efa6
Fix merge errors
2013-09-02 18:25:03 -05:00
kpdecker
cb0c45b29f
Merge branch 'master' into es6-modules
...
Conflicts:
Gruntfile.js
Rakefile
dist/handlebars.js
dist/handlebars.runtime.js
lib/handlebars.js
lib/handlebars/base.js
lib/handlebars/runtime.js
lib/handlebars/utils.js
package.json
2013-09-02 18:19:18 -05:00
kpdecker
4c02d3027c
Optimize partial helper/partial merge handling
2013-08-24 19:52:22 -05:00
Yehuda Katz
5f664dd78b
Make the Handlebars environment into an object
...
The idea is that the environment wraps up the mutable stuff in
Handlebars (like the helpers) and that you could theoretically create a
new one at any time and pass it in to Handlebars.template.
Every test makes a new environment and uses it in template compilation.
2013-07-26 16:50:37 +00:00
Yehuda Katz
f5c8484ea0
Further progress towards modularization.
...
At this point, I have only 2 fails in the Node build, but I'm doing a
bunch of manual stuff locally and still have a bunch of hacks.
2013-07-24 05:03:27 +00:00
Yehuda Katz
88ee4757e7
Initial work on ES6 modules
2013-07-01 13:59:58 -07:00
kpdecker
16fd601a5c
Merge global and passed helpers and partials
2013-05-31 13:12:06 -04:00
kpdecker
baccdb4cfc
Add program metadata
...
Include program id and depth on the generated wrapper objects. This
allows helpers who are passed these objects to differentiate between
helpers for cases where they may want to cache the generated DOM
structure.
2013-02-17 04:27:42 -06:00
Tommy Messbauer
1ca7462497
merge
2013-02-11 23:00:47 -06:00
Peter Wagenet
7c633b604d
Better error messages for precompiler runtime mismatch
2013-02-09 19:25:53 -08:00
Peter Wagenet
51e9259fac
Decouple compiler version checks from release versions
2013-02-08 18:42:20 -08:00
Peter Wagenet
6fe7f17c89
Improved precompile template version check
...
This check reduces duplicated code as well as also failing if the
template was precompiled on a version before the check was added.
2013-01-30 22:44:30 -08:00
Tommy Messbauer
db975b42a0
Merged upstream master and ran unit tests
2012-11-26 10:26:15 -06:00
Tommy Messbauer
7963218495
Factory update with tabs to spaces.. sorry :(
2012-11-26 09:39:08 -06:00
Kiall Mac Innes
967c69b2da
Ensure plain text partials supplied to registerPartials are compiled using data: true if necessary.
2012-09-13 15:04:34 +01:00
Tommy Messbauer
7c4813b417
Commiting initial factory code
2012-08-29 12:48:22 -05:00
Nick Fisher
58e2c2410f
Added a missing var statement.
2012-01-17 07:16:19 +01:00
Yehuda Katz
757d5250dc
Rename "vm" to "runtime" for clarity
2011-12-27 18:15:44 -08:00
tomhuda
d83e1c7484
Remove unnecessary original runtime implementation
2011-05-03 20:38:06 -07:00
Alex Stupka
8ab1ffae17
Use prototype toString method to avoid native types being returned.
...
* For example, mozilla returns [xpconnect native prototype wrapper] vs [object Function]
2011-01-17 15:42:27 -08:00
wycats
bf6c74aa83
Restructure things more simply
2010-12-29 18:21:43 -08:00
wycats
0da3065987
Clean up after-effects of Jison fix
2010-12-28 15:46:26 -08:00
wycats
b418ef6eb2
Add optimized compiled version of handlebars, which should be significantly faster. Use Handlebars.VM.compile instead of Handlebars.compile to use the optimized version.
...
Major TODOS:
* clean up a bunch of code duplication in the compiler
* reorganize the compiler
* add support for debug symbols which would make it possible
to provide information about what part of the source caused
a runtime error.
2010-12-18 23:27:34 -08:00
wycats
e15d675a64
Everything is working now on the new VM except for partials and inverse sections
2010-12-15 23:42:53 -08:00
wycats
ec948c7382
Small restructuring. Have I mentioned how much I hate having to write modules that work in both CommonJS and the browser?
2010-12-12 13:33:17 -08:00
wycats
9fcd85bbac
Allow helperMissing to apply to simple mustaches (paves the way to support things like link_to in a Rails context)
2010-12-11 18:43:58 -08:00
wycats
5097c18912
Make it possible to register helpers and partials and then skip passing in the helpers or partials later
2010-12-11 18:10:56 -08:00
wycats
35b4d9fd01
linting
2010-12-04 22:26:41 -05:00
wycats
4db1abcd74
Fix up the compilation process
2010-12-04 17:35:36 -05:00
wycats
f205cec745
Finish compatibility with the old handlebars:
...
* foo"bar" is an invalid param
* {{foo}}bar{{/baz}} is invalid
* fix a number of issues with inverse sections
* add partials
2010-12-03 16:49:04 -05:00
wycats
9a6f77af56
A few more lingering bugs:
...
* add helperMissing.not to the specs
* add Handlebars.Utils.isEmpty
* add runtime handling for inverse sections
* fix __get__ to pass an IdNode to evaluate
* handle case in wrapProgram where context is undefined
2010-12-03 01:39:00 -05:00
wycats
762329913d
Fix a number of outstanding issues:
...
* {{}} escape their contents, {{{}}} and {{& }} do not
* Add support in the parser, tokenizer and AST for partials
with context (support is still not there in the runtime)
* Fix some inconsistencies with the old behavior involving
the correct printing of null and undefined
* Add Handlebars.Exception
* Fixed an issue involving ./foo and this/foo
* Fleshed out helperMissing in the specs (this will be
moved out into handlebars proper once registerHelper
and registerPartial are added)
2010-12-02 01:13:24 -05:00