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.
		
		
		
		
		
			
		
			
				
					
					
						
							26 lines
						
					
					
						
							906 B
						
					
					
				
			
		
		
	
	
							26 lines
						
					
					
						
							906 B
						
					
					
				| // Works with __proto__ only. Old v8 can't work with null proto objects.
 | |
| /* eslint-disable no-proto */
 | |
| var isObject = require('./_is-object');
 | |
| var anObject = require('./_an-object');
 | |
| var check = function (O, proto) {
 | |
|   anObject(O);
 | |
|   if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
 | |
| };
 | |
| module.exports = {
 | |
|   set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
 | |
|     function (test, buggy, set) {
 | |
|       try {
 | |
|         set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);
 | |
|         set(test, []);
 | |
|         buggy = !(test instanceof Array);
 | |
|       } catch (e) { buggy = true; }
 | |
|       return function setPrototypeOf(O, proto) {
 | |
|         check(O, proto);
 | |
|         if (buggy) O.__proto__ = proto;
 | |
|         else set(O, proto);
 | |
|         return O;
 | |
|       };
 | |
|     }({}, false) : undefined),
 | |
|   check: check
 | |
| };
 |