Commit Graph

1594 Commits

Author SHA1 Message Date
Nils Knappmeier 7729aa956b Update grunt-eslint to 20.1.0 2017-10-21 15:42:27 +02:00
Nils Knappmeier 8947dd077c Update jsfiddle to 4.0.11 2017-10-17 23:15:53 +02:00
Nils Knappmeier 1e954ddf3c v4.0.11 v4.0.11 2017-10-17 22:52:25 +02:00
Nils Knappmeier 1ac131e652 Update release notes 2017-10-17 22:51:42 +02:00
Nils Knappmeier 59548b4bdc Extend compiler-api example by replacing child-compiler
closes #1376

(cherry picked from commit ce3cd8a)
2017-10-17 22:30:31 +02:00
Marcos Marado 21386b6474 Update (C) year in the LICENSE file
Welcome to 2017!

(cherry picked from commit 33773c2)
2017-10-17 22:21:41 +02:00
Nils Knappmeier 79309659e1 Gracefully handle missing uglify-js dependency
closes #1391

uglify-js is an optional dependency and should be treated as such.
This commit gracefully handles MODULE_NOT_FOUND errors while loading
uglify.

- Check for existing uglify-js (and load uglify-js) only if minification
  was activated
- Use "require.resolve" to check if uglify exists. Otherwise, a missing
  dependency of uglify-js would cause the same behavior as missing
  uglify-js. (Only a warning, no error)
- The code to load and run uglify is put into a single for readability
  purposes
- Tests use a mockup Module._resolveFilename to simulate the missing module.
  This function is used by both "require" and "require.resolve", so both
  are mocked equally.

(cherry picked from commit d5caa56)
2017-10-17 22:18:56 +02:00
Nils Knappmeier 5b76f041b3 Fix build on Windows
Closes #1233

- Handle path-separators properly. Use "path.sep" instead of "/".
  Or use "require.resolve()" if possible
- Use "execFile" instead of "exec" to run the Handlebars executable.
  This prevents problems due to (missing) shell escaping.
- Use explicit call to "node" in order to run the executable on Windows.
- Add "appveyor"-CI in order to run regular tests on Windows.
2017-08-23 22:29:30 +02:00
Nils Knappmeier 1ed163f4ae Update jsfiddle-link to 4.0.10 2017-05-21 14:15:39 +02:00
Nils Knappmeier 670ec6fafb v4.0.10 v4.0.10 2017-05-21 14:11:27 +02:00
Nils Knappmeier 2e935df8bf Update release notes 2017-05-21 14:10:50 +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 5ec78a8c70 v4.0.9 v4.0.9 2017-05-21 13:39:05 +02:00
Nils Knappmeier 5333f316c3 Update release notes 2017-05-21 13:38:28 +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
Luiz Américo cc554a5813 Fix build in windows
(cherry picked from commit 275ab37)
2017-05-15 00:11:59 +02:00
Nils Knappmeier ed879a6068 Ensure LF line-edings in handlebars-template fixtures (*.hbs)
Fixes #1331
2017-05-14 23:57:07 +02:00
Nils Knappmeier 2e21e2bc9a Run integration test with node handlebars -a ... on Windows
Fixes #1233

NodeJS files cannot be executed directly on Windows.
2017-05-14 23:37:24 +02:00
Nils Knappmeier bdfdbea09c Ensure LF line-edings in lexer-files (*.l)
Related to #1233
2017-05-14 22:49:19 +02:00
Nils Knappmeier b50ef03823 Force LF line-endings for spec/artifacts
Fixes #1331
2017-05-14 14:43:14 +02:00
Nils Knappmeier 6e6269fcd7 Use istanbul/lib/cli.js instead of node_modules/.bin/istanbul
Fixes #1331

Due to the way, "bin"-files are distributed into the node_modules/.bin
directory on Windows, the task "test:cov" did not work on Windows.
This commit uses the node-script directly.
2017-05-14 14:43:14 +02:00
Nils Knappmeier 7378f854c3 Publish valid semver task independently of the branch 2017-05-13 00:57:46 +02:00
Nils Knappmeier fed5818876 v4.0.8 v4.0.8 2017-05-02 22:55:44 +02:00
Nils Knappmeier 0e81f0a082 Update release notes 2017-05-02 22:55:08 +02:00
Nils Knappmeier a00c598266 Allow partial-blocks to be executed without "options"
Closes #1341

If the @partial-block is called as parameter of a helper (like in
{{#if @partial-block}}...{{/if}}, the partialBlockWrapper is executed
without "options"-parameter. It should still work in without an error
in such a case.
2017-05-02 22:48:15 +02:00
Nils Knappmeier 606fa55b0a v4.0.7 v4.0.7 2017-04-29 22:52:09 +02:00
Nils Knappmeier 8e09f0ee4e Update release-notes for 4.0.7 2017-04-29 22:47:39 +02:00
Nils Knappmeier c8f4b570c1 Fix context-stack when calling block-helpers on null values
Fixes #1319

Original behaviour:
- When a block-helper was called on a null-context, an empty object was used
  as context instead. (#1093)
- The runtime verifies that whether the current context equals the
  last context and adds the current context to the stack, if it is not.
  This is done, so that inside a block-helper, the ".." path can be used
  to go back to the parent element.
- If the helper is called on a "null" element, the context was added, even
  though it shouldn't be, because the "null != {}"

Fix:
- The commit replaces "null" by the identifiable "container.nullContext"
  instead of "{}". "nullContext" is a sealed empty object.
- An additional check in the runtime verifies that the context is
  only added to the stack, if it is not the nullContext.

Backwards compatibility within 4.0.x-versions:
- This commit changes the compiler and compiled templates would not work
  with runtime-versions 4.0.0 - 4.0.6, because of the "nullContext"
  property. That's way, the compiled code reads
  "(container.nullContext || {})" so that the behavior will degrade
  gracefully with older runtime versions: Everything else will work
  fine, but GH-1319 will still be broken, if you use a newer compiler
  with a pre 4.0.7 runtime.
2017-03-25 15:00:58 +01:00
Tobias Bieniek b617375219 Parser: Change suffix to use ES6 default module export
- This export will be transpiled by Babel for the cjs distribution,
  but will enable others to  use a pure ES6 module distribution
- Instanbul: Ignore "parser.js" for coverage reporting. This file was ignored before
  via annotation, but this has no effect anymore due to the above change
- Remove istanbul annotation from `parser-prefix` (@nknapp)

Squashed by @nknapp

(cherry picked from commit 508347e)
2017-02-24 08:35:48 +01:00
Nils Knappmeier 63a8e0caa2 Add more tests for partial-blocks and inline partials
- Multiple partial-blocks at different nesting levels
- Calling partial-blocks twice with nested partial-blocks
- Calling the partial-block from within the #each-helper
- nested inline partials with partial-blocks on different nesting levels
- nested inline partials (twice at each level)
2017-02-14 22:18:30 +01:00
Nils Knappmeier 5a164d0ca5 Fix for #1252: Using @partial-block twice in a template not possible
Fixes #1252
- This fix treats partial-blocks more like closures and uses the closure-context of
  the "invokePartial"-function to store the @partial-block for the partial.
- Adds a tes for the fix
2017-02-14 22:18:30 +01:00
Joonas Lahtinen 01b0f656bb Avoid duplicate "sourceMappingURL=" lines.
Avoid duplicate // sourceMappingURL=... lines when minifying AND
generating a map. UglifyJS2 will write the line when minifying.

(cherry picked from commit 660a117)
2017-02-14 22:01:13 +01:00
Travis Nelson 406f2ee01f require('sys') is deprecated, using 'util' instead
(node:30288) DeprecationWarning: sys is deprecated. Use util instead.

(cherry picked from commit 9a36966 by @travnels)
2017-01-01 20:47:59 +01:00
Nils Knappmeier a023cb4dd9 Make "column"-property of Errors enumerable
Fixes #1284

Appearently, there is a use-case of stringifying the error in order to
evaluated its properties on another system. There was a regression
from 4.0.5  to 4.0.6 that the column-property of compilation errors
was not  enumerable anymore in 4.0.6 (due to  commit 20c965c) and
thus was not included in the output of "JSON.stringify".
2016-12-30 16:33:32 +01:00
Nils Knappmeier c7dc353956 Testcase to verify that compile-errors have a column-property
Related to #1284

The test ensures that the property is there, because it is important to
some people.
2016-12-30 16:33:32 +01:00
Lon Ingram ad3037cf54 v4.0.6 (again)
Missed some versions in the repo that needed bumping.
v4.0.6
2016-11-12 12:32:45 -06:00
Lon Ingram 44ce5f40aa Update release notes 2016-11-12 10:40:57 -06:00
Lon Ingram 3385de0921 v4.0.6 2016-11-11 12:04:25 -06:00
Lon Ingram abc160ae8e Use XML-like tags in test instead of bizarre dot delimiters 2016-11-11 12:01:16 -06:00
Lon Ingram 5ee91cb58a Add test reproducing #1185 2016-11-11 12:01:16 -06:00
Lon Ingram ef9e0dc2ab Walk up data frames for nested @partial-block
The root cause of #1218 is that `invokePartial` creates a stack of data frames
for nested partial blocks, but `resolvePartial` always uses the value at top of
the stack without "popping" it. The result is an infinite recursive loop, as
references to `@partial-block` in the partial at the top of the stack resolve to
itself.

So, walk up the stack of data frames when evaluating. This is accomplished by
1) setting the `partial-block` property to `noop` after use and
2) using `_parent['partial-block']` if `partial-block` is `noop`

Fix #1218
2016-11-11 12:01:16 -06:00
Kabir 0d0c4d1bbd Add a new lightweight package based on handlebars in the README
Add a new package [just-handlebars-helpers](https://github.com/leapfrogtechnology/just-handlebars-helpers) on the list. 

This is a lightweight package that offers a collection of common handlebars helpers. And it is [fully tested](https://codecov.io/github/leapfrogtechnology/just-handlebars-helpers)
2016-11-11 12:01:16 -06:00
Charles O'Farrell 8ff49cef52 Ensure that existing blockParams and depths are respected on dupe programs
Fixes #1186
2016-11-11 12:01:16 -06:00
Mr. Leo 1b885d496a Added cory 2016-11-11 12:01:16 -06:00
Gennadiy Litvinyuk 45e14b7b45 Preserve License info in Closure Compiler
To preserve license info in Closure Compiler the license has to be JSDoc-comment (not simple comment) and have @license before license text
2016-11-11 12:01:16 -06:00
Paul Falgout 1379e8f50c Contributing doc fix: failing thats -> failing tests 2016-11-11 12:01:16 -06:00
Tim Wang 6272c15074 Update license date 2016-11-11 12:01:16 -06:00
kpdecker 959ee557b0 Update jsfiddle to point to latest 2016-11-11 12:01:16 -06:00
Anders D. Johnson 577b760b50 Fix typos on decorators-api.md. 2016-11-11 12:01:16 -06:00
kpdecker 8c19874497 Drop extra Error params
This was causing a difficult to diagnose failure under IE and doesn’t give us enough value to justify the change.
2016-11-11 12:01:16 -06:00