MCPcopy Create free account
hub / github.com/Exrick/xpay / createCtorWrapper

Function createCtorWrapper

xpay-code/src/main/resources/static/swagger/swagger-ui.js:15885–15908  ·  view source on GitHub ↗

* Creates a function that produces an instance of `Ctor` regardless of * whether it was invoked as part of a `new` expression or by `call` or `apply`. * * @private * @param {Function} Ctor The constructor to wrap. * @returns {Function} Returns the new wrapped function.

(Ctor)

Source from the content-addressed store, hash-verified

15883 * @returns {Function} Returns the new wrapped function.
15884 */
15885function createCtorWrapper(Ctor) {
15886 return function() {
15887 // Use a `switch` statement to work with class constructors.
15888 // See http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
15889 // for more details.
15890 var args = arguments;
15891 switch (args.length) {
15892 case 0: return new Ctor;
15893 case 1: return new Ctor(args[0]);
15894 case 2: return new Ctor(args[0], args[1]);
15895 case 3: return new Ctor(args[0], args[1], args[2]);
15896 case 4: return new Ctor(args[0], args[1], args[2], args[3]);
15897 case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);
15898 case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
15899 case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
15900 }
15901 var thisBinding = baseCreate(Ctor.prototype),
15902 result = Ctor.apply(thisBinding, args);
15903
15904 // Mimic the constructor's `return` behavior.
15905 // See https://es5.github.io/#x13.2.2 for more details.
15906 return isObject(result) ? result : thisBinding;
15907 };
15908}
15909
15910module.exports = createCtorWrapper;
15911

Callers 4

createBindWrapperFunction · 0.85
createHybridWrapperFunction · 0.85
wrapperFunction · 0.85
createPartialWrapperFunction · 0.85

Calls 1

isObjectFunction · 0.85

Tested by

no test coverage detected