Sha256: 8091896a95a19cb04ad8dd4793263243f02968cfc4b838862b4aed1d96cbbfa5

Contents?: true

Size: 1.12 KB

Versions: 25

Compression:

Stored size: 1.12 KB

Contents

var toInteger = require('../internals/to-integer');
var requireObjectCoercible = require('../internals/require-object-coercible');

// `String.prototype.{ codePointAt, at }` methods implementation
var createMethod = function (CONVERT_TO_STRING) {
  return function ($this, pos) {
    var S = String(requireObjectCoercible($this));
    var position = toInteger(pos);
    var size = S.length;
    var first, second;
    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
    first = S.charCodeAt(position);
    return first < 0xD800 || first > 0xDBFF || position + 1 === size
      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
        ? CONVERT_TO_STRING ? S.charAt(position) : first
        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
  };
};

module.exports = {
  // `String.prototype.codePointAt` method
  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
  codeAt: createMethod(false),
  // `String.prototype.at` method
  // https://github.com/mathiasbynens/String.prototype.at
  charAt: createMethod(true)
};

Version data entries

25 entries across 25 versions & 7 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/core-js/internals/string-multibyte.js
disco_app-0.18.0 test/dummy/node_modules/core-js/internals/string-multibyte.js
disco_app-0.18.2 test/dummy/node_modules/core-js/internals/string-multibyte.js
tang-0.2.1 spec/tang_app/node_modules/core-js/internals/string-multibyte.js
tang-0.2.0 spec/tang_app/node_modules/core-js/internals/string-multibyte.js
tang-0.1.0 spec/tang_app/node_modules/core-js/internals/string-multibyte.js
tang-0.0.9 spec/tang_app/node_modules/core-js/internals/string-multibyte.js
enju_library-0.3.8 spec/dummy/node_modules/core-js/internals/string-multibyte.js
condenser-0.3 lib/condenser/processors/node_modules/core-js-pure/internals/string-multibyte.js
condenser-0.2 lib/condenser/processors/node_modules/core-js-pure/internals/string-multibyte.js
condenser-0.1 lib/condenser/processors/node_modules/core-js-pure/internals/string-multibyte.js
condenser-0.0.12 lib/condenser/processors/node_modules/core-js-pure/internals/string-multibyte.js
condenser-0.0.11 lib/condenser/processors/node_modules/core-js-pure/internals/string-multibyte.js
condenser-0.0.10 lib/condenser/processors/node_modules/core-js-pure/internals/string-multibyte.js
condenser-0.0.9 lib/condenser/processors/node_modules/core-js-pure/internals/string-multibyte.js
condenser-0.0.8 lib/condenser/processors/node_modules/core-js-pure/internals/string-multibyte.js
jester-data-8.0.0 node_modules/core-js/internals/string-multibyte.js
ezii-os-5.2.1 node_modules/core-js/internals/string-multibyte.js
ezii-os-2.0.1 node_modules/core-js/internals/string-multibyte.js
ezii-os-1.1.0 node_modules/core-js/internals/string-multibyte.js