'use strict';

var _commonjsHelpers = require('./_commonjsHelpers-06173234.js');
var core_getIteratorMethod = require('./core.get-iterator-method-5643aa10.js');
var _objectSap = require('./_object-sap-d1978572.js');
var defineProperty = require('./define-property-e8404b64.js');
var _typeof = require('./typeof-567e31ff.js');

// 19.1.2.9 Object.getPrototypeOf(O)



_objectSap._objectSap('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return core_getIteratorMethod._objectGpo(core_getIteratorMethod._toObject(it));
  };
});

var getPrototypeOf$1 = core_getIteratorMethod._core.Object.getPrototypeOf;

var getPrototypeOf = _commonjsHelpers.createCommonjsModule(function (module) {
module.exports = { "default": getPrototypeOf$1, __esModule: true };
});

var _Object$getPrototypeOf = _commonjsHelpers.unwrapExports(getPrototypeOf);

var classCallCheck = _commonjsHelpers.createCommonjsModule(function (module, exports) {

exports.__esModule = true;

exports.default = function (instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
};
});

var _classCallCheck = _commonjsHelpers.unwrapExports(classCallCheck);

var createClass = _commonjsHelpers.createCommonjsModule(function (module, exports) {

exports.__esModule = true;



var _defineProperty2 = _interopRequireDefault(defineProperty.defineProperty);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      (0, _defineProperty2.default)(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
});

var _createClass = _commonjsHelpers.unwrapExports(createClass);

var possibleConstructorReturn = _commonjsHelpers.createCommonjsModule(function (module, exports) {

exports.__esModule = true;



var _typeof3 = _interopRequireDefault(_typeof._typeof_1);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = function (self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
};
});

var _possibleConstructorReturn = _commonjsHelpers.unwrapExports(possibleConstructorReturn);

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */


var check = function (O, proto) {
  core_getIteratorMethod._anObject(O);
  if (!core_getIteratorMethod._isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
var _setProto = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = core_getIteratorMethod._ctx(Function.call, _typeof._objectGopd.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
};

// 19.1.3.19 Object.setPrototypeOf(O, proto)

core_getIteratorMethod._export(core_getIteratorMethod._export.S, 'Object', { setPrototypeOf: _setProto.set });

var setPrototypeOf$1 = core_getIteratorMethod._core.Object.setPrototypeOf;

var setPrototypeOf = _commonjsHelpers.createCommonjsModule(function (module) {
module.exports = { "default": setPrototypeOf$1, __esModule: true };
});

_commonjsHelpers.unwrapExports(setPrototypeOf);

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
core_getIteratorMethod._export(core_getIteratorMethod._export.S, 'Object', { create: core_getIteratorMethod._objectCreate });

var $Object = core_getIteratorMethod._core.Object;
var create$1 = function create(P, D) {
  return $Object.create(P, D);
};

var create = _commonjsHelpers.createCommonjsModule(function (module) {
module.exports = { "default": create$1, __esModule: true };
});

_commonjsHelpers.unwrapExports(create);

var inherits = _commonjsHelpers.createCommonjsModule(function (module, exports) {

exports.__esModule = true;



var _setPrototypeOf2 = _interopRequireDefault(setPrototypeOf);



var _create2 = _interopRequireDefault(create);



var _typeof3 = _interopRequireDefault(_typeof._typeof_1);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = function (subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
  }

  subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
};
});

var _inherits = _commonjsHelpers.unwrapExports(inherits);

exports._Object$getPrototypeOf = _Object$getPrototypeOf;
exports._classCallCheck = _classCallCheck;
exports._createClass = _createClass;
exports._inherits = _inherits;
exports._possibleConstructorReturn = _possibleConstructorReturn;
exports.classCallCheck = classCallCheck;
exports.inherits = inherits;
exports.possibleConstructorReturn = possibleConstructorReturn;
