first
This commit is contained in:
40
node_modules/core-js/modules/esnext.string.code-points.js
generated
vendored
Normal file
40
node_modules/core-js/modules/esnext.string.code-points.js
generated
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
'use strict';
|
||||
var $ = require('../internals/export');
|
||||
var createIteratorConstructor = require('../internals/iterator-create-constructor');
|
||||
var createIterResultObject = require('../internals/create-iter-result-object');
|
||||
var requireObjectCoercible = require('../internals/require-object-coercible');
|
||||
var toString = require('../internals/to-string');
|
||||
var InternalStateModule = require('../internals/internal-state');
|
||||
var StringMultibyteModule = require('../internals/string-multibyte');
|
||||
|
||||
var codeAt = StringMultibyteModule.codeAt;
|
||||
var charAt = StringMultibyteModule.charAt;
|
||||
var STRING_ITERATOR = 'String Iterator';
|
||||
var setInternalState = InternalStateModule.set;
|
||||
var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
|
||||
|
||||
// TODO: unify with String#@@iterator
|
||||
var $StringIterator = createIteratorConstructor(function StringIterator(string) {
|
||||
setInternalState(this, {
|
||||
type: STRING_ITERATOR,
|
||||
string: string,
|
||||
index: 0
|
||||
});
|
||||
}, 'String', 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({ codePoint: codeAt(point, 0), position: index }, false);
|
||||
});
|
||||
|
||||
// `String.prototype.codePoints` method
|
||||
// https://github.com/tc39/proposal-string-prototype-codepoints
|
||||
$({ target: 'String', proto: true, forced: true }, {
|
||||
codePoints: function codePoints() {
|
||||
return new $StringIterator(toString(requireObjectCoercible(this)));
|
||||
}
|
||||
});
|
Reference in New Issue
Block a user