1 | # Release Notes
|
2 |
|
3 | ## Development
|
4 |
|
5 | [Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.7...master)
|
6 |
|
7 | ## v4.7.7 - February 15th, 2021
|
8 |
|
9 | - fix weird error in integration tests - eb860c0
|
10 | - fix: check prototype property access in strict-mode (#1736) - b6d3de7
|
11 | - fix: escape property names in compat mode (#1736) - f058970
|
12 | - refactor: In spec tests, use expectTemplate over equals and shouldThrow (#1683) - 77825f8
|
13 | - chore: start testing on Node.js 12 and 13 - 3789a30
|
14 |
|
15 | (POSSIBLY) BREAKING CHANGES:
|
16 |
|
17 | - the changes from version [4.6.0](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md#v460---january-8th-2020) now also apply
|
18 | in when using the compile-option "strict: true". Access to prototype properties is forbidden completely by default, specific properties or methods
|
19 | can be allowed via runtime-options. See #1633 for details. If you are using Handlebars as documented, you should not be accessing prototype properties
|
20 | from your template anyway, so the changes should not be a problem for you. Only the use of undocumented features can break your build.
|
21 |
|
22 | That is why we only bump the patch version despite mentioning breaking changes.
|
23 |
|
24 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.6...v4.7.7)
|
25 |
|
26 | ## v4.7.6 - April 3rd, 2020
|
27 |
|
28 | Chore/Housekeeping:
|
29 |
|
30 | - [#1672](https://github.com/wycats/handlebars.js/issues/1672) - Switch cmd parser to latest minimist ([@dougwilson](https://api.github.com/users/dougwilson)
|
31 |
|
32 | Compatibility notes:
|
33 |
|
34 | - Restored Node.js compatibility
|
35 |
|
36 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.5...v4.7.6)
|
37 |
|
38 | ## v4.7.5 - April 2nd, 2020
|
39 |
|
40 | Chore/Housekeeping:
|
41 |
|
42 | - ~Node.js version support has been changed to v6+~ Reverted in 4.7.6
|
43 |
|
44 | Compatibility notes:
|
45 |
|
46 | - ~Node.js < v6 is no longer supported~ Reverted in 4.7.6
|
47 |
|
48 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.4...v4.7.5)
|
49 |
|
50 | ## v4.7.4 - April 1st, 2020
|
51 |
|
52 | Chore/Housekeeping:
|
53 |
|
54 | - [#1666](https://github.com/wycats/handlebars.js/issues/1666) - Replaced minimist with yargs for handlebars CLI ([@aorinevo](https://api.github.com/users/aorinevo), [@AviVahl](https://api.github.com/users/AviVahl) & [@fabb](https://api.github.com/users/fabb))
|
55 |
|
56 | Compatibility notes:
|
57 |
|
58 | - No incompatibilities are to be expected
|
59 |
|
60 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.3...v4.7.4)
|
61 |
|
62 | ## v4.7.3 - February 5th, 2020
|
63 |
|
64 | Chore/Housekeeping:
|
65 |
|
66 | - [#1644](https://github.com/wycats/handlebars.js/issues/1644) - Download links to aws broken on handlebarsjs.com - access denied ([@Tea56](https://api.github.com/users/Tea56))
|
67 | - Fix spelling and punctuation in changelog - d78cc73
|
68 |
|
69 | Bugfixes:
|
70 |
|
71 | - Add Type Definition for Handlebars.VERSION, Fixes #1647 - 4de51fe
|
72 | - Include Type Definition for runtime.js in Package - a32d05f
|
73 |
|
74 | Compatibility notes:
|
75 |
|
76 | - No incompatibilities are to be expected
|
77 |
|
78 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.2...v4.7.3)
|
79 |
|
80 | ## v4.7.2 - January 13th, 2020
|
81 |
|
82 | Bugfixes:
|
83 |
|
84 | - fix: don't wrap helpers that are not functions - 9d5aa36, #1639
|
85 |
|
86 | Chore/Build:
|
87 |
|
88 | - chore: execute saucelabs-task only if access-key exists - a4fd391
|
89 |
|
90 | Compatibility notes:
|
91 |
|
92 | - No breaking changes are to be expected
|
93 |
|
94 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.1...v4.7.2)
|
95 |
|
96 | ## v4.7.1 - January 12th, 2020
|
97 |
|
98 | Bugfixes:
|
99 |
|
100 | - fix: fix log output in case of illegal property access - f152dfc
|
101 | - fix: log error for illegal property access only once per property - 3c1e252
|
102 |
|
103 | Compatibility notes:
|
104 |
|
105 | - no incompatibilities are to be expected.
|
106 |
|
107 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.0...v4.7.1)
|
108 |
|
109 | ## v4.7.0 - January 10th, 2020
|
110 |
|
111 | Features:
|
112 |
|
113 | - feat: default options for controlling proto access - 7af1c12, #1635
|
114 | - This makes it possible to disable the prototype access restrictions added in 4.6.0
|
115 | - an error is logged in the console, if access to prototype properties is attempted and denied
|
116 | and no explicit configuration has taken place.
|
117 |
|
118 | Compatibility notes:
|
119 |
|
120 | - no compatibilities are expected
|
121 |
|
122 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.6.0...v4.7.0)
|
123 |
|
124 | ## v4.6.0 - January 8th, 2020
|
125 |
|
126 | Features:
|
127 |
|
128 | - feat: access control to prototype properties via whitelist (#1633)- d03b6ec
|
129 |
|
130 | Bugfixes:
|
131 |
|
132 | - fix(runtime.js): partials compile not caching (#1600) - 23d58e7
|
133 |
|
134 | Chores, docs:
|
135 |
|
136 | - various refactorings and improvements to tests - d7f0dcf, 187d611, d337f40
|
137 | - modernize the build-setup
|
138 | - use prettier to format and eslint to verify - c40d9f3, 8901c28, e97685e, 1f61f21
|
139 | - use nyc instead of istanbul to collect coverage - 164b7ff, 1ebce2b
|
140 | - update build code to use modern javascript and make it cleaner - 14b621c, 1ec1737, 3a5b65e, dde108e, 04b1984, 587e7a3
|
141 | - restructur build commands - e913dc5,
|
142 | - eslint rule changes - ac4655e, dc54952
|
143 | - Update (C) year in the LICENSE file - d1fb07b
|
144 | - chore: try to fix saucelabs credentials (#1627) -
|
145 | - Update readme.md with updated links (#1620) - edcc84f
|
146 |
|
147 | BREAKING CHANGES:
|
148 |
|
149 | - access to prototype properties is forbidden completely by default,
|
150 | specific properties or methods can be allowed via runtime-options.
|
151 | See #1633 for details.
|
152 | If you are using Handlebars as documented, you should not be accessing prototype
|
153 | properties from your template anyway, so the changes should not be a problem
|
154 | for you. Only the use of undocumented features can break your build.
|
155 |
|
156 | That is why we only bump the minor version despite mentioning breaking changes.
|
157 |
|
158 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.5.3...v4.6.0)
|
159 |
|
160 | ## v4.5.3 - November 18th, 2019
|
161 |
|
162 | Bugfixes:
|
163 |
|
164 | - fix: add "no-prototype-builtins" eslint-rule and fix all occurences - f7f05d7
|
165 | - fix: add more properties required to be enumerable - 1988878
|
166 |
|
167 | Chores / Build:
|
168 |
|
169 | - fix: use !== 0 instead of != 0 - c02b05f
|
170 | - add chai and dirty-chai and sinon, for cleaner test-assertions and spies,
|
171 | deprecate old assertion-methods - 93e284e, 886ba86, 0817dad, 93516a0
|
172 |
|
173 | Security:
|
174 |
|
175 | - The properties `__proto__`, `__defineGetter__`, `__defineSetter__` and `__lookupGetter__`
|
176 | have been added to the list of "properties that must be enumerable".
|
177 | If a property by that name is found and not enumerable on its parent,
|
178 | it will silently evaluate to `undefined`. This is done in both the compiled template and the "lookup"-helper.
|
179 | This will prevent new Remote-Code-Execution exploits that have been
|
180 | published recently.
|
181 |
|
182 | Compatibility notes:
|
183 |
|
184 | - Due to the security-fixes. The semantics of the templates using
|
185 | `__proto__`, `__defineGetter__`, `__defineSetter__` and `__lookupGetter__` in the respect that those expression now return
|
186 | `undefined` rather than their actual value from the proto.
|
187 | - The semantics have not changed in cases where the properties are enumerable, as in:
|
188 |
|
189 | ```js
|
190 | {
|
191 | __proto__: 'some string';
|
192 | }
|
193 | ```
|
194 |
|
195 | - The change may be breaking in that respect, but we still only
|
196 | increase the patch-version, because the incompatible use-cases
|
197 | are not intended, undocumented and far less important than fixing
|
198 | Remote-Code-Execution exploits on existing systems.
|
199 |
|
200 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.5.2...v4.5.3)
|
201 |
|
202 | ## v4.5.2 - November 13th, 2019
|
203 |
|
204 | # Bugfixes
|
205 |
|
206 | - fix: use String(field) in lookup when checking for "constructor" - d541378
|
207 | - test: add fluent API for testing Handlebars - c2ac79c
|
208 |
|
209 | Compatibility notes:
|
210 |
|
211 | - no incompatibility are to be expected
|
212 |
|
213 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.5.1...v4.5.2)
|
214 |
|
215 | ## v4.5.1 - October 29th, 2019
|
216 |
|
217 | Bugfixs
|
218 |
|
219 | - fix: move "eslint-plugin-compat" to devDependencies - 5e9d17f (#1589)
|
220 |
|
221 | Compatibility notes:
|
222 |
|
223 | - No compatibility issues are to be expected
|
224 |
|
225 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.5.0...v4.5.1)
|
226 |
|
227 | ## v4.5.0 - October 28th, 2019
|
228 |
|
229 | Features / Improvements
|
230 |
|
231 | - Add method Handlebars.parseWithoutProcessing (#1584) - 62ed3c2
|
232 | - add guard to if & unless helpers (#1549)
|
233 | - show source location for the strict lookup exceptions - feb60f8
|
234 |
|
235 | Bugfixes:
|
236 |
|
237 | - Use objects for hash value tracking - 7fcf9d2
|
238 |
|
239 | Chore:
|
240 |
|
241 | - Resolve deprecation warning message from eslint while running eslint (#1586) - 7052e88
|
242 | - chore: add eslint-plugin-compat and eslint-plugin-es5 - 088e618
|
243 |
|
244 | Compatibility notes:
|
245 |
|
246 | - No compatibility issues are to be expected
|
247 |
|
248 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.5...v4.5.0)
|
249 |
|
250 | ## v4.4.5 - October 20th, 2019
|
251 |
|
252 | Bugfixes:
|
253 |
|
254 | - Contents of raw-blocks must be matched with non-eager regex-matching - 8d5530e, #1579
|
255 |
|
256 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.4...v4.4.5)
|
257 |
|
258 | ## v4.4.4 - October 20th, 2019
|
259 |
|
260 | Bugfixes:
|
261 |
|
262 | - fix: prevent zero length tokens in raw-blocks (#1577, #1578) - f1752fe
|
263 |
|
264 | Chore:
|
265 |
|
266 | - chore: link to s3 bucket with https, add "npm ci" to build instructions - 0b593bf
|
267 |
|
268 | Compatibility notes:
|
269 |
|
270 | - no compatibility issues are expected
|
271 |
|
272 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.3...v4.4.4)
|
273 |
|
274 | ## v4.4.3 - October 8th, 2019
|
275 |
|
276 | Bugfixes
|
277 |
|
278 | Typings:
|
279 |
|
280 | - add missing type fields to AST typings and add tests for them - 0440af2
|
281 |
|
282 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.2...v4.4.3)
|
283 |
|
284 | ## v4.4.2 - October 2nd, 2019
|
285 |
|
286 | - chore: fix grunt-saucelabs dependency - b7eada0
|
287 |
|
288 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.1...v4.4.2)
|
289 |
|
290 | ## v4.4.1 - October 2nd, 2019
|
291 |
|
292 | - [#1562](https://github.com/wycats/handlebars.js/issues/1562) - Error message for syntax error missing location in 4.2.1+
|
293 |
|
294 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.0...v4.4.1)
|
295 |
|
296 | ## v4.4.0 - September 29th, 2019
|
297 |
|
298 | - Added support for iterable objects in {{#each}} helper (#1557) - cf7545e
|
299 |
|
300 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.3.4...v4.4.0)
|
301 |
|
302 | ## v4.3.4 - September 28th, 2019
|
303 |
|
304 | - fix: harden "propertyIsEnumerable"-check - ff4d827
|
305 |
|
306 | Compatibility notes:
|
307 |
|
308 | - No incompatibilities are known.
|
309 |
|
310 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.3.3...v4.3.4)
|
311 |
|
312 | ## v4.3.3 - September 27th, 2019
|
313 |
|
314 | - fix test case for browsers that do not support **defineGetter** - 8742bde
|
315 |
|
316 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.3.2...v4.3.3)
|
317 |
|
318 | ## v4.3.2 - September 26th, 2019
|
319 |
|
320 | - Use Object.prototype.propertyIsEnumerable to check for constructors - 213c0bb, #1563
|
321 |
|
322 | Compatibility notes:
|
323 |
|
324 | - There are no breaking changes
|
325 |
|
326 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.3.1...v4.3.2)
|
327 |
|
328 | ## v4.3.1 - September 25th, 2019
|
329 |
|
330 | Fixes:
|
331 |
|
332 | - do not break on precompiled templates from Handlebars >=4.0.0 <4.3.0 - 1266838, #1561
|
333 | - Ensure allowCallsToHelperMissing runtime option is optional in typings - 93444c5, 64ecb9e, #1560
|
334 |
|
335 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.3.0...v4.3.1)
|
336 |
|
337 | ## v4.3.0 - September 24th, 2019
|
338 |
|
339 | Fixes:
|
340 |
|
341 | - Security: Disallow calling "helperMissing" and "blockHelperMissing" directly - 2078c72
|
342 | - Disallow calling "helperMissing" and "blockHelperMissing" directly - 2078c72
|
343 |
|
344 | Features:
|
345 |
|
346 | - Add new runtime option `allowCallsToHelperMissing` to allow calling `blockHelperMissing` and `helperMissing`.
|
347 |
|
348 | Breaking changes:
|
349 |
|
350 | Compatibility notes:
|
351 |
|
352 | - Compiler revision increased - 06b7224
|
353 |
|
354 | - This means that template compiled with versions prior to 4.3.0 will not work with runtimes >= 4.3.0
|
355 | The increase was done because the "helperMissing" and "blockHelperMissing" are now moved from the helpers
|
356 | to the internal "container.hooks" object, so old templates will not be able to call them anymore. We suggest
|
357 | that you always recompile your templates with the latest compiler in your build pipelines.
|
358 |
|
359 | - Disallow calling "helperMissing" and "blockHelperMissing" directly - 2078c72
|
360 | - Calling "helperMissing" and "blockHelperMissing" directly from a template (like in `{{blockHelperMissing}}` was
|
361 | never intended and was part of the exploits that have been revealed early in 2019
|
362 | (see https://github.com/wycats/handlebars.js/issues/1495). _It is also part of a new exploit that
|
363 | is not captured by the earlier fix._ In order to harden Handlebars against such exploits, calling thos helpers
|
364 | is now not possible anymore. _Overriding_ those helpers is still possible.
|
365 | - If you really need this behavior, you can set the runtime option `allowCallsToHelperMissing` to `true` and the
|
366 | calls will again be possible
|
367 |
|
368 | Both bullet points imly that Handlebars is not 100% percent compatible to 4.2.0, despite the minor version bump.
|
369 |
|
370 | We consider it more important to resolve a major security issue than to maintain 100% compatibility.
|
371 |
|
372 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.2.1...v4.3.0)
|
373 |
|
374 | ## v4.2.1 - September 20th, 2019
|
375 |
|
376 | Bugfixes:
|
377 |
|
378 | - The "browser" property in the package.json has been updated to use the common-js builds instead of the minified UMD - c55a7be, #1553
|
379 |
|
380 | Compatibility notes:
|
381 |
|
382 | - No compatibility issues should arise
|
383 |
|
384 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.2.0...v4.2.1)
|
385 |
|
386 | ## v4.2.0 - September 3rd, 2019
|
387 |
|
388 | Chore/Test:
|
389 |
|
390 | - Use custom `grunt-saucelab` with current sauce-connect proxy - f119497
|
391 | - Add framework for various integration tests - f9cce4d
|
392 | - Add integration test for webpack - a57b682
|
393 |
|
394 | Bugfixes:
|
395 |
|
396 | - [#1544](https://github.com/wycats/handlebars.js/issues/1544) - Typescript types: `knownHelpers` doesnt allow for custom helpers ([@NickCis](https://api.github.com/users/NickCis))
|
397 | - [#1534](https://github.com/wycats/handlebars.js/pull/1534) - Add typings for "Handlebars.VM.resolvePartial ([@AndrewLeedham](https://api.github.com/users/AndrewLeedham))
|
398 |
|
399 | Features:
|
400 |
|
401 | - [#1540](https://github.com/wycats/handlebars.js/pull/1540) - added "browser"-property to package.json, resolves #1102 ([@ouijan](https://api.github.com/users/ouijan))
|
402 |
|
403 | Compatibility notes:
|
404 |
|
405 | - The new "browser"-property should not break anything, but you can never be sure. The integration test for webpack
|
406 | shows that it works, but if it doesn't please open an issue.
|
407 |
|
408 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.2-0...v4.2.0)
|
409 |
|
410 | ## v4.1.2-0 - August 25th, 2019
|
411 |
|
412 | [#1540](https://github.com/wycats/handlebars.js/pull/1540) - added browser to package.json, resolves #1102 ([@ouijan](https://api.github.com/users/ouijan))
|
413 |
|
414 | Compatibility notes:
|
415 |
|
416 | - We are not sure if imports via webpack are still working, which is why this release is a pre-release
|
417 |
|
418 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.2...v4.1.2-0)
|
419 |
|
420 | ## v4.1.2 - April 13th, 2019
|
421 |
|
422 | Chore/Test:
|
423 |
|
424 | - [#1515](https://github.com/wycats/handlebars.js/pull/1515) - Port over linting and test for typings ([@zimmi88](https://api.github.com/users/zimmi88))
|
425 | - chore: add missing typescript dependency, add package-lock.json - 594f1e3
|
426 | - test: remove safari from saucelabs - 871accc
|
427 |
|
428 | Bugfixes:
|
429 |
|
430 | - fix: prevent RCE through the "lookup"-helper - cd38583
|
431 |
|
432 | Compatibility notes:
|
433 |
|
434 | Access to the constructor of a class thought `{{lookup obj "constructor" }}` is now prohibited. This closes
|
435 | a leak that only half closed in versions 4.0.13 and 4.1.0, but it is a slight incompatibility.
|
436 |
|
437 | This kind of access is not the intended use of Handlebars and leads to the vulnerability described
|
438 | in #1495. We will **not** increase the major version, because such use is not intended or documented,
|
439 | and because of the potential impact of the issue (we fear that most people won't use a new major version
|
440 | and the issue may not be resolved on many systems).
|
441 |
|
442 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.1...v4.1.2)
|
443 |
|
444 | ## v4.1.1 - March 16th, 2019
|
445 |
|
446 | Bugfixes:
|
447 |
|
448 | - fix: add "runtime.d.ts" to allow "require('handlebars/runtime')" in TypeScript - 5cedd62
|
449 |
|
450 | Refactorings:
|
451 |
|
452 | - replace "async" with "neo-async" - 048f2ce
|
453 | - use "substring"-function instead of "substr" - 445ae12
|
454 |
|
455 | Compatibility notes:
|
456 |
|
457 | - This is a bugfix release. There are no breaking change and no new features.
|
458 |
|
459 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.0...v4.1.1)
|
460 |
|
461 | ## v4.1.0 - February 7th, 2019
|
462 |
|
463 | New Features
|
464 |
|
465 | - import TypeScript typings - 27ac1ee
|
466 |
|
467 | Security fixes:
|
468 |
|
469 | - disallow access to the constructor in templates to prevent RCE - 42841c4, #1495
|
470 |
|
471 | Housekeeping
|
472 |
|
473 | - chore: fix components/handlebars package.json and auto-update on release - bacd473
|
474 | - chore: Use node 10 to build handlebars - 78dd89c
|
475 | - chore/doc: Add more release docs - 6b87c21
|
476 |
|
477 | Compatibility notes:
|
478 |
|
479 | Access to class constructors (i.e. `({}).constructor`) is now prohibited to prevent
|
480 | Remote Code Execution. This means that following construct will no work anymore:
|
481 |
|
482 | ```
|
483 | class SomeClass {
|
484 | }
|
485 |
|
486 | SomeClass.staticProperty = 'static'
|
487 |
|
488 | var template = Handlebars.compile('{{constructor.staticProperty}}');
|
489 | document.getElementById('output').innerHTML = template(new SomeClass());
|
490 | // expected: 'static', but now this is empty.
|
491 | ```
|
492 |
|
493 | This kind of access is not the intended use of Handlebars and leads to the vulnerability described in #1495. We will **not** increase the major version, because such use is not intended or documented, and because of the potential impact of the issue (we fear that most people won't use a new major version and the issue may not be resolved on many systems).
|
494 |
|
495 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.12...v4.1.0)
|
496 |
|
497 | ## v4.0.12 - September 4th, 2018
|
498 |
|
499 | New features:
|
500 |
|
501 | - none
|
502 |
|
503 | Various dependency updates
|
504 |
|
505 | - [#1464](https://github.com/wycats/handlebars.js/pull/1464) - Bump versions of grunt-plugins to 1.x
|
506 | - [#1398](https://github.com/wycats/handlebars.js/pull/1398) - Chore: updated various dev dependencies
|
507 | - upgrade uglify-js - d3d3942
|
508 | - Update grunt-eslint to 20.1.0 - 7729aa9
|
509 | - Update dependencies "async" to 2.5.0 and "source-map" to 0.6.1 (73d5637)
|
510 |
|
511 | Bugfixes:
|
512 |
|
513 | - [components/handlebars.js#24](https://github.com/components/handlebars.js#24) Add package.json to components shim
|
514 | - Updated `source-map`-package should work better with `rollup`[#1463](https://github.com/wycats/handlebars.js/issues/1463)
|
515 |
|
516 | Removed obsolete code:
|
517 |
|
518 | - unnecessary check - 0ddff8b
|
519 | - Use `files` field - 69c6ca5
|
520 | - Update jsfiddle to 4.0.11 - 8947dd0
|
521 |
|
522 | Compatibility notes:
|
523 |
|
524 | - No compatibility issues are to be expected
|
525 |
|
526 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.11...v4.0.12)
|
527 |
|
528 | ## v4.0.11 - October 17th, 2017
|
529 |
|
530 | - [#1391](https://github.com/wycats/handlebars.js/issues/1391) - `uglify-js` is unconditionally imported, but only listed as optional dependency ([@Turbo87](https://github.com/Turbo87))
|
531 | - [#1233](https://github.com/wycats/handlebars.js/issues/1233) - Unable to build under windows - error at test:bin task ([@blikblum](https://github.com/blikblum))
|
532 | - Update (C) year in the LICENSE file - 21386b6
|
533 |
|
534 | Compatibility notes:
|
535 |
|
536 | - This is a bugfix release. There are no breaking change and no new features.
|
537 |
|
538 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.10...v4.0.11)
|
539 |
|
540 | ## v4.0.10 - May 21st, 2017
|
541 |
|
542 | - Fix regression in 4.0.9: Replace "Object.assign" (not support in IE) by "util/extend" - 0e953d1
|
543 |
|
544 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.9...v4.0.10)
|
545 |
|
546 | ## v4.0.9 - May 21st, 2017
|
547 |
|
548 | - [#1327](https://github.com/wycats/handlebars.js/issues/1327) Handlebars.compile() does not modify "options" anymore
|
549 | - pending [#1331](https://github.com/wycats/handlebars.js/issues/1331) Attempts to build Handlebars in a Windows environment
|
550 | - Fix build in windows - cc554a5
|
551 | - Ensure LF line-edings in handlebars-template fixtures (\*.hbs) - ed879a6
|
552 | - Run integration test with `node handlebars -a ...` on Windows - 2e21e2b
|
553 | - Ensure LF line-edings in lexer-files (\*.l) - bdfdbea
|
554 | - Force LF line-endings for spec/artifacts - b50ef03
|
555 | - Use istanbul/lib/cli.js instead of node_modules/.bin/istanbul - 6e6269f
|
556 | - TravisCI: Publish valid semver tags independently of the branch - 7378f85
|
557 |
|
558 | Compatibility notes:
|
559 |
|
560 | - No compatibility issues are expected.
|
561 |
|
562 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.8...v4.0.9)
|
563 |
|
564 | ## v4.0.8 - May 2nd, 2017
|
565 |
|
566 | - [#1341](https://github.com/wycats/handlebars.js/issues/1341) [#1342](https://github.com/wycats/handlebars.js/issues/1342) Allow partial-blocks to be executed without "options" ([@nknapp](https://github.com/nknapp)) - a00c598
|
567 |
|
568 | Compatibility notes:
|
569 |
|
570 | - No breaking changes
|
571 |
|
572 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.7...v4.0.8)
|
573 |
|
574 | ## v4.0.7 - April 29th, 2017
|
575 |
|
576 | - [#1319](https://github.com/wycats/handlebars.js/issues/1319): Fix context-stack when calling block-helpers on null values ([@nknapp](https://github.com/nknapp)) - c8f4b57
|
577 | - [#1315](https://github.com/wycats/handlebars.js/pull/1315) Parser: Change suffix to use ES6 default module export ([@Turbo87](https://github.com/Turbo87))- b617375
|
578 | - [#1290](https://github.com/wycats/handlebars.js/pull/1290) [#1252](https://github.com/wycats/handlebars.js/issue/1290) Add more tests for partial-blocks and inline partials ([@nknapp](https://github.com/nknapp)) - 63a8e0c
|
579 | - [#1252](https://github.com/wycats/handlebars.js/issue/1290) Using @partial-block twice in a template not possible ([@nknapp](https://github.com/nknapp)) - 5a164d0
|
580 | - [#1310](https://github.com/wycats/handlebars.js/pull/1310) Avoid duplicate "sourceMappingURL=" lines. ([@joonas-lahtinen](https://github.com/joonas-lahtinen)) - 01b0f65
|
581 | - [#1275](https://github.com/wycats/handlebars.js/pull/1275) require('sys') is deprecated, using 'util' instead ([@travnels](https://github.com/travnels)) - 406f2ee
|
582 | - [#1285](https://github.com/wycats/handlebars.js/pull/1285) [#1284](https://github.com/wycats/handlebars.js/issues/1284) Make "column"-property of Errors enumerable ([@nknapp](https://github.com/nknapp)) - a023cb4
|
583 | - [#1285](https://github.com/wycats/handlebars.js/pull/1285) Testcase to verify that compile-errors have a column-property ([@nknapp](https://github.com/nknapp)) - c7dc353
|
584 |
|
585 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.6...v4.0.7)
|
586 |
|
587 | ## v4.0.6 - November 12th, 2016
|
588 |
|
589 | - [#1243](https://github.com/wycats/handlebars.js/pull/1243) - Walk up data frames for nested @partial-block ([@lawnsea](https://github.com/lawnsea))
|
590 | - [#1210](https://github.com/wycats/handlebars.js/pull/1210) - Add a new lightweight package based on handlebars in the README ([@kabirbaidhya](https://github.com/kabirbaidhya))
|
591 | - [#1187](https://github.com/wycats/handlebars.js/pull/1187) - Ensure that existing blockParams and depths are respected on dupe programs ([@charleso](https://github.com/charleso))
|
592 | - [#1191](https://github.com/wycats/handlebars.js/pull/1191) - Added cory ([@leo](https://github.com/leo))
|
593 | - [#1177](https://github.com/wycats/handlebars.js/pull/1177) - Preserve License info in Closure Compiler ([@gennadiylitvinyuk](https://github.com/gennadiylitvinyuk))
|
594 | - [#1171](https://github.com/wycats/handlebars.js/pull/1171) - Contributing doc fix: failing thats -> failing tests ([@paulfalgout](https://github.com/paulfalgout))
|
595 | - [#1166](https://github.com/wycats/handlebars.js/pull/1166) - Update license date ([@timwangdev](https://github.com/timwangdev))
|
596 | - Update jsfiddle to point to latest - 959ee55 (originally dfc7554 by [@kpdecker](https://github.com/kpdecker))
|
597 | - [#1163](https://github.com/wycats/handlebars.js/pull/1163) - Fix typos on decorators-api.md. ([@adjohnson916](https://github.com/adjohnson916))
|
598 | - Drop extra Error params - 8c19874 (originally 63fdb92 by [@kpdecker](https://github.com/kpdecker))
|
599 | - [#1153](https://github.com/wycats/handlebars.js/pull/1153) - Add documentation for running tests to contributing.md ([@ryanmurakami](https://github.com/ryanmurakami))
|
600 | - Avoid error in older browsers in test - 400916c (originally a6121ca by [@kpdecker](https://github.com/kpdecker))
|
601 | - Update target browser test versions - fee2334 (originally 871c32a by [@kpdecker](https://github.com/kpdecker))
|
602 | - Exclude coverage check in exception conditional - 32d6363 (originally 326734b by [@kpdecker](https://github.com/kpdecker))
|
603 | - Fix throw when creating exception object in Safari - 20c965c (originally 2ea6119 by [@kpdecker](https://github.com/kpdecker))
|
604 | - Update build for modern node versions - 6c9f98c (originally 8289c0b by [@kpdecker](https://github.com/kpdecker))
|
605 | - [#1135](https://github.com/wycats/handlebars.js/issues/1135) - Relax depth check for context push - c393c81 (originally 25458fd by [@kpdecker](https://github.com/kpdecker))
|
606 |
|
607 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.5...v4.0.6)
|
608 |
|
609 | ## v4.0.5 - November 19th, 2015
|
610 |
|
611 | - [#1132](https://github.com/wycats/handlebars.js/pull/1132) - Update uglify-js to avoid vulnerability ([@plynchnlm](https://github.com/plynchnlm))
|
612 | - [#1129](https://github.com/wycats/handlebars.js/issues/1129) - Minified lib returns an empty string ([@bricss](https://github.com/bricss))
|
613 | - Return current handlebars instance from noConflict - 685cf92
|
614 | - Add webpack to dev dependency to support npm 3 - 7a6c228
|
615 | - Further relax uglify dependency - 0a3b3c2
|
616 | - Include tests for minimized artifacts - c21118d
|
617 | - Fix lint errors under latest eslint - 9f59de9
|
618 | - Add print-script helper script - 98a6717
|
619 |
|
620 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.4...v4.0.5)
|
621 |
|
622 | ## v4.0.4 - October 29th, 2015
|
623 |
|
624 | - [#1121](https://github.com/wycats/handlebars.js/pull/1121) - Include partial name in 'undefined partial' exception message ([@shinypb](https://github.com/shinypb))
|
625 | - [#1125](https://github.com/wycats/handlebars.js/pull/1125) - Add promised-handlebars to "in-the-wild"-list ([@nknapp](https://github.com/nknapp))
|
626 |
|
627 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.3...v4.0.4)
|
628 |
|
629 | ## v4.0.3 - September 23rd, 2015
|
630 |
|
631 | - [#1099](https://github.com/wycats/handlebars.js/issues/1099) - @partial-block is overridden ([@btmorex](https://github.com/btmorex))
|
632 | - [#1093](https://github.com/wycats/handlebars.js/issues/1093) - #each skips iteration on undefined values ([@florianpilz](https://github.com/florianpilz))
|
633 | - [#1092](https://github.com/wycats/handlebars.js/issues/1092) - Square braces in key name ([@distantnative](https://github.com/distantnative))
|
634 | - [#1091](https://github.com/wycats/handlebars.js/pull/1091) - fix typo in release notes ([@nikolas](https://github.com/nikolas))
|
635 | - [#1090](https://github.com/wycats/handlebars.js/pull/1090) - grammar fixes in 4.0.0 release notes ([@nikolas](https://github.com/nikolas))
|
636 |
|
637 | Compatibility notes:
|
638 |
|
639 | - `each` iteration with `undefined` values has been restored to the 3.0 behaviors. Helper calls with undefined context values will now execute against an arbitrary empty object to avoid executing against global object in non-strict mode.
|
640 | - `]` can now be included in `[]` wrapped identifiers by escaping with `\`. Any `[]` identifiers that include `\` will now have to properly escape these values.
|
641 |
|
642 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.2...v4.0.3)
|
643 |
|
644 | ## v4.0.2 - September 4th, 2015
|
645 |
|
646 | - [#1089](https://github.com/wycats/handlebars.js/issues/1089) - "Failover content" not working in multiple levels of inline partials ([@michaellopez](https://github.com/michaellopez))
|
647 |
|
648 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.1...v4.0.2)
|
649 |
|
650 | ## v4.0.1 - September 2nd, 2015
|
651 |
|
652 | - Fix failure when using decorators in partials - 05b82a2
|
653 |
|
654 | [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.0...v4.0.1)
|
655 |
|
656 | ## v4.0.0 - September 1st, 2015
|
657 |
|
658 | - [#1082](https://github.com/wycats/handlebars.js/pull/1082) - Decorators and Inline Partials ([@kpdecker](https://github.com/kpdecker))
|
659 | - [#1076](https://github.com/wycats/handlebars.js/pull/1076) - Implement partial blocks ([@kpdecker](https://github.com/kpdecker))
|
660 | - [#1087](https://github.com/wycats/handlebars.js/pull/1087) - Fix #each when last object entry has empty key ([@denniskuczynski](https://github.com/denniskuczynski))
|
661 | - [#1084](https://github.com/wycats/handlebars.js/pull/1084) - Bump uglify version to fix vulnerability ([@John-Steidley](https://github.com/John-Steidley))
|
662 | - [#1068](https://github.com/wycats/handlebars.js/pull/1068) - Fix typo ([@0xack13](https://github.com/0xack13))
|
663 | - [#1060](https://github.com/wycats/handlebars.js/pull/1060) - #1056 Fixed grammar for nested raw blocks ([@ericbn](https://github.com/ericbn))
|
664 | - [#1052](https://github.com/wycats/handlebars.js/pull/1052) - Updated year in License ([@maqnouch](https://github.com/maqnouch))
|
665 | - [#1037](https://github.com/wycats/handlebars.js/pull/1037) - Fix minor typos in README ([@tomxtobin](https://github.com/tomxtobin))
|
666 | - [#1032](https://github.com/wycats/handlebars.js/issues/1032) - Is it possible to render a partial without the parent scope? ([@aputinski](https://github.com/aputinski))
|
667 | - [#1019](https://github.com/wycats/handlebars.js/pull/1019) - Fixes typo in tests ([@aymerick](https://github.com/aymerick))
|
668 | - [#1016](https://github.com/wycats/handlebars.js/issues/1016) - Version mis-match ([@mayankdedhia](https://github.com/mayankdedhia))
|
669 | - [#1023](https://github.com/wycats/handlebars.js/issues/1023) - is it possible for nested custom helpers to communicate between each other?
|
670 | - [#893](https://github.com/wycats/handlebars.js/issues/893) - [Proposal] Section blocks.
|
671 | - [#792](https://github.com/wycats/handlebars.js/issues/792) - feature request: inline partial definitions
|
672 | - [#583](https://github.com/wycats/handlebars.js/issues/583) - Parent path continues to drill down depth with multiple conditionals
|
673 | - [#404](https://github.com/wycats/handlebars.js/issues/404) - Add named child helpers that can be referenced by block helpers
|
674 | - Escape = in HTML content - [83b8e84](https://github.com/wycats/handlebars.js/commit/83b8e84)
|
675 | - Drop AST constructors in favor of JSON - [95d84ba](https://github.com/wycats/handlebars.js/commit/95d84ba)
|
676 | - Pass container rather than exec as context - [9a2d1d6](https://github.com/wycats/handlebars.js/commit/9a2d1d6)
|
677 | - Add ignoreStandalone compiler option - [ea3a5a1](https://github.com/wycats/handlebars.js/commit/ea3a5a1)
|
678 | - Ignore empty when iterating on sparse arrays - [06d515a](https://github.com/wycats/handlebars.js/commit/06d515a)
|
679 | - Add support for string and stdin precompilation - [0de8dac](https://github.com/wycats/handlebars.js/commit/0de8dac)
|
680 | - Simplify object assignment generation logic - [77e6bfc](https://github.com/wycats/handlebars.js/commit/77e6bfc)
|
681 | - Bulletproof AST.helpers.helperExpression - [93b0760](https://github.com/wycats/handlebars.js/commit/93b0760)
|
682 | - Always return string responses - [8e868ab](https://github.com/wycats/handlebars.js/commit/8e868ab)
|
683 | - Pass undefined fields to helpers in strict mode - [5d4b8da](https://github.com/wycats/handlebars.js/commit/5d4b8da)
|
684 | - Avoid depth creation when context remains the same - [279e038](https://github.com/wycats/handlebars.js/commit/279e038)
|
685 | - Improve logging API - [9a49d35](https://github.com/wycats/handlebars.js/commit/9a49d35)
|
686 | - Fix with operator in no @data mode - [231a8d7](https://github.com/wycats/handlebars.js/commit/231a8d7)
|
687 | - Allow empty key name in each iteration - [1bb640b](https://github.com/wycats/handlebars.js/commit/1bb640b)
|
688 | - Add with block parameter support - [2a85106](https://github.com/wycats/handlebars.js/commit/2a85106)
|
689 | - Fix escaping of non-javascript identifiers - [410141c](https://github.com/wycats/handlebars.js/commit/410141c)
|
690 | - Fix location information for programs - [93faffa](https://github.com/wycats/handlebars.js/commit/93faffa)
|
691 |
|
692 | Compatibility notes:
|
693 |
|
694 | - Depthed paths are now conditionally pushed on to the stack. If the helper uses the same context, then a new stack is not created. This leads to behavior that better matches expectations for helpers like `if` that do not seem to alter the context. Any instances of `../` in templates will need to be checked for the correct behavior under 4.0.0. In general templates will either reduce the number of `../` instances or leave them as is. See [#1028](https://github.com/wycats/handlebars.js/issues/1028).
|
695 | - The `=` character is now HTML escaped. This closes a potential exploit case when using unquoted attributes, i.e. `<div foo={{bar}}>`. In general it's recommended that attributes always be quoted when their values are generated from a mustache to avoid any potential exploit surfaces.
|
696 | - AST constructors have been dropped in favor of plain old javascript objects
|
697 | - The runtime version has been increased. Precompiled templates will need to use runtime of at least 4.0.0.
|
698 |
|
699 | [Commits](https://github.com/wycats/handlebars.js/compare/v3.0.3...v4.0.0)
|
700 |
|
701 | ## v3.0.3 - April 28th, 2015
|
702 |
|
703 | - [#1004](https://github.com/wycats/handlebars.js/issues/1004) - Latest version breaks with RequireJS (global is undefined) ([@boskee](https://github.com/boskee))
|
704 |
|
705 | [Commits](https://github.com/wycats/handlebars.js/compare/v3.0.2...v3.0.3)
|
706 |
|
707 | ## v3.0.2 - April 20th, 2015
|
708 |
|
709 | - [#998](https://github.com/wycats/handlebars.js/pull/998) - Add full support for es6 ([@kpdecker](https://github.com/kpdecker))
|
710 | - [#994](https://github.com/wycats/handlebars.js/issues/994) - Access Handlebars.Visitor in browser ([@tamlyn](https://github.com/tamlyn))
|
711 | - [#990](https://github.com/wycats/handlebars.js/issues/990) - Allow passing null/undefined literals subexpressions ([@blimmer](https://github.com/blimmer))
|
712 | - [#989](https://github.com/wycats/handlebars.js/issues/989) - Source-map error with requirejs ([@SteppeEagle](https://github.com/SteppeEagle))
|
713 | - [#967](https://github.com/wycats/handlebars.js/issues/967) - can't access "this" property ([@75lb](https://github.com/75lb))
|
714 | - Use captureStackTrace for error handler - a009a97
|
715 | - Ignore branches tested without coverage monitoring - 37a664b
|
716 |
|
717 | [Commits](https://github.com/wycats/handlebars.js/compare/v3.0.1...v3.0.2)
|
718 |
|
719 | ## v3.0.1 - March 24th, 2015
|
720 |
|
721 | - [#984](https://github.com/wycats/handlebars.js/pull/984) - Adding documentation for passing arguments into partials ([@johneke](https://github.com/johneke))
|
722 | - [#973](https://github.com/wycats/handlebars.js/issues/973) - version 3 is slower than version 2 ([@elover](https://github.com/elover))
|
723 | - [#966](https://github.com/wycats/handlebars.js/issues/966) - "handlebars --version" does not work with v3.0.0 ([@abloomston](https://github.com/abloomston))
|
724 | - [#964](https://github.com/wycats/handlebars.js/pull/964) - default is a reserved word ([@grassick](https://github.com/grassick))
|
725 | - [#962](https://github.com/wycats/handlebars.js/pull/962) - Add dashbars' link on README. ([@pismute](https://github.com/pismute))
|
726 |
|
727 | [Commits](https://github.com/wycats/handlebars.js/compare/v3.0.0...v3.0.1)
|
728 |
|
729 | ## v3.0.0 - February 10th, 2015
|
730 |
|
731 | - [#941](https://github.com/wycats/handlebars.js/pull/941) - Add support for dynamic partial names ([@kpdecker](https://github.com/kpdecker))
|
732 | - [#940](https://github.com/wycats/handlebars.js/pull/940) - Add missing reserved words so compiler knows to use array syntax: ([@mattflaschen](https://github.com/mattflaschen))
|
733 | - [#938](https://github.com/wycats/handlebars.js/pull/938) - Fix example using #with helper ([@diwo](https://github.com/diwo))
|
734 | - [#930](https://github.com/wycats/handlebars.js/pull/930) - Add parent tracking and mutation to AST visitors ([@kpdecker](https://github.com/kpdecker))
|
735 | - [#926](https://github.com/wycats/handlebars.js/issues/926) - Depthed lookups fail when program duplicator runs ([@kpdecker](https://github.com/kpdecker))
|
736 | - [#918](https://github.com/wycats/handlebars.js/pull/918) - Add instructions for 'spec/mustache' to CONTRIBUTING.md, fix a few typos ([@oneeman](https://github.com/oneeman))
|
737 | - [#915](https://github.com/wycats/handlebars.js/pull/915) - Ast update ([@kpdecker](https://github.com/kpdecker))
|
738 | - [#910](https://github.com/wycats/handlebars.js/issues/910) - Different behavior of {{@last}} when {{#each}} in {{#each}} ([@zordius](https://github.com/zordius))
|
739 | - [#907](https://github.com/wycats/handlebars.js/issues/907) - Implement named helper variable references ([@kpdecker](https://github.com/kpdecker))
|
740 | - [#906](https://github.com/wycats/handlebars.js/pull/906) - Add parser support for block params ([@mmun](https://github.com/mmun))
|
741 | - [#903](https://github.com/wycats/handlebars.js/issues/903) - Only provide aliases for multiple use calls ([@kpdecker](https://github.com/kpdecker))
|
742 | - [#902](https://github.com/wycats/handlebars.js/pull/902) - Generate Source Maps ([@kpdecker](https://github.com/kpdecker))
|
743 | - [#901](https://github.com/wycats/handlebars.js/issues/901) - Still escapes with noEscape enabled on isolated Handlebars environment ([@zedknight](https://github.com/zedknight))
|
744 | - [#896](https://github.com/wycats/handlebars.js/pull/896) - Simplify BlockNode by removing intermediate MustacheNode ([@mmun](https://github.com/mmun))
|
745 | - [#892](https://github.com/wycats/handlebars.js/pull/892) - Implement parser for else chaining of helpers ([@kpdecker](https://github.com/kpdecker))
|
746 | - [#889](https://github.com/wycats/handlebars.js/issues/889) - Consider extensible parser API ([@kpdecker](https://github.com/kpdecker))
|
747 | - [#887](https://github.com/wycats/handlebars.js/issues/887) - Handlebars.noConflict() option? ([@bradvogel](https://github.com/bradvogel))
|
748 | - [#886](https://github.com/wycats/handlebars.js/issues/886) - Add SafeString to context (or use duck-typing) ([@dominicbarnes](https://github.com/dominicbarnes))
|
749 | - [#870](https://github.com/wycats/handlebars.js/pull/870) - Registering undefined partial throws exception. ([@max-b](https://github.com/max-b))
|
750 | - [#866](https://github.com/wycats/handlebars.js/issues/866) - comments don't respect whitespace control ([@75lb](https://github.com/75lb))
|
751 | - [#863](https://github.com/wycats/handlebars.js/pull/863) - + jsDelivr CDN info ([@tomByrer](https://github.com/tomByrer))
|
752 | - [#858](https://github.com/wycats/handlebars.js/issues/858) - Disable new default auto-indent at included partials ([@majodev](https://github.com/majodev))
|
753 | - [#856](https://github.com/wycats/handlebars.js/pull/856) - jspm compatibility ([@MajorBreakfast](https://github.com/MajorBreakfast))
|
754 | - [#805](https://github.com/wycats/handlebars.js/issues/805) - Request: "strict" lookups ([@nzakas](https://github.com/nzakas))
|
755 |
|
756 | - Export the default object for handlebars/runtime - 5594416
|
757 | - Lookup partials when undefined - 617dd57
|
758 |
|
759 | Compatibility notes:
|
760 |
|
761 | - Runtime breaking changes. Must match 3.x runtime and precompiler.
|
762 | - The AST has been upgraded to a public API.
|
763 | - There are a number of changes to this, but the format is now documented in docs/compiler-api.md
|
764 | - The Visitor API has been expanded to support mutation and provide a base implementation
|
765 | - The `JavaScriptCompiler` APIs have been formalized and documented. As part of the sourcemap handling these should be updated to return arrays for concatenation.
|
766 | - `JavaScriptCompiler.namespace` has been removed as it was unused.
|
767 | - `SafeString` is now duck typed on `toHTML`
|
768 |
|
769 | New Features:
|
770 |
|
771 | - noConflict
|
772 | - Source Maps
|
773 | - Block Params
|
774 | - Strict Mode
|
775 | - @last and other each changes
|
776 | - Chained else blocks
|
777 | - @data methods can now have helper parameters passed to them
|
778 | - Dynamic partials
|
779 |
|
780 | [Commits](https://github.com/wycats/handlebars.js/compare/v2.0.0...v3.0.0)
|
781 |
|
782 | ## v2.0.0 - September 1st, 2014
|
783 |
|
784 | - Update jsfiddle to 2.0.0-beta.1 - 0670f65
|
785 | - Add contrib note regarding handlebarsjs.com docs - 4d17e3c
|
786 | - Play nice with gemspec version numbers - 64d5481
|
787 |
|
788 | [Commits](https://github.com/wycats/handlebars.js/compare/v2.0.0-beta.1...v2.0.0)
|
789 |
|
790 | ## v2.0.0-beta.1 - August 26th, 2014
|
791 |
|
792 | - [#787](https://github.com/wycats/handlebars.js/pull/787) - Remove whitespace surrounding standalone statements ([@kpdecker](https://github.com/kpdecker))
|
793 | - [#827](https://github.com/wycats/handlebars.js/issues/827) - Render false literal as “false” ([@scoot557](https://github.com/scoot557))
|
794 | - [#767](https://github.com/wycats/handlebars.js/issues/767) - Subexpressions bug with hash and context ([@evensoul](https://github.com/evensoul))
|
795 | - Changes to 0/undefined handling
|
796 | - [#731](https://github.com/wycats/handlebars.js/pull/731) - Strange behavior for {{#foo}} {{bar}} {{/foo}} when foo is 0 ([@kpdecker](https://github.com/kpdecker))
|
797 | - [#820](https://github.com/wycats/handlebars.js/issues/820) - strange behavior for {{foo.bar}} when foo is 0 or null or false ([@zordius](https://github.com/zordius))
|
798 | - [#837](https://github.com/wycats/handlebars.js/issues/837) - Strange input for custom helper ( foo.bar == false when foo is undefined ) ([@zordius](https://github.com/zordius))
|
799 | - [#819](https://github.com/wycats/handlebars.js/pull/819) - Implement recursive field lookup ([@kpdecker](https://github.com/kpdecker))
|
800 | - [#764](https://github.com/wycats/handlebars.js/issues/764) - This reference not working for helpers ([@kpdecker](https://github.com/kpdecker))
|
801 | - [#773](https://github.com/wycats/handlebars.js/issues/773) - Implicit parameters in {{#each}} introduces a peculiarity in helpers calling convention ([@Bertrand](https://github.com/Bertrand))
|
802 | - [#783](https://github.com/wycats/handlebars.js/issues/783) - helperMissing and consistency for different expression types ([@ErisDS](https://github.com/ErisDS))
|
803 | - [#795](https://github.com/wycats/handlebars.js/pull/795) - Turn the precompile script into a wrapper around a module. ([@jwietelmann](https://github.com/jwietelmann))
|
804 | - [#823](https://github.com/wycats/handlebars.js/pull/823) - Support inverse sections on the with helper ([@dan-manges](https://github.com/dan-manges))
|
805 | - [#834](https://github.com/wycats/handlebars.js/pull/834) - Refactor blocks, programs and inverses ([@mmun](https://github.com/mmun))
|
806 | - [#852](https://github.com/wycats/handlebars.js/issues/852) - {{foo~}} space control behavior is different from older version ([@zordius](https://github.com/zordius))
|
807 | - [#835](https://github.com/wycats/handlebars.js/issues/835) - Templates overwritten if file is loaded twice
|
808 |
|
809 | - Expose escapeExpression on the root object - 980c38c
|
810 | - Remove nested function eval in blockHelperMissing - 6f22ec1
|
811 | - Fix compiler program de-duping - 9e3f824
|
812 |
|
813 | Compatibility notes:
|
814 |
|
815 | - The default build now outputs a generic UMD wrapper. This should be transparent change but may cause issues in some environments.
|
816 | - Runtime compatibility breaks in both directions. Ensure that both compiler and client are upgraded to 2.0.0-beta.1 or higher at the same time.
|
817 | - `programWithDepth` has been removed an instead an array of context values is passed to fields needing depth lookups.
|
818 | - `false` values are now printed to output rather than silently dropped
|
819 | - Lines containing only block statements and whitespace are now removed. This matches the Mustache spec but may cause issues with code that expects whitespace to exist but would not otherwise.
|
820 | - Partials that are standalone will now indent their rendered content
|
821 | - `AST.ProgramNode`'s signature has changed.
|
822 | - Numerious methods/features removed from pseudo-API classes
|
823 | - `JavaScriptCompiler.register`
|
824 | - `JavaScriptCompiler.replaceStack` no longer supports non-inline replace
|
825 | - `Compiler.disassemble`
|
826 | - `DECLARE` opcode
|
827 | - `strip` opcode
|
828 | - `lookup` opcode
|
829 | - Content nodes may have their `string` values mutated over time. `original` field provides the unmodified value.
|
830 | - Removed unused `Handlebars.registerHelper` `inverse` parameter
|
831 | - `each` helper requires iterator parameter
|
832 |
|
833 | [Commits](https://github.com/wycats/handlebars.js/compare/v2.0.0-alpha.4...v2.0.0-beta.1)
|
834 |
|
835 | ## v2.0.0-alpha.4 - May 19th, 2014
|
836 |
|
837 | - Expose setup wrappers for compiled templates - 3638874
|
838 |
|
839 | [Commits](https://github.com/wycats/handlebars.js/compare/v2.0.0-alpha.3...v2.0.0-alpha.4)
|
840 |
|
841 | ## v2.0.0-alpha.3 - May 19th, 2014
|
842 |
|
843 | - [#797](https://github.com/wycats/handlebars.js/pull/797) - Pass full helper ID to helperMissing when options are provided ([@tomdale](https://github.com/tomdale))
|
844 | - [#793](https://github.com/wycats/handlebars.js/pull/793) - Ensure isHelper is coerced to a boolean ([@mmun](https://github.com/mmun))
|
845 | - Refactor template init logic - 085e5e1
|
846 |
|
847 | [Commits](https://github.com/wycats/handlebars.js/compare/v2.0.0-alpha.2...v2.0.0-alpha.3)
|
848 |
|
849 | ## v2.0.0-alpha.2 - March 6th, 2014
|
850 |
|
851 | - [#756](https://github.com/wycats/handlebars.js/pull/756) - fix bug in IE<=8 (no Array::map), closes #751 ([@jenseng](https://github.com/jenseng))
|
852 | - [#749](https://github.com/wycats/handlebars.js/pull/749) - properly handle multiple subexpressions in the same hash, fixes #748 ([@jenseng](https://github.com/jenseng))
|
853 | - [#743](https://github.com/wycats/handlebars.js/issues/743) - subexpression confusion/problem? ([@waynedpj](https://github.com/waynedpj))
|
854 | - [#746](https://github.com/wycats/handlebars.js/issues/746) - [CLI] support `handlebars --version` ([@apfelbox](https://github.com/apfelbox))
|
855 | - [#747](https://github.com/wycats/handlebars.js/pull/747) - updated grunt-saucelabs, failing tests revealed ([@Jonahss](https://github.com/Jonahss))
|
856 | - Make JSON a requirement for the compiler. - 058c0fb
|
857 | - Temporarily kill the AWS publish CI step - 8347ee2
|
858 |
|
859 | Compatibility notes:
|
860 |
|
861 | - A JSON polyfill is required to run the compiler under IE8 and below. It's recommended that the precompiler be used in lieu of running the compiler on these legacy environments.
|
862 |
|
863 | [Commits](https://github.com/wycats/handlebars.js/compare/v2.0.0-alpha.1...v2.0.0-alpha.2)
|
864 |
|
865 | ## v2.0.0-alpha.1 - February 10th, 2014
|
866 |
|
867 | - [#182](https://github.com/wycats/handlebars.js/pull/182) - Allow passing hash parameters to partials ([@kpdecker](https://github.com/kpdecker))
|
868 | - [#392](https://github.com/wycats/handlebars.js/pull/392) - Access to root context in partials and helpers ([@kpdecker](https://github.com/kpdecker))
|
869 | - [#472](https://github.com/wycats/handlebars.js/issues/472) - Helpers cannot have decimal parameters ([@kayleg](https://github.com/kayleg))
|
870 | - [#569](https://github.com/wycats/handlebars.js/pull/569) - Unable to lookup array values using @index ([@kpdecker](https://github.com/kpdecker))
|
871 | - [#491](https://github.com/wycats/handlebars.js/pull/491) - For nested helpers: get the @ variables of the outer helper from the inner one ([@kpdecker](https://github.com/kpdecker))
|
872 | - [#669](https://github.com/wycats/handlebars.js/issues/669) - Ability to unregister a helper ([@dbachrach](https://github.com/dbachrach))
|
873 | - [#730](https://github.com/wycats/handlebars.js/pull/730) - Raw block helpers ([@kpdecker](https://github.com/kpdecker))
|
874 | - [#634](https://github.com/wycats/handlebars.js/pull/634) - It would be great to have the helper name passed to `blockHelperMissing` ([@kpdecker](https://github.com/kpdecker))
|
875 | - [#729](https://github.com/wycats/handlebars.js/pull/729) - Convert template spec to object literal ([@kpdecker](https://github.com/kpdecker))
|
876 |
|
877 | - [#658](https://github.com/wycats/handlebars.js/issues/658) - Depthed helpers do not work after an upgrade from 1.0.0 ([@xibxor](https://github.com/xibxor))
|
878 | - [#671](https://github.com/wycats/handlebars.js/issues/671) - Crashes on no-parameter {{#each}} ([@stepancheg](https://github.com/stepancheg))
|
879 | - [#689](https://github.com/wycats/handlebars.js/issues/689) - broken template precompilation ([@AAS](https://github.com/AAS))
|
880 | - [#698](https://github.com/wycats/handlebars.js/pull/698) - Fix parser generation under windows ([@osiris43](https://github.com/osiris43))
|
881 | - [#699](https://github.com/wycats/handlebars.js/issues/699) - @DATA not compiles to invalid JS in stringParams mode ([@kpdecker](https://github.com/kpdecker))
|
882 | - [#705](https://github.com/wycats/handlebars.js/issues/705) - 1.3.0 can not be wrapped in an IIFE ([@craigteegarden](https://github.com/craigteegarden))
|
883 | - [#706](https://github.com/wycats/handlebars.js/pull/706) - README: Use with helper instead of relying on blockHelperMissing ([@scottgonzalez](https://github.com/scottgonzalez))
|
884 |
|
885 | - [#700](https://github.com/wycats/handlebars.js/pull/700) - Remove redundant conditions ([@blakeembrey](https://github.com/blakeembrey))
|
886 | - [#704](https://github.com/wycats/handlebars.js/pull/704) - JavaScript Compiler Cleanup ([@blakeembrey](https://github.com/blakeembrey))
|
887 |
|
888 | Compatibility notes:
|
889 |
|
890 | - `helperMissing` helper no longer has the indexed name argument. Helper name is now available via `options.name`.
|
891 | - Precompiler output has changed, which breaks compatibility with prior versions of the runtime and precompiled output.
|
892 | - `JavaScriptCompiler.compilerInfo` now returns generic objects rather than javascript source.
|
893 | - AST changes
|
894 | - INTEGER -> NUMBER
|
895 | - Additional PartialNode hash parameter
|
896 | - New RawBlockNode type
|
897 | - Data frames now have a `_parent` field. This is internal but is enumerable for performance/compatibility reasons.
|
898 |
|
899 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.3.0...v2.0.0-alpha.1)
|
900 |
|
901 | ## v1.3.0 - January 1st, 2014
|
902 |
|
903 | - [#690](https://github.com/wycats/handlebars.js/pull/690) - Added support for subexpressions ([@machty](https://github.com/machty))
|
904 | - [#696](https://github.com/wycats/handlebars.js/pull/696) - Fix for reserved keyword "default" ([@nateirwin](https://github.com/nateirwin))
|
905 | - [#692](https://github.com/wycats/handlebars.js/pull/692) - add line numbers to nodes when parsing ([@fivetanley](https://github.com/fivetanley))
|
906 | - [#695](https://github.com/wycats/handlebars.js/pull/695) - Pull options out from param setup to allow easier extension ([@blakeembrey](https://github.com/blakeembrey))
|
907 | - [#694](https://github.com/wycats/handlebars.js/pull/694) - Make the environment reusable ([@blakeembrey](https://github.com/blakeembrey))
|
908 | - [#636](https://github.com/wycats/handlebars.js/issues/636) - Print line and column of errors ([@sgronblo](https://github.com/sgronblo))
|
909 | - Use literal for data lookup - c1a93d3
|
910 | - Add stack handling sanity checks - cd885bf
|
911 | - Fix stack id "leak" on replaceStack - ddfe457
|
912 | - Fix incorrect stack pop when replacing literals - f4d337d
|
913 |
|
914 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.2.1...v1.3.0)
|
915 |
|
916 | ## v1.2.1 - December 26th, 2013
|
917 |
|
918 | - [#684](https://github.com/wycats/handlebars.js/pull/684) - Allow any number of trailing characters for valid JavaScript variable ([@blakeembrey](https://github.com/blakeembrey))
|
919 | - [#686](https://github.com/wycats/handlebars.js/pull/686) - Falsy AMD module names in version 1.2.0 ([@kpdecker](https://github.com/kpdecker))
|
920 |
|
921 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.2.0...v1.2.1)
|
922 |
|
923 | ## v1.2.0 - December 23rd, 2013
|
924 |
|
925 | - [#675](https://github.com/wycats/handlebars.js/issues/675) - Cannot compile empty template for partial ([@erwinw](https://github.com/erwinw))
|
926 | - [#677](https://github.com/wycats/handlebars.js/issues/677) - Triple brace statements fail under IE ([@hamzaCM](https://github.com/hamzaCM))
|
927 | - [#655](https://github.com/wycats/handlebars.js/issues/655) - Loading Handlebars using bower ([@niki4810](https://github.com/niki4810))
|
928 | - [#657](https://github.com/wycats/handlebars.js/pull/657) - Fixes issue where cli compiles non handlebars templates ([@chrishoage](https://github.com/chrishoage))
|
929 | - [#681](https://github.com/wycats/handlebars.js/pull/681) - Adds in-browser testing and Saucelabs CI ([@kpdecker](https://github.com/kpdecker))
|
930 | - [#661](https://github.com/wycats/handlebars.js/pull/661) - Add @first and @index to #each object iteration ([@cgp](https://github.com/cgp))
|
931 | - [#650](https://github.com/wycats/handlebars.js/pull/650) - Handlebars is MIT-licensed ([@thomasboyt](https://github.com/thomasboyt))
|
932 | - [#641](https://github.com/wycats/handlebars.js/pull/641) - Document ember testing process ([@kpdecker](https://github.com/kpdecker))
|
933 | - [#662](https://github.com/wycats/handlebars.js/issues/662) - handlebars-source 1.1.2 is missing from RubyGems.
|
934 | - [#656](https://github.com/wycats/handlebars.js/issues/656) - Expose COMPILER_REVISION checks as a hook ([@machty](https://github.com/machty))
|
935 | - [#668](https://github.com/wycats/handlebars.js/issues/668) - Consider publishing handlebars-runtime as a separate module on npm ([@dlmanning](https://github.com/dlmanning))
|
936 | - [#679](https://github.com/wycats/handlebars.js/issues/679) - Unable to override invokePartial ([@mattbrailsford](https://github.com/mattbrailsford))
|
937 | - [#646](https://github.com/wycats/handlebars.js/pull/646) - Fix "\\{{" immediately following "\{{" ([@dmarcotte](https://github.com/dmarcotte))
|
938 | - Allow extend to work with non-prototyped objects - eb53f2e
|
939 | - Add JavascriptCompiler public API tests - 1a751b2
|
940 | - Add AST test coverage for more complex paths - ddea5be
|
941 | - Fix handling of boolean escape in MustacheNode - b4968bb
|
942 |
|
943 | Compatibility notes:
|
944 |
|
945 | - `@index` and `@first` are now supported for `each` iteration on objects
|
946 | - `Handlebars.VM.checkRevision` and `Handlebars.JavaScriptCompiler.prototype.compilerInfo` now available to modify the version checking behavior.
|
947 | - Browserify users may link to the runtime library via `require('handlebars/runtime')`
|
948 |
|
949 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.1.2...v1.2.0)
|
950 |
|
951 | ## v1.1.2 - November 5th, 2013
|
952 |
|
953 | - [#645](https://github.com/wycats/handlebars.js/issues/645) - 1.1.1 fails under IE8 ([@kpdecker](https://github.com/kpdecker))
|
954 | - [#644](https://github.com/wycats/handlebars.js/issues/644) - Using precompiled templates (AMD mode) with handlebars.runtime 1.1.1 ([@fddima](https://github.com/fddima))
|
955 |
|
956 | - Add simple binary utility tests - 96a45a4
|
957 | - Fix empty string compilation - eea708a
|
958 |
|
959 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.1.1...v1.1.2)
|
960 |
|
961 | ## v1.1.1 - November 4th, 2013
|
962 |
|
963 | - [#642](https://github.com/wycats/handlebars.js/issues/642) - handlebars 1.1.0 are broken with nodejs
|
964 |
|
965 | - Fix release notes link - 17ba258
|
966 |
|
967 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.1.0...v1.1.1)
|
968 |
|
969 | ## v1.1.0 - November 3rd, 2013
|
970 |
|
971 | - [#628](https://github.com/wycats/handlebars.js/pull/628) - Convert code to ES6 modules ([@kpdecker](https://github.com/kpdecker))
|
972 | - [#336](https://github.com/wycats/handlebars.js/pull/336) - Add whitespace control syntax ([@kpdecker](https://github.com/kpdecker))
|
973 | - [#535](https://github.com/wycats/handlebars.js/pull/535) - Fix for probable JIT error under Safari ([@sorentwo](https://github.com/sorentwo))
|
974 | - [#483](https://github.com/wycats/handlebars.js/issues/483) - Add first and last @ vars to each helper ([@denniskuczynski](https://github.com/denniskuczynski))
|
975 | - [#557](https://github.com/wycats/handlebars.js/pull/557) - `\\{{foo}}` escaping only works in some situations ([@dmarcotte](https://github.com/dmarcotte))
|
976 | - [#552](https://github.com/wycats/handlebars.js/pull/552) - Added BOM removal flag. ([@blessenm](https://github.com/blessenm))
|
977 | - [#543](https://github.com/wycats/handlebars.js/pull/543) - publish passing master builds to s3 ([@fivetanley](https://github.com/fivetanley))
|
978 |
|
979 | - [#608](https://github.com/wycats/handlebars.js/issues/608) - Add `includeZero` flag to `if` conditional
|
980 | - [#498](https://github.com/wycats/handlebars.js/issues/498) - `Handlebars.compile` fails on empty string although a single blank works fine
|
981 | - [#599](https://github.com/wycats/handlebars.js/issues/599) - lambda helpers only receive options if used with arguments
|
982 | - [#592](https://github.com/wycats/handlebars.js/issues/592) - Optimize array and subprogram performance
|
983 | - [#571](https://github.com/wycats/handlebars.js/issues/571) - uglify upgrade breaks compatibility with older versions of node
|
984 | - [#587](https://github.com/wycats/handlebars.js/issues/587) - Partial inside partial breaks?
|
985 |
|
986 | Compatibility notes:
|
987 |
|
988 | - The project now includes separate artifacts for AMD, CommonJS, and global objects.
|
989 | - AMD: Users may load the bundled `handlebars.amd.js` or `handlebars.runtime.amd.js` files or load individual modules directly. AMD users should also note that the handlebars object is exposed via the `default` field on the imported object. This [gist](https://gist.github.com/wycats/7417be0dc361a69d5916) provides some discussion of possible compatibility shims.
|
990 | - CommonJS/Node: Node loading occurs as normal via `require`
|
991 | - Globals: The `handlebars.js` and `handlebars.runtime.js` files should behave in the same manner as the v1.0.12 / 1.0.0 release.
|
992 | - Build artifacts have been removed from the repository. [npm][npm], [components/handlebars.js][components], [cdnjs][cdnjs], or the [builds page][builds-page] should now be used as the source of built artifacts.
|
993 | - Context-stored helpers are now always passed the `options` hash. Previously no-argument helpers did not have this argument.
|
994 |
|
995 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.0.12...v1.1.0)
|
996 |
|
997 | ## v1.0.12 / 1.0.0 - May 31 2013
|
998 |
|
999 | - [#515](https://github.com/wycats/handlebars.js/issues/515) - Add node require extensions support ([@jjclark1982](https://github.com/jjclark1982))
|
1000 | - [#517](https://github.com/wycats/handlebars.js/issues/517) - Fix amd precompiler output with directories ([@blessenm](https://github.com/blessenm))
|
1001 | - [#433](https://github.com/wycats/handlebars.js/issues/433) - Add support for unicode ids
|
1002 | - [#469](https://github.com/wycats/handlebars.js/issues/469) - Add support for `?` in ids
|
1003 | - [#534](https://github.com/wycats/handlebars.js/issues/534) - Protect from object prototype modifications
|
1004 | - [#519](https://github.com/wycats/handlebars.js/issues/519) - Fix partials with . name ([@jamesgorrie](https://github.com/jamesgorrie))
|
1005 | - [#519](https://github.com/wycats/handlebars.js/issues/519) - Allow ID or strings in partial names
|
1006 | - [#437](https://github.com/wycats/handlebars.js/issues/437) - Require matching brace counts in escaped expressions
|
1007 | - Merge passed partials and helpers with global namespace values
|
1008 | - Add support for complex ids in @data references
|
1009 | - Docs updates
|
1010 |
|
1011 | Compatibility notes:
|
1012 |
|
1013 | - The parser is now stricter on `{{{`, requiring that the end token be `}}}`. Templates that do not
|
1014 | follow this convention should add the additional brace value.
|
1015 | - Code that relies on global the namespace being muted when custom helpers or partials are passed will need to explicitly pass an `undefined` value for any helpers that should not be available.
|
1016 | - The compiler version has changed. Precompiled templates with 1.0.12 or higher must use the 1.0.0 or higher runtime.
|
1017 |
|
1018 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.0.11...v1.0.12)
|
1019 |
|
1020 | ## v1.0.11 / 1.0.0-rc4 - May 13 2013
|
1021 |
|
1022 | - [#458](https://github.com/wycats/handlebars.js/issues/458) - Fix `./foo` syntax ([@jpfiset](https://github.com/jpfiset))
|
1023 | - [#460](https://github.com/wycats/handlebars.js/issues/460) - Allow `:` in unescaped identifiers ([@jpfiset](https://github.com/jpfiset))
|
1024 | - [#471](https://github.com/wycats/handlebars.js/issues/471) - Create release notes (These!)
|
1025 | - [#456](https://github.com/wycats/handlebars.js/issues/456) - Allow escaping of `\\`
|
1026 | - [#211](https://github.com/wycats/handlebars.js/issues/211) - Fix exception in `escapeExpression`
|
1027 | - [#375](https://github.com/wycats/handlebars.js/issues/375) - Escape unicode newlines
|
1028 | - [#461](https://github.com/wycats/handlebars.js/issues/461) - Do not fail when compiling `""`
|
1029 | - [#302](https://github.com/wycats/handlebars.js/issues/302) - Fix sanity check in knownHelpersOnly mode
|
1030 | - [#369](https://github.com/wycats/handlebars.js/issues/369) - Allow registration of multiple helpers and partial by passing definition object
|
1031 | - Add bower package declaration ([@DevinClark](https://github.com/DevinClark))
|
1032 | - Add NuSpec package declaration ([@MikeMayer](https://github.com/MikeMayer))
|
1033 | - Handle empty context in `with` ([@thejohnfreeman](https://github.com/thejohnfreeman))
|
1034 | - Support custom template extensions in CLI ([@matteoagosti](https://github.com/matteoagosti))
|
1035 | - Fix Rhino support ([@broady](https://github.com/broady))
|
1036 | - Include contexts in string mode ([@leshill](https://github.com/leshill))
|
1037 | - Return precompiled scripts when compiling to AMD ([@JamesMaroney](https://github.com/JamesMaroney))
|
1038 | - Docs updates ([@iangreenleaf](https://github.com/iangreenleaf), [@gilesbowkett](https://github.com/gilesbowkett), [@utkarsh2012](https://github.com/utkarsh2012))
|
1039 | - Fix `toString` handling under IE and browserify ([@tommydudebreaux](https://github.com/tommydudebreaux))
|
1040 | - Add program metadata
|
1041 |
|
1042 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.0.10...v1.0.11)
|
1043 |
|
1044 | ## v1.0.10 - Node - Feb 27 2013
|
1045 |
|
1046 | - [#428](https://github.com/wycats/handlebars.js/issues/428) - Fix incorrect rendering of nested programs
|
1047 | - Fix exception message ([@tricknotes](https://github.com/tricknotes))
|
1048 | - Added negative number literal support
|
1049 | - Concert library to single IIFE
|
1050 | - Add handlebars-source gemspec ([@machty](https://github.com/machty))
|
1051 |
|
1052 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.0.9...v1.0.10)
|
1053 |
|
1054 | ## v1.0.9 - Node - Feb 15 2013
|
1055 |
|
1056 | - Added `Handlebars.create` API in node module for sandboxed instances ([@tommydudebreaux](https://github.com/tommydudebreaux))
|
1057 |
|
1058 | [Commits](https://github.com/wycats/handlebars.js/compare/1.0.0-rc.3...v1.0.9)
|
1059 |
|
1060 | ## 1.0.0-rc3 - Browser - Feb 14 2013
|
1061 |
|
1062 | - Prevent use of `this` or `..` in illogical place ([@leshill](https://github.com/leshill))
|
1063 | - Allow AST passing for `parse`/`compile`/`precompile` ([@machty](https://github.com/machty))
|
1064 | - Optimize generated output by inlining statements where possible
|
1065 | - Check compiler version when evaluating templates
|
1066 | - Package browser dist in npm package
|
1067 |
|
1068 | [Commits](https://github.com/wycats/handlebars.js/compare/v1.0.8...1.0.0-rc.3)
|
1069 |
|
1070 | ## Prior Versions
|
1071 |
|
1072 | When upgrading from the Handlebars 0.9 series, be aware that the
|
1073 | signature for passing custom helpers or partials to templates has
|
1074 | changed.
|
1075 |
|
1076 | Instead of:
|
1077 |
|
1078 | ```js
|
1079 | template(context, helpers, partials, [data]);
|
1080 | ```
|
1081 |
|
1082 | Use:
|
1083 |
|
1084 | ```js
|
1085 | template(context, { helpers: helpers, partials: partials, data: data });
|
1086 | ```
|
1087 |
|
1088 | [builds-page]: http://builds.handlebarsjs.com.s3.amazonaws.com/index.html
|
1089 | [cdnjs]: http://cdnjs.com/libraries/handlebars.js/
|
1090 | [components]: https://github.com/components/handlebars.js
|
1091 | [npm]: https://npmjs.org/package/handlebars
|