You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					31 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					31 lines
				
				1.3 KiB
			| 
											3 years ago
										 | var getPrototypeOf = require("./getPrototypeOf.js"); | ||
|  | var setPrototypeOf = require("./setPrototypeOf.js"); | ||
|  | var isNativeFunction = require("./isNativeFunction.js"); | ||
|  | var construct = require("./construct.js"); | ||
|  | function _wrapNativeSuper(Class) { | ||
|  |   var _cache = typeof Map === "function" ? new Map() : undefined; | ||
|  |   module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { | ||
|  |     if (Class === null || !isNativeFunction(Class)) return Class; | ||
|  |     if (typeof Class !== "function") { | ||
|  |       throw new TypeError("Super expression must either be null or a function"); | ||
|  |     } | ||
|  |     if (typeof _cache !== "undefined") { | ||
|  |       if (_cache.has(Class)) return _cache.get(Class); | ||
|  |       _cache.set(Class, Wrapper); | ||
|  |     } | ||
|  |     function Wrapper() { | ||
|  |       return construct(Class, arguments, getPrototypeOf(this).constructor); | ||
|  |     } | ||
|  |     Wrapper.prototype = Object.create(Class.prototype, { | ||
|  |       constructor: { | ||
|  |         value: Wrapper, | ||
|  |         enumerable: false, | ||
|  |         writable: true, | ||
|  |         configurable: true | ||
|  |       } | ||
|  |     }); | ||
|  |     return setPrototypeOf(Wrapper, Class); | ||
|  |   }, module.exports.__esModule = true, module.exports["default"] = module.exports; | ||
|  |   return _wrapNativeSuper(Class); | ||
|  | } | ||
|  | module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports; |