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

  var _req, _req2, _req3, _req4, _req5, _req6, _req7, _req8, _req9, _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) {
      _req7 = _unresolved_7.__cjsMetaURL;
    }, function (_unresolved_8) {
      _req8 = _unresolved_8.__cjsMetaURL;
    }, function (_unresolved_9) {
      _req9 = _unresolved_9.__cjsMetaURL;
    }, function (_unresolved_10) {
      _loader = _unresolved_10.default;
    }],
    execute: function () {
      _loader.define(_context.meta.url, function (exports, _require, module, __filename, __dirname) {
        var require = _loader.createRequireWithReqMap({
          "../internals/function-call": _req,
          "../internals/fix-regexp-well-known-symbol-logic": _req2,
          "../internals/an-object": _req3,
          "../internals/to-length": _req4,
          "../internals/to-string": _req5,
          "../internals/require-object-coercible": _req6,
          "../internals/get-method": _req7,
          "../internals/advance-string-index": _req8,
          "../internals/regexp-exec-abstract": _req9
        }, _require);

        (function () {
          var call = require('../internals/function-call');

          var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');

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

          var toLength = require('../internals/to-length');

          var toString = require('../internals/to-string');

          var requireObjectCoercible = require('../internals/require-object-coercible');

          var getMethod = require('../internals/get-method');

          var advanceStringIndex = require('../internals/advance-string-index');

          var regExpExec = require('../internals/regexp-exec-abstract'); // @@match logic


          fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {
            return [// `String.prototype.match` method
            // https://tc39.es/ecma262/#sec-string.prototype.match
            function match(regexp) {
              var O = requireObjectCoercible(this);
              var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);
              return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));
            }, // `RegExp.prototype[@@match]` method
            // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
            function (string) {
              var rx = anObject(this);
              var S = toString(string);
              var res = maybeCallNative(nativeMatch, rx, S);
              if (res.done) return res.value;
              if (!rx.global) return regExpExec(rx, S);
              var fullUnicode = rx.unicode;
              rx.lastIndex = 0;
              var A = [];
              var n = 0;
              var result;

              while ((result = regExpExec(rx, S)) !== null) {
                var matchStr = toString(result[0]);
                A[n] = matchStr;
                if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
                n++;
              }

              return n === 0 ? null : A;
            }];
          });
        })();

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

      _export("__cjsMetaURL", __cjsMetaURL = _context.meta.url);
    }
  };
});
//# sourceMappingURL=es.string.match.js.map