Commit Graph

480 Commits

Author SHA1 Message Date
Raimonds Simanovskis ada5a95f9c improved "with" and "each" helpers to support function as argument 2011-01-23 11:55:48 +02:00
Alan Johnson 65b421ee4d Merged 2011-01-22 10:30:44 -05:00
wycats c19f06b4ee Updated semantics 2010-12-29 19:20:03 -08:00
wycats bf6c74aa83 Restructure things more simply 2010-12-29 18:21:43 -08:00
Raimonds Simanovskis b319730031 improved "if" helper to support function as argument 2010-12-28 13:37:42 +02:00
wycats 72fa62529e Merge branch 'master' of https://github.com/zaach/handlebars.js into zaach-master 2010-12-27 13:02:20 -08:00
wycats d87ae129c0 Add a #with helper 2010-12-21 09:47:01 -08:00
wycats fc0d721b96 Use pluggable logger rather the puts 2010-12-21 09:45:59 -08:00
Zach Carter faea35f8fa Merging with latest master 2010-12-20 02:25:25 -05: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
Zach Carter 97536f897e Switch to Jison's lexer. 2010-12-14 19:07:05 -05: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 62cea5b05e Make sure rspec returns the right line number from library files 2010-12-11 18:29:05 -08:00
wycats 215754c268 Make helperMissing a built-in feature 2010-12-11 18:28:37 -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 fdc8e425d0 Improve compiling infrastructure, and restore a bit of duplication in spec_helper to make debugging easier in test failures 2010-12-11 18:10:26 -08: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 c89ecf80a5 Inverse should really be its own node, as it has totally different runtime semantics 2010-12-03 01:10:14 -05:00
wycats 8f6f3051e6 Add support for inverted sections in the parser 2010-12-03 00:54:18 -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
wycats 9846fb8a28 Got Qunit tests running through RSpec and fixed a bunch of bugs... 33 fails from the original suite to go 2010-11-28 17:36:05 -08:00
wycats b401fc388b Test the parser, and clean up ID having multiple parts 2010-11-25 23:32:03 -08:00
wycats f8b245896d Make the ID node capable of handling paths
TODO: handle invalid paths in the tokenizer or parser
  TODO: invalidate "{{ foo/ bar }}"
2010-11-25 16:12:50 -08:00
wycats 7d0204bf9f Add some more tests, and properly handle errors across the boundary in tests 2010-11-25 16:09:42 -08:00
wycats 4624eddf0b The tokenizer shouldn't get into an infinite loop in certain termination conditions 2010-11-25 12:46:25 -08:00
wycats 83fa737e04 Add tests for the tokenizer using RubyRacer 2010-11-25 11:53:41 -08:00