first
This commit is contained in:
31
node_modules/core-js/modules/es.string.iterator.js
generated
vendored
Normal file
31
node_modules/core-js/modules/es.string.iterator.js
generated
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
'use strict';
|
||||
var charAt = require('../internals/string-multibyte').charAt;
|
||||
var toString = require('../internals/to-string');
|
||||
var InternalStateModule = require('../internals/internal-state');
|
||||
var defineIterator = require('../internals/iterator-define');
|
||||
var createIterResultObject = require('../internals/create-iter-result-object');
|
||||
|
||||
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 createIterResultObject(undefined, true);
|
||||
point = charAt(string, index);
|
||||
state.index += point.length;
|
||||
return createIterResultObject(point, false);
|
||||
});
|
Reference in New Issue
Block a user