12345678910111213141516171819202122232425 |
- 'use strict';
- var reflectSetProto = require('./Reflect.setPrototypeOf');
- var originalSetProto = require('./Object.setPrototypeOf');
- var setDunderProto = require('dunder-proto/set');
- var $TypeError = require('es-errors/type');
- /** @type {import('.')} */
- module.exports = reflectSetProto
- ? function setProto(O, proto) {
- // @ts-expect-error TS can't narrow inside a closure, for some reason
- if (reflectSetProto(O, proto)) {
- return O;
- }
- throw new $TypeError('Reflect.setPrototypeOf: failed to set [[Prototype]]');
- }
- : originalSetProto || (
- setDunderProto ? function setProto(O, proto) {
- // @ts-expect-error TS can't narrow inside a closure, for some reason
- setDunderProto(O, proto);
- return O;
- } : null
- );
|