.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / modules / es.string.iterator.js
1 'use strict';
2 var charAt = require('../internals/string-multibyte').charAt;
3 var InternalStateModule = require('../internals/internal-state');
4 var defineIterator = require('../internals/define-iterator');
5
6 var STRING_ITERATOR = 'String Iterator';
7 var setInternalState = InternalStateModule.set;
8 var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
9
10 // `String.prototype[@@iterator]` method
11 // https://tc39.es/ecma262/#sec-string.prototype-@@iterator
12 defineIterator(String, 'String', function (iterated) {
13   setInternalState(this, {
14     type: STRING_ITERATOR,
15     string: String(iterated),
16     index: 0
17   });
18 // `%StringIteratorPrototype%.next` method
19 // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next
20 }, function next() {
21   var state = getInternalState(this);
22   var string = state.string;
23   var index = state.index;
24   var point;
25   if (index >= string.length) return { value: undefined, done: true };
26   point = charAt(string, index);
27   state.index += point.length;
28   return { value: point, done: false };
29 });