MCPcopy Create free account
hub / github.com/ZLMediaKit/pymkui / UTF8ArrayToString

Function UTF8ArrayToString

frontend/js/lib/decoder.js:263–298  ·  view source on GitHub ↗
(heapOrArray, idx, maxBytesToRead)

Source from the content-addressed store, hash-verified

261 }
262 var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined;
263 function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {
264 var endIdx = idx + maxBytesToRead;
265 var endPtr = idx;
266 while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;
267 if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
268 return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
269 } else {
270 var str = "";
271 while (idx < endPtr) {
272 var u0 = heapOrArray[idx++];
273 if (!(u0 & 128)) {
274 str += String.fromCharCode(u0);
275 continue;
276 }
277 var u1 = heapOrArray[idx++] & 63;
278 if ((u0 & 224) == 192) {
279 str += String.fromCharCode((u0 & 31) << 6 | u1);
280 continue;
281 }
282 var u2 = heapOrArray[idx++] & 63;
283 if ((u0 & 240) == 224) {
284 u0 = (u0 & 15) << 12 | u1 << 6 | u2;
285 } else {
286 if ((u0 & 248) != 240) warnOnce("Invalid UTF-8 leading byte 0x" + u0.toString(16) + " encountered when deserializing a UTF-8 string in wasm memory to a JS string!");
287 u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
288 }
289 if (u0 < 65536) {
290 str += String.fromCharCode(u0);
291 } else {
292 var ch = u0 - 65536;
293 str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
294 }
295 }
296 }
297 return str;
298 }
299 function UTF8ToString(ptr, maxBytesToRead) {
300 return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
301 }

Callers 3

UTF8ToStringFunction · 0.85
decoder.jsFile · 0.85
_emscripten_logFunction · 0.85

Calls 1

warnOnceFunction · 0.85

Tested by

no test coverage detected