MCPcopy Create free account
hub / github.com/diffusionstudio/vits-web / UTF8ArrayToString

Function UTF8ArrayToString

src/piper.js:1064–1097  ·  view source on GitHub ↗
(heapOrArray, idx, maxBytesToRead)

Source from the content-addressed store, hash-verified

1062 var noExitRuntime = Module['noExitRuntime'] || true;
1063 var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined;
1064 var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
1065 var endIdx = idx + maxBytesToRead;
1066 var endPtr = idx;
1067 while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;
1068 if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
1069 return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
1070 }
1071 var str = '';
1072 while (idx < endPtr) {
1073 var u0 = heapOrArray[idx++];
1074 if (!(u0 & 128)) {
1075 str += String.fromCharCode(u0);
1076 continue;
1077 }
1078 var u1 = heapOrArray[idx++] & 63;
1079 if ((u0 & 224) == 192) {
1080 str += String.fromCharCode(((u0 & 31) << 6) | u1);
1081 continue;
1082 }
1083 var u2 = heapOrArray[idx++] & 63;
1084 if ((u0 & 240) == 224) {
1085 u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
1086 } else {
1087 u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63);
1088 }
1089 if (u0 < 65536) {
1090 str += String.fromCharCode(u0);
1091 } else {
1092 var ch = u0 - 65536;
1093 str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));
1094 }
1095 }
1096 return str;
1097 };
1098 var UTF8ToString = (ptr, maxBytesToRead) =>
1099 ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';
1100 var ___assert_fail = (condition, filename, line, func) => {

Callers 4

UTF8ToStringFunction · 0.85
put_charFunction · 0.85
fsyncFunction · 0.85
readFileFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected