Merge branch '4.x'

# Conflicts:
#	Gruntfile.js
#	lib/handlebars/exception.js
#	spec/partials.js
#	spec/regressions.js
This commit is contained in:
Nils Knappmeier
2017-02-14 22:41:46 +01:00
9 changed files with 163 additions and 10 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ import {registerDefaultHelpers} from './helpers';
import {registerDefaultDecorators} from './decorators';
import logger from './logger';
export const VERSION = '4.0.5';
export const VERSION = '4.0.6';
export const COMPILER_REVISION = 7;
export const REVISION_CHANGES = {
+4 -1
View File
@@ -31,7 +31,10 @@ function Exception(message, node) {
// Work around issue under safari where we can't directly set the column value
/* istanbul ignore next */
if (Object.defineProperty) {
Object.defineProperty(this, 'column', {value: column});
Object.defineProperty(this, 'column', {
value: column,
enumerable: true
});
} else {
this.column = column;
}
+13 -4
View File
@@ -215,15 +215,24 @@ export function resolvePartial(partial, context, options) {
}
export function invokePartial(partial, context, options) {
// Use the current closure context to save the partial-block if this partial
const currentPartialBlock = options.data && options.data['partial-block'];
options.partial = true;
let partialBlock;
if (options.fn && options.fn !== noop) {
options.data = createFrame(options.data);
partialBlock = options.data['partial-block'] = options.fn;
if (partialBlock.partials) {
options.partials = Utils.extend({}, options.partials, partialBlock.partials);
// Wrapper function to get access to currentPartialBlock from the closure
let fn = options.fn;
partialBlock = options.data['partial-block'] = function partialBlockWrapper(context, options) {
// Restore the partial-block from the closure for the execution of the block
// i.e. the part inside the block of the partial call.
options.data = createFrame(options.data);
options.data['partial-block'] = currentPartialBlock;
return fn(context, options);
};
if (fn.partials) {
options.partials = Utils.extend({}, options.partials, fn.partials);
}
}