@@ -24,14 +24,19 @@ function getMethod (logic, engine, methodName, above) {
2424
2525 if ( Array . isArray ( args ) ) {
2626 const optimizedArgs = args . map ( l => optimize ( l , engine , above ) )
27+ if ( optimizedArgs . every ( l => typeof l !== 'function' ) ) return ( data , abv ) => called ( optimizedArgs , data , abv || above , engine )
2728 return ( data , abv ) => {
2829 const evaluatedArgs = optimizedArgs . map ( l => typeof l === 'function' ? l ( data , abv ) : l )
2930 return called ( evaluatedArgs , data , abv || above , engine )
3031 }
3132 } else {
32- const optimizedArgs = optimize ( args , engine , above )
33- if ( method . optimizeUnary ) return ( data , abv ) => called ( typeof optimizedArgs === 'function' ? optimizedArgs ( data , abv ) : optimizedArgs , data , abv || above , engine )
34- return ( data , abv ) => called ( coerceArray ( typeof optimizedArgs === 'function' ? optimizedArgs ( data , abv ) : optimizedArgs ) , data , abv || above , engine )
33+ let optimizedArgs = optimize ( args , engine , above )
34+ if ( method . optimizeUnary ) {
35+ if ( typeof optimizedArgs === 'function' ) return ( data , abv ) => called ( optimizedArgs ( data , abv ) , data , abv || above , engine )
36+ return ( data , abv ) => called ( optimizedArgs , data , abv || above , engine )
37+ }
38+ if ( typeof optimizedArgs === 'function' ) return ( data , abv ) => called ( optimizedArgs ( data , abv ) , data , abv || above , engine )
39+ return ( data , abv ) => called ( coerceArray ( optimizedArgs ) , data , abv || above , engine )
3540 }
3641}
3742
0 commit comments