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

  var _req, _req2, _req3, _req4, _req5, _req6, _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) {
      _req4 = _unresolved_4.__cjsMetaURL;
    }, function (_unresolved_5) {
      _req5 = _unresolved_5.__cjsMetaURL;
    }, function (_unresolved_6) {
      _req6 = _unresolved_6.__cjsMetaURL;
    }, function (_unresolved_7) {
      _loader = _unresolved_7.default;
    }],
    execute: function () {
      _loader.define(_context.meta.url, function (exports, _require, module, __filename, __dirname) {
        var require = _loader.createRequireWithReqMap({
          "../internals/function-uncurry-this": _req,
          "../internals/fails": _req2,
          "../internals/is-callable": _req3,
          "../internals/classof": _req4,
          "../internals/get-built-in": _req5,
          "../internals/inspect-source": _req6
        }, _require);

        (function () {
          var uncurryThis = require('../internals/function-uncurry-this');

          var fails = require('../internals/fails');

          var isCallable = require('../internals/is-callable');

          var classof = require('../internals/classof');

          var getBuiltIn = require('../internals/get-built-in');

          var inspectSource = require('../internals/inspect-source');

          var noop = function noop() {
            /* empty */
          };

          var empty = [];
          var construct = getBuiltIn('Reflect', 'construct');
          var constructorRegExp = /^\s*(?:class|function)\b/;
          var exec = uncurryThis(constructorRegExp.exec);
          var INCORRECT_TO_STRING = !constructorRegExp.exec(noop);

          var isConstructorModern = function isConstructor(argument) {
            if (!isCallable(argument)) return false;

            try {
              construct(noop, empty, argument);
              return true;
            } catch (error) {
              return false;
            }
          };

          var isConstructorLegacy = function isConstructor(argument) {
            if (!isCallable(argument)) return false;

            switch (classof(argument)) {
              case 'AsyncFunction':
              case 'GeneratorFunction':
              case 'AsyncGeneratorFunction':
                return false;
            }

            try {
              // we can't check .prototype since constructors produced by .bind haven't it
              // `Function#toString` throws on some built-it function in some legacy engines
              // (for example, `DOMQuad` and similar in FF41-)
              return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));
            } catch (error) {
              return true;
            }
          };

          isConstructorLegacy.sham = true; // `IsConstructor` abstract operation
          // https://tc39.es/ecma262/#sec-isconstructor

          module.exports = !construct || fails(function () {
            var called;
            return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {
              called = true;
            }) || called;
          }) ? isConstructorLegacy : isConstructorModern;
        })();

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

      _export("__cjsMetaURL", __cjsMetaURL = _context.meta.url);
    }
  };
});
//# sourceMappingURL=is-constructor.js.map