if( typeof emulator != 'undefined' ){
  // inside worker-thread

  this.listenIndexHTML = () => {
    const file = "dev/browser/html"
    emulator.readFromPipe( file, async (data) => {
      const buf = await emulator.read_file( file )
      const decoder = new TextDecoder('utf-8');
      const html = decoder.decode(buf).replace(/^#!\/bin\/html/,'') // remove leftover shebangs if any
      try{
        this.postMessage({event:'runHTML',data:[html]})
      }catch(e){ 
        console.error(file)
        console.error(e)
      }
    })
  }
    

}else{
  // inside browser-thread
  
  ISOTerminal.addEventListener('emulator-started', function(){
    this.addEventListener('ready', async () => {
      this.worker.listenIndexHTML()
    })
  })
  
  ISOTerminal.prototype.runHTML = function(html){
    let $scene = document.querySelector("a-scene")
    let $root = document.querySelector("a-entity#root")
    if( !$root ){                          
      $root = document.createElement("a-entity")
      $root.id = "root"               
      $scene.appendChild($root)
    }                                                            
    console.log(html)
    $root.innerHTML = html
  }

}