diff options
Diffstat (limited to 'node_modules/utf8-byte-length/browser.js')
| -rw-r--r-- | node_modules/utf8-byte-length/browser.js | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/node_modules/utf8-byte-length/browser.js b/node_modules/utf8-byte-length/browser.js deleted file mode 100644 index a093731..0000000 --- a/node_modules/utf8-byte-length/browser.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -function isHighSurrogate(codePoint) { - return codePoint >= 0xd800 && codePoint <= 0xdbff; -} - -function isLowSurrogate(codePoint) { - return codePoint >= 0xdc00 && codePoint <= 0xdfff; -} - -// Truncate string by size in bytes -module.exports = function getByteLength(string) { - if (typeof string !== "string") { - throw new Error("Input must be string"); - } - - var charLength = string.length; - var byteLength = 0; - var codePoint = null; - var prevCodePoint = null; - for (var i = 0; i < charLength; i++) { - codePoint = string.charCodeAt(i); - // handle 4-byte non-BMP chars - // low surrogate - if (isLowSurrogate(codePoint)) { - // when parsing previous hi-surrogate, 3 is added to byteLength - if (prevCodePoint != null && isHighSurrogate(prevCodePoint)) { - byteLength += 1; - } - else { - byteLength += 3; - } - } - else if (codePoint <= 0x7f ) { - byteLength += 1; - } - else if (codePoint >= 0x80 && codePoint <= 0x7ff) { - byteLength += 2; - } - else if (codePoint >= 0x800 && codePoint <= 0xffff) { - byteLength += 3; - } - prevCodePoint = codePoint; - } - - return byteLength; -}; |
