diff --git a/web/worker/cdimage.ts b/web/worker/cdimage.ts index 8a37d0c..ac8e29f 100644 --- a/web/worker/cdimage.ts +++ b/web/worker/cdimage.ts @@ -1,3 +1,5 @@ +importScripts('text-decoder.js'); + class ISO9660FileSystem { private pvd: PVD; diff --git a/web/worker/text-decoder.ts b/web/worker/text-decoder.ts new file mode 100644 index 0000000..c39a0a0 --- /dev/null +++ b/web/worker/text-decoder.ts @@ -0,0 +1,18 @@ +class FallbackTextDecoder { + constructor(utfLabel?: string) {} + + decode(buffer: DataView): string { + var out = ''; + for (var i = 0; i < buffer.byteLength; i++) { + let c = buffer.getUint8(i); + if (c < 128) + out += String.fromCharCode(c); + else + out += '%' + c.toString(16); + } + return out; + } +} + +if (!(self).TextDecoder) + (self).TextDecoder = FallbackTextDecoder;