first
This commit is contained in:
37
node_modules/core-js/internals/string-multibyte.js
generated
vendored
Normal file
37
node_modules/core-js/internals/string-multibyte.js
generated
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
'use strict';
|
||||
var uncurryThis = require('../internals/function-uncurry-this');
|
||||
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
||||
var toString = require('../internals/to-string');
|
||||
var requireObjectCoercible = require('../internals/require-object-coercible');
|
||||
|
||||
var charAt = uncurryThis(''.charAt);
|
||||
var charCodeAt = uncurryThis(''.charCodeAt);
|
||||
var stringSlice = uncurryThis(''.slice);
|
||||
|
||||
var createMethod = function (CONVERT_TO_STRING) {
|
||||
return function ($this, pos) {
|
||||
var S = toString(requireObjectCoercible($this));
|
||||
var position = toIntegerOrInfinity(pos);
|
||||
var size = S.length;
|
||||
var first, second;
|
||||
if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
|
||||
first = charCodeAt(S, position);
|
||||
return first < 0xD800 || first > 0xDBFF || position + 1 === size
|
||||
|| (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF
|
||||
? CONVERT_TO_STRING
|
||||
? charAt(S, position)
|
||||
: first
|
||||
: CONVERT_TO_STRING
|
||||
? stringSlice(S, position, position + 2)
|
||||
: (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
// `String.prototype.codePointAt` method
|
||||
// https://tc39.es/ecma262/#sec-string.prototype.codepointat
|
||||
codeAt: createMethod(false),
|
||||
// `String.prototype.at` method
|
||||
// https://github.com/mathiasbynens/String.prototype.at
|
||||
charAt: createMethod(true)
|
||||
};
|
Reference in New Issue
Block a user