23 lines
393 B
Plaintext
23 lines
393 B
Plaintext
/* fn.cm - function utilities */
|
|
|
|
var _apply = Function.prototype.apply
|
|
var _isArray = Array.isArray
|
|
|
|
var fn = {}
|
|
|
|
fn.apply = function(func, args) {
|
|
if (typeof func != 'function') return func
|
|
|
|
if (!_isArray(args)) {
|
|
args = [args]
|
|
}
|
|
|
|
if (args.length > func.length) {
|
|
throw new Error("fn.apply: too many arguments")
|
|
}
|
|
|
|
return _apply.call(func, null, args)
|
|
}
|
|
|
|
return fn
|