Show More
Commit Description:
merge
Commit Description:
merge
References:
File last commit:
Show/Diff file:
Action:
node_modules/core-js/modules/_set-proto.js
| 25 lines
| 906 B
| application/javascript
| JavascriptLexer
|
r789 | // 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 | ||||
}; | ||||