UNPKG

core-js

Version:
21 lines (19 loc) 757 B
// Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ var validateSetPrototypeOfArguments = require('../internals/validate-set-prototype-of-arguments'); module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { // eslint-disable-line var correctSetter = false; var test = {}; var setter; try { setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; setter.call(test, []); correctSetter = test instanceof Array; } catch (e) { /* empty */ } return function setPrototypeOf(O, proto) { validateSetPrototypeOfArguments(O, proto); if (correctSetter) setter.call(O, proto); else O.__proto__ = proto; return O; }; }() : undefined);