{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-livelyenergy/src/worker/systemjs-worker.js"],"names":["workers","SystemjsWorker","Set","constructor","url","metaworker","Worker","loaded","Promise","resolve","onmessage","evt","msg","data","console","log","message","lively","error","value","postMessage","add","terminate","delete"],"mappings":";;;;;;;;AAAA;;AAEO,UAAIA,2DAAJ;;;;;;;;;;;;;;;;;;AAEQ,YAAMC,cAAN,CAAqB;;AAElC,mBAAWD,OAAX,GAAqB;AACnB,cAAI,CAACA,OAAL,EAAc,oDAAU,IAAIE,GAAJ,EAAV;AACd,iBAAOF,OAAP;AACD;;AAEDG,oBAAYC,GAAZ,EAAiB;AACf,eAAKC,UAAL,GAAkB,IAAIC,MAAJ,CAAW,2BAAX,CAAlB;AACA;AACA,eAAKC,MAAL,GAAc,IAAIC,OAAJ,CAAYC,WAAW;AACnC,iBAAKJ,UAAL,CAAgBK,SAAhB,GAA6BC,GAAD,IAAS;AACnC,kBAAIC,MAAMD,IAAIE,IAAd;AACAC,sBAAQC,GAAR,CAAY,qBAAZ,EAAmCH,GAAnC;AACA,kBAAIA,IAAII,OAAJ,IAAe,OAAnB,EAA4B;AAC1BC,uBAAOC,KAAP,CAAa,mBAAb,EAAkCN,IAAIM,KAAJ,IAAaN,IAAIO,KAAnD;AACD;AACD,kBAAIP,IAAII,OAAJ,IAAe,QAAnB,EAA6B;AAC3BF,wBAAQC,GAAR,CAAY,eAAZ,EAA6BX,GAA7B;AACA,qBAAKC,UAAL,CAAgBK,SAAhB,GAA6BE,GAAD,IAAS;AACnCE,0BAAQC,GAAR,CAAY,eAAZ;AACA,uBAAKL,SAAL,CAAeE,GAAf;AACD,iBAHD;AAIAH,wBAAU;AAAV;AACD;AACF,aAdD;AAeD,WAhBa,CAAd;AAiBA,eAAKJ,UAAL,CAAgBe,WAAhB,CAA4B,EAACJ,SAAS,MAAV,EAAkBZ,KAAKA,GAAvB,EAA5B;AACAH,yBAAeD,OAAf,CAAuBqB,GAAvB,CAA2B,IAA3B;AACD;;AAEDX,kBAAUC,GAAV,EAAe;AACb;AACD;;AAEDW,oBAAY;AACV,eAAKjB,UAAL,CAAgBiB,SAAhB;AACArB,yBAAeD,OAAf,CAAuBuB,MAAvB,CAA8B,IAA9B;AACD;;AAED,cAAMH,WAAN,CAAkBR,GAAlB,EAAuB;AACrB,gBAAM,KAAKL,MAAX;AACA,eAAKF,UAAL,CAAgBe,WAAhB,CAA4BR,GAA5B;AACD;;AA3CiC;;yBAAfX,c","file":"systemjs-worker.js","sourcesContent":["/* client side worker loading with SystemJS modules...*/\n\nexport var workers\n\nexport default class SystemjsWorker {  \n  \n  static get workers() {\n    if (!workers) workers = new Set()\n    return workers\n  }\n  \n  constructor(url) {\n    this.metaworker = new Worker(\"src/worker/meta-worker.js\");  \n    // bootstrap onmessage\n    this.loaded = new Promise(resolve => {\n      this.metaworker.onmessage = (evt) => {\n        var msg = evt.data\n        console.log(\"bootstrap onmessage\", msg)\n        if (msg.message == \"error\") {\n          lively.error(\"[systemjs-worker]\", msg.error || msg.value)\n        }\n        if (msg.message == \"loaded\") {\n          console.log(\"worker loaded\", url)\n          this.metaworker.onmessage = (msg) => {\n            console.log(\"new onmessage\")\n            this.onmessage(msg)\n          }\n          resolve() // worker should accept postMessages now...\n        }\n      }      \n    })\n    this.metaworker.postMessage({message: \"load\", url: url})\n    SystemjsWorker.workers.add(this)\n  }\n  \n  onmessage(evt) {\n    // do nothing\n  }\n\n  terminate() {\n    this.metaworker.terminate()\n    SystemjsWorker.workers.delete(this)\n  }\n  \n  async postMessage(msg) {\n    await this.loaded\n    this.metaworker.postMessage(msg)\n  }\n\n}"]}