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

  var _req, _req2, _req3, _req4, _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) {
      _loader = _unresolved_5.default;
    }],
    execute: function () {
      _loader.define(_context.meta.url, function (exports, _require, module, __filename, __dirname) {
        let require = _loader.createRequireWithReqMap({
          "../internals/string-multibyte": _req,
          "../internals/to-string": _req2,
          "../internals/internal-state": _req3,
          "../internals/define-iterator": _req4
        }, _require);

        (function () {
          var charAt = require('../internals/string-multibyte').charAt;

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

          var InternalStateModule = require('../internals/internal-state');

          var defineIterator = require('../internals/define-iterator');

          var STRING_ITERATOR = 'String Iterator';
          var setInternalState = InternalStateModule.set;
          var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); // `String.prototype[@@iterator]` method
          // https://tc39.es/ecma262/#sec-string.prototype-@@iterator

          defineIterator(String, 'String', function (iterated) {
            setInternalState(this, {
              type: STRING_ITERATOR,
              string: toString(iterated),
              index: 0
            }); // `%StringIteratorPrototype%.next` method
            // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next
          }, function next() {
            var state = getInternalState(this);
            var string = state.string;
            var index = state.index;
            var point;
            if (index >= string.length) return {
              value: undefined,
              done: true
            };
            point = charAt(string, index);
            state.index += point.length;
            return {
              value: point,
              done: false
            };
          });
        })();

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

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