avocado/packages/core/src/fast-apply.js

22 lines
496 B
JavaScript
Raw Normal View History

2020-12-28 21:18:54 -06:00
export default (holder, fn, args) => {
if (holder || args.length > 5) {
return fn.apply(holder, args);
}
if (0 === args.length) {
return fn();
}
if (1 === args.length) {
return fn(args[0]);
}
if (2 === args.length) {
return fn(args[0], args[1]);
}
if (3 === args.length) {
return fn(args[0], args[1], args[2]);
}
if (4 === args.length) {
return fn(args[0], args[1], args[2], args[3]);
}
return fn(args[0], args[1], args[2], args[3], args[4]);
};