@@ -71,25 +71,18 @@ export function template(templateSpec, env) {
71
71
}
72
72
partial = env . VM . resolvePartial . call ( this , partial , context , options ) ;
73
73
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 ) ;
85
78
86
79
if ( result == null && env . compile ) {
87
80
options . partials [ options . name ] = env . compile (
88
81
partial ,
89
82
templateSpec . compilerOptions ,
90
83
env
91
84
) ;
92
- result = options . partials [ options . name ] ( context , extendedOptions ) ;
85
+ result = options . partials [ options . name ] ( context , options ) ;
93
86
}
94
87
if ( result != null ) {
95
88
if ( options . indent ) {
@@ -255,8 +248,9 @@ export function template(templateSpec, env) {
255
248
256
249
function _setup ( options ) {
257
250
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 ) ;
260
254
container . helpers = mergedHelpers ;
261
255
262
256
if ( templateSpec . usePartial ) {
@@ -417,16 +411,18 @@ function executeDecorators(fn, prog, container, depths, data, blockParams) {
417
411
return prog ;
418
412
}
419
413
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 ] ;
423
418
mergedHelpers [ helperName ] = passLookupPropertyOption ( helper , container ) ;
424
419
} ) ;
425
420
}
426
421
427
422
function passLookupPropertyOption ( helper , container ) {
428
423
const lookupProperty = container . lookupProperty ;
429
424
return wrapHelper ( helper , ( options ) => {
430
- return Utils . extend ( { lookupProperty } , options ) ;
425
+ options . lookupProperty = lookupProperty ;
426
+ return options ;
431
427
} ) ;
432
428
}
0 commit comments