Sha256: 4a84fe0de13660a11bc7f0e2ccdb5611e6767e0f40b20a16c335db7316cf369f

Contents?: true

Size: 700 Bytes

Versions: 155

Compression:

Stored size: 700 Bytes

Contents

'use strict';

var GetIntrinsic = require('get-intrinsic');

var $TypeError = GetIntrinsic('%TypeError%');
var $fromCharCode = GetIntrinsic('%String.fromCharCode%');

var floor = require('./floor');
var modulo = require('./modulo');

var isCodePoint = require('../helpers/isCodePoint');

// https://262.ecma-international.org/7.0/#sec-utf16encoding

module.exports = function UTF16Encoding(cp) {
	if (!isCodePoint(cp)) {
		throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF');
	}
	if (cp <= 65535) {
		return $fromCharCode(cp);
	}
	var cu1 = floor((cp - 65536) / 1024) + 0xD800;
	var cu2 = modulo(cp - 65536, 1024) + 0xDC00;
	return $fromCharCode(cu1) + $fromCharCode(cu2);
};

Version data entries

155 entries across 30 versions & 4 rubygems

Version Path
immosquare-cleaner-0.1.32 node_modules/es-abstract/2020/UTF16Encoding.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2017/UTF16Encoding.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2018/UTF16Encoding.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2019/UTF16Encoding.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2016/UTF16Encoding.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2018/UTF16Encoding.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2019/UTF16Encoding.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2016/UTF16Encoding.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2020/UTF16Encoding.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2017/UTF16Encoding.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2018/UTF16Encoding.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2019/UTF16Encoding.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2016/UTF16Encoding.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2017/UTF16Encoding.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2020/UTF16Encoding.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2019/UTF16Encoding.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2016/UTF16Encoding.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2017/UTF16Encoding.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2020/UTF16Encoding.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2018/UTF16Encoding.js