node-ejs-renderer/node_modules/@jsonjoy.com/util/lib/strings/utf8.js
2024-06-09 13:55:01 -04:00

28 lines
867 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.utf8Size = void 0;
function utf8Size(str) {
const length = str.length;
let size = 0;
let pos = 0;
while (pos < length) {
let value = str.charCodeAt(pos++);
if ((value & 0xffffff80) === 0) {
size++;
continue;
}
else if ((value & 0xfffff800) === 0)
size += 2;
else {
if (value >= 0xd800 && value <= 0xdbff && pos < length) {
const extra = str.charCodeAt(pos);
if ((extra & 0xfc00) === 0xdc00)
value = (pos++, ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);
}
size += 3 + +((value & 0xffff0000) !== 0);
}
}
return size;
}
exports.utf8Size = utf8Size;
//# sourceMappingURL=utf8.js.map