e8808318f8951048155e2a146e4210a47470e06dff318685af16545a92048b2705583422eb047b920b32eda632bb73eef1217bfcd7588770ca93a73ed28da9 733 B

12345678910111213141516171819202122232425
  1. 'use strict';
  2. var reflectSetProto = require('./Reflect.setPrototypeOf');
  3. var originalSetProto = require('./Object.setPrototypeOf');
  4. var setDunderProto = require('dunder-proto/set');
  5. var $TypeError = require('es-errors/type');
  6. /** @type {import('.')} */
  7. module.exports = reflectSetProto
  8. ? function setProto(O, proto) {
  9. // @ts-expect-error TS can't narrow inside a closure, for some reason
  10. if (reflectSetProto(O, proto)) {
  11. return O;
  12. }
  13. throw new $TypeError('Reflect.setPrototypeOf: failed to set [[Prototype]]');
  14. }
  15. : originalSetProto || (
  16. setDunderProto ? function setProto(O, proto) {
  17. // @ts-expect-error TS can't narrow inside a closure, for some reason
  18. setDunderProto(O, proto);
  19. return O;
  20. } : null
  21. );