source: trip-planner-front/node_modules/core-js/internals/string-multibyte.js

Last change on this file was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 1.2 KB
RevLine 
[6a3a178]1var toInteger = require('../internals/to-integer');
2var toString = require('../internals/to-string');
3var requireObjectCoercible = require('../internals/require-object-coercible');
4
5// `String.prototype.codePointAt` methods implementation
6var createMethod = function (CONVERT_TO_STRING) {
7 return function ($this, pos) {
8 var S = toString(requireObjectCoercible($this));
9 var position = toInteger(pos);
10 var size = S.length;
11 var first, second;
12 if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
13 first = S.charCodeAt(position);
14 return first < 0xD800 || first > 0xDBFF || position + 1 === size
15 || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
16 ? CONVERT_TO_STRING ? S.charAt(position) : first
17 : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
18 };
19};
20
21module.exports = {
22 // `String.prototype.codePointAt` method
23 // https://tc39.es/ecma262/#sec-string.prototype.codepointat
24 codeAt: createMethod(false),
25 // `String.prototype.at` method
26 // https://github.com/mathiasbynens/String.prototype.at
27 charAt: createMethod(true)
28};
Note: See TracBrowser for help on using the repository browser.