System.register(["__unresolved_0", "__unresolved_1", "__unresolved_2", "__unresolved_3"], function (_export, _context) {
  "use strict";

  var _req, _req2, _req3, _loader, _cjsExports, __cjsMetaURL;

  _export("default", void 0);

  return {
    setters: [function (_unresolved_) {
      _req = _unresolved_.__cjsMetaURL;
    }, function (_unresolved_2) {
      _req2 = _unresolved_2.__cjsMetaURL;
    }, function (_unresolved_3) {
      _req3 = _unresolved_3.__cjsMetaURL;
    }, function (_unresolved_4) {
      _loader = _unresolved_4.default;
    }],
    execute: function () {
      _loader.define(_context.meta.url, function (exports, _require, module, __filename, __dirname) {
        let require = _loader.createRequireWithReqMap({
          "../internals/function-uncurry-this": _req,
          "../internals/an-object": _req2,
          "../internals/a-possible-prototype": _req3
        }, _require);

        (function () {
          /* eslint-disable no-proto -- safe */
          var uncurryThis = require('../internals/function-uncurry-this');

          var anObject = require('../internals/an-object');

          var aPossiblePrototype = require('../internals/a-possible-prototype'); // `Object.setPrototypeOf` method
          // https://tc39.es/ecma262/#sec-object.setprototypeof
          // Works with __proto__ only. Old v8 can't work with null proto objects.
          // eslint-disable-next-line es/no-object-setprototypeof -- safe


          module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
            var CORRECT_SETTER = false;
            var test = {};
            var setter;

            try {
              // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
              setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
              setter(test, []);
              CORRECT_SETTER = test instanceof Array;
            } catch (error) {
              /* empty */
            }

            return function setPrototypeOf(O, proto) {
              anObject(O);
              aPossiblePrototype(proto);
              if (CORRECT_SETTER) setter(O, proto);else O.__proto__ = proto;
              return O;
            };
          }() : undefined);
        })();

        _export("default", _cjsExports = module.exports);
      });

      _export("__cjsMetaURL", __cjsMetaURL = _context.meta.url);
    }
  };
});
//# sourceMappingURL=object-set-prototype-of.js.map