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.
		
		
		
		
		
			
		
			
				
					
					
						
							17 lines
						
					
					
						
							693 B
						
					
					
				
			
		
		
	
	
							17 lines
						
					
					
						
							693 B
						
					
					
				var isObject = require('../internals/is-object'); | 
						|
var setPrototypeOf = require('../internals/object-set-prototype-of'); | 
						|
 | 
						|
// makes subclassing work correct for wrapped built-ins | 
						|
module.exports = function ($this, dummy, Wrapper) { | 
						|
  var NewTarget, NewTargetPrototype; | 
						|
  if ( | 
						|
    // it can work only with native `setPrototypeOf` | 
						|
    setPrototypeOf && | 
						|
    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this | 
						|
    typeof (NewTarget = dummy.constructor) == 'function' && | 
						|
    NewTarget !== Wrapper && | 
						|
    isObject(NewTargetPrototype = NewTarget.prototype) && | 
						|
    NewTargetPrototype !== Wrapper.prototype | 
						|
  ) setPrototypeOf($this, NewTargetPrototype); | 
						|
  return $this; | 
						|
};
 | 
						|
 |