UNPKG

newify

Version:

Call function constructors with an array of arguments that spread

28 lines (19 loc) 512 B
module.exports = function(){ 'use strict'; var fns = {} return function(len){ if ( ! fns [len ] ) { var args = [] var i = 0 for (; i < len; i++ ) { args.push( 'a[' + i + ']') } fns[len] = new Function( 'c', 'a', 'return new c(' + args.join(',') + ')' ) } return fns[len] } }()