diff options
| author | Priyansh <[email protected]> | 2020-12-22 17:49:59 +0530 |
|---|---|---|
| committer | Priyansh <[email protected]> | 2020-12-22 17:49:59 +0530 |
| commit | e93da8b04da86773247aadb1cbb1912e4f4526b2 (patch) | |
| tree | eb4ef3203a92ed3dbd2252ddb1ea23bd2d670c98 /node_modules/core-js/modules/esnext.string.at-alternative.js | |
| parent | a5743c293dcb435e4b159a4df791f8955a4110ec (diff) | |
| download | styx-e93da8b04da86773247aadb1cbb1912e4f4526b2.tar.xz styx-e93da8b04da86773247aadb1cbb1912e4f4526b2.zip | |
Rewriting Project
Diffstat (limited to 'node_modules/core-js/modules/esnext.string.at-alternative.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.string.at-alternative.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.string.at-alternative.js b/node_modules/core-js/modules/esnext.string.at-alternative.js new file mode 100644 index 0000000..5158e2e --- /dev/null +++ b/node_modules/core-js/modules/esnext.string.at-alternative.js @@ -0,0 +1,23 @@ +// TODO: disabled by default because of the conflict with another proposal +'use strict'; +var $ = require('../internals/export'); +var requireObjectCoercible = require('../internals/require-object-coercible'); +var toLength = require('../internals/to-length'); +var toInteger = require('../internals/to-integer'); +var fails = require('../internals/fails'); + +var FORCED = fails(function () { + return '𠮷'.at(0) !== '\uD842'; +}); + +// `String.prototype.at` method +// https://github.com/tc39/proposal-relative-indexing-method +$({ target: 'String', proto: true, forced: FORCED }, { + at: function at(index) { + var S = String(requireObjectCoercible(this)); + var len = toLength(S.length); + var relativeIndex = toInteger(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : S.charAt(k); + } +}); |
