@@ -71,25 +71,18 @@ export function template(templateSpec, env) {
7171 }
7272 partial = env . VM . resolvePartial . call ( this , partial , context , options ) ;
7373
74- let extendedOptions = Utils . extend ( { } , options , {
75- hooks : this . hooks ,
76- protoAccessControl : this . protoAccessControl ,
77- } ) ;
78-
79- let result = env . VM . invokePartial . call (
80- this ,
81- partial ,
82- context ,
83- extendedOptions
84- ) ;
74+ options . hooks = this . hooks ;
75+ options . protoAccessControl = this . protoAccessControl ;
76+
77+ let result = env . VM . invokePartial . call ( this , partial , context , options ) ;
8578
8679 if ( result == null && env . compile ) {
8780 options . partials [ options . name ] = env . compile (
8881 partial ,
8982 templateSpec . compilerOptions ,
9083 env
9184 ) ;
92- result = options . partials [ options . name ] ( context , extendedOptions ) ;
85+ result = options . partials [ options . name ] ( context , options ) ;
9386 }
9487 if ( result != null ) {
9588 if ( options . indent ) {
@@ -255,8 +248,9 @@ export function template(templateSpec, env) {
255248
256249 function _setup ( options ) {
257250 if ( ! options . partial ) {
258- let mergedHelpers = Utils . extend ( { } , env . helpers , options . helpers ) ;
259- wrapHelpersToPassLookupProperty ( mergedHelpers , container ) ;
251+ let mergedHelpers = { } ;
252+ addHelpers ( mergedHelpers , env . helpers , container ) ;
253+ addHelpers ( mergedHelpers , options . helpers , container ) ;
260254 container . helpers = mergedHelpers ;
261255
262256 if ( templateSpec . usePartial ) {
@@ -417,16 +411,18 @@ function executeDecorators(fn, prog, container, depths, data, blockParams) {
417411 return prog ;
418412}
419413
420- function wrapHelpersToPassLookupProperty ( mergedHelpers , container ) {
421- Object . keys ( mergedHelpers ) . forEach ( ( helperName ) => {
422- let helper = mergedHelpers [ helperName ] ;
414+ function addHelpers ( mergedHelpers , helpers , container ) {
415+ if ( ! helpers ) return ;
416+ Object . keys ( helpers ) . forEach ( ( helperName ) => {
417+ let helper = helpers [ helperName ] ;
423418 mergedHelpers [ helperName ] = passLookupPropertyOption ( helper , container ) ;
424419 } ) ;
425420}
426421
427422function passLookupPropertyOption ( helper , container ) {
428423 const lookupProperty = container . lookupProperty ;
429424 return wrapHelper ( helper , ( options ) => {
430- return Utils . extend ( { lookupProperty } , options ) ;
425+ options . lookupProperty = lookupProperty ;
426+ return options ;
431427 } ) ;
432428}
0 commit comments