Sha256: 937cef21361531b503e837eb5077a6a7a26e70e7a41efac99d4a935326a82b28
Contents?: true
Size: 1.26 KB
Versions: 62
Compression:
Stored size: 1.26 KB
Contents
/* */ var $ = require('./$'), $def = require('./$.def'), aFunction = require('./$.a-function'), anObject = require('./$.an-object'), isObject = require('./$.is-object'), bind = Function.bind || require('./$.core').Function.prototype.bind; $def($def.S + $def.F * require('./$.fails')(function() { function F() {} return !(Reflect.construct(function() {}, [], F) instanceof F); }), 'Reflect', {construct: function construct(Target, args) { aFunction(Target); if (arguments.length < 3) { if (args != undefined) switch (anObject(args).length) { case 0: return new Target; case 1: return new Target(args[0]); case 2: return new Target(args[0], args[1]); case 3: return new Target(args[0], args[1], args[2]); case 4: return new Target(args[0], args[1], args[2], args[3]); } var $args = [null]; $args.push.apply($args, args); return new (bind.apply(Target, $args)); } var proto = aFunction(arguments[2]).prototype, instance = $.create(isObject(proto) ? proto : Object.prototype), result = Function.apply.call(Target, instance, args); return isObject(result) ? result : instance; }});
Version data entries
62 entries across 31 versions & 1 rubygems