@@ -74,25 +74,18 @@ export function template(templateSpec, env) {
7474 }
7575 partial = env . VM . resolvePartial . call ( this , partial , context , options ) ;
7676
77- let extendedOptions = Utils . extend ( { } , options , {
78- hooks : this . hooks ,
79- protoAccessControl : this . protoAccessControl
80- } ) ;
81-
82- let result = env . VM . invokePartial . call (
83- this ,
84- partial ,
85- context ,
86- extendedOptions
87- ) ;
77+ options . hooks = this . hooks ;
78+ options . protoAccessControl = this . protoAccessControl ;
79+
80+ let result = env . VM . invokePartial . call ( this , partial , context , options ) ;
8881
8982 if ( result == null && env . compile ) {
9083 options . partials [ options . name ] = env . compile (
9184 partial ,
9285 templateSpec . compilerOptions ,
9386 env
9487 ) ;
95- result = options . partials [ options . name ] ( context , extendedOptions ) ;
88+ result = options . partials [ options . name ] ( context , options ) ;
9689 }
9790 if ( result != null ) {
9891 if ( options . indent ) {
@@ -247,8 +240,9 @@ export function template(templateSpec, env) {
247240
248241 ret . _setup = function ( options ) {
249242 if ( ! options . partial ) {
250- let mergedHelpers = Utils . extend ( { } , env . helpers , options . helpers ) ;
251- wrapHelpersToPassLookupProperty ( mergedHelpers , container ) ;
243+ let mergedHelpers = { } ;
244+ addHelpers ( mergedHelpers , env . helpers , container ) ;
245+ addHelpers ( mergedHelpers , options . helpers , container ) ;
252246 container . helpers = mergedHelpers ;
253247
254248 if ( templateSpec . usePartial ) {
@@ -428,16 +422,18 @@ function executeDecorators(fn, prog, container, depths, data, blockParams) {
428422 return prog ;
429423}
430424
431- function wrapHelpersToPassLookupProperty ( mergedHelpers , container ) {
432- Object . keys ( mergedHelpers ) . forEach ( helperName => {
433- let helper = mergedHelpers [ helperName ] ;
425+ function addHelpers ( mergedHelpers , helpers , container ) {
426+ if ( ! helpers ) return ;
427+ Object . keys ( helpers ) . forEach ( helperName => {
428+ let helper = helpers [ helperName ] ;
434429 mergedHelpers [ helperName ] = passLookupPropertyOption ( helper , container ) ;
435430 } ) ;
436431}
437432
438433function passLookupPropertyOption ( helper , container ) {
439434 const lookupProperty = container . lookupProperty ;
440435 return wrapHelper ( helper , options => {
441- return Utils . extend ( { lookupProperty } , options ) ;
436+ options . lookupProperty = lookupProperty ;
437+ return options ;
442438 } ) ;
443439}
0 commit comments