MCPcopy Index your code
hub / github.com/lutzroeder/netron / _unescape

Method _unescape

source/python.js:3361–3449  ·  view source on GitHub ↗
(token, size)

Source from the content-addressed store, hash-verified

3359 }
3360 }
3361 _unescape(token, size) {
3362 const length = token.length;
3363 const a = new Uint8Array(length);
3364 if (size && size === length) {
3365 for (let p = 0; p < size; p++) {
3366 a[p] = token.charCodeAt(p);
3367 }
3368 return a;
3369 }
3370 let i = 0;
3371 let o = 0;
3372 while (i < length) {
3373 let c = token.charCodeAt(i++);
3374 if (c !== 0x5C || i >= length) {
3375 a[o++] = c;
3376 } else {
3377 c = token.charCodeAt(i++);
3378 switch (c) {
3379 case 0x27: a[o++] = 0x27; break; // '
3380 case 0x5C: a[o++] = 0x5C; break; // \\
3381 case 0x22: a[o++] = 0x22; break; // "
3382 case 0x72: a[o++] = 0x0D; break; // \r
3383 case 0x6E: a[o++] = 0x0A; break; // \n
3384 case 0x74: a[o++] = 0x09; break; // \t
3385 case 0x62: a[o++] = 0x08; break; // \b
3386 case 0x58: // x
3387 case 0x78: { // X
3388 const xsi = i - 1;
3389 const xso = o;
3390 for (let xi = 0; xi < 2; xi++) {
3391 if (i >= length) {
3392 i = xsi;
3393 o = xso;
3394 a[o] = 0x5c;
3395 break;
3396 }
3397 let c = token.charCodeAt(i++);
3398 if (c >= 65 && c <= 70) {
3399 c -= 55;
3400 } else if (c >= 97 && c <= 102) {
3401 c -= 87;
3402 } else if (c >= 48 && c <= 57) {
3403 c -= 48;
3404 } else {
3405 c = -1;
3406 }
3407 if (c === -1) {
3408 i = xsi;
3409 o = xso;
3410 a[o] = 0x5c;
3411 break;
3412 }
3413 a[o] = a[o] << 4 | c;
3414 }
3415 o++;
3416 break;
3417 }
3418 default:

Callers 1

_readMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected