diff options
Diffstat (limited to 'index.htm')
-rw-r--r-- | index.htm | 24 |
1 files changed, 16 insertions, 8 deletions
@@ -77,13 +77,19 @@ this.pixels_address = program.exports.js_pixels(); this.frames = new Float32Array(this.memory_buffer, this.sound_buffer_address, program.exports.js_max_num_sound_frames()); - let bytes = new Uint8Array(this.memory_buffer); let title_address = program.exports.js_title(); - let title_len = 0; - while (bytes[title_address + title_len] != 0) - ++title_len; - let title_buffer = new ArrayBuffer(title_len); - new Uint8Array(title_buffer).set(bytes.subarray(title_address, title_address + title_len)); + + let title_buffer; + + if (title_address != 0) { + let bytes = new Uint8Array(this.memory_buffer); + let title_len = 0; + while (bytes[title_address + title_len] != 0) + ++title_len; + let title_buffer = new ArrayBuffer(title_len); + new Uint8Array(title_buffer).set(bytes.subarray(title_address, title_address + title_len)); + } else + title_buffer = undefined; this.port.postMessage({ id : "init", @@ -448,8 +454,10 @@ let message_handlers = { init : (ev) => { - document.title = new TextDecoder("utf8").decode(new Uint8Array(ev.title_buffer)); - sound_ready = true; + if (ev.title_buffer != undefined) + document.title = new TextDecoder("utf8").decode(new Uint8Array(ev.title_buffer)); + + sound_ready = true; window.requestAnimationFrame(animation_frame); }, |