Skip to content

Commit a9975ec

Browse files
committed
Add some optimizations to the synchronous optimizer, I don't think I'll add these guys to the async optimizer... we'll see.
1 parent e52f768 commit a9975ec

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

optimizer.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)