UNPKG

19.6 kBPlain TextView Raw
1{"code":"function defineName$__(cls,name){\n\tObject.defineProperty(cls,\"name\",{value:name,configurable:true});\n};;\nfunction iter$__(a){ let v; return a ? ((v=a.toIterable) ? v.call(a) : a) : a; };\nconst $__init__$ = Symbol.for('#__init__'), $__patch__$ = Symbol.for('#__patch__'), $__initor__$ = Symbol.for('#__initor__'), $__inited__$ = Symbol.for('#__inited__'), $__hooks__$ = Symbol.for('#__hooks__'), $schedule$ = Symbol.for('#schedule'), $frames$ = Symbol.for('#frames'), $interval$ = Symbol.for('#interval'), $stage$ = Symbol.for('#stage'), $scheduled$ = Symbol.for('#scheduled'), $version$ = Symbol.for('#version'), $fps$ = Symbol.for('#fps'), $ticker$ = Symbol.for('#ticker');\n\n/*body*/\n// imba$imbaPath=global\nlet rAF = globalThis.requestAnimationFrame || function(blk) { return globalThis.setTimeout(blk,1000 / 60); };\nlet FPS = 60;\nlet SPF = 1 / 60;\n\n// Scheduler\nclass Scheduled {\n\t[$__patch__$]($$ = {},fields = true){\n\t\tvar $1;\n\t\t($1 = $$.owner) !== undefined && (this.owner = $1);\n\t\t($1 = $$.target) !== undefined && (this.target = $1);\n\t\t($1 = $$.active) !== undefined && (this.active = $1);\n\t\t($1 = $$.value) !== undefined && (this.value = $1);\n\t\t($1 = $$.skip) !== undefined && (this.skip = $1);\n\t\t($1 = $$.last) !== undefined && (this.last = $1);\n\t\t\n\t}\n\tconstructor($$ = null){\n\t\tthis[$__init__$]($$);\n\t}\n\t[$__init__$]($$ = null,deep = true,fields = true){\n\t\tvar $2;\n\t\tthis.owner = ($$ && ($2 = $$.owner) !== undefined) ? ($2) : null;\n\t\tthis.target = ($$ && ($2 = $$.target) !== undefined) ? ($2) : null;\n\t\tthis.active = ($$ && ($2 = $$.active) !== undefined) ? ($2) : false;\n\t\tthis.value = ($$ && ($2 = $$.value) !== undefined) ? ($2) : undefined;\n\t\tthis.skip = ($$ && ($2 = $$.skip) !== undefined) ? ($2) : 0;\n\t\tthis.last = ($$ && ($2 = $$.last) !== undefined) ? ($2) : 0;\n\t\t\n\t}\n\ttick(scheduler,source){\n\t\t\n\t\tthis.last = this.owner[$frames$];\n\t\tthis.target.tick(this,source);\n\t\treturn 1;\n\t}\n\t\n\tupdate(o,activateΦ){\n\t\t\n\t\tlet on = this.active;\n\t\tlet val = o.value;\n\t\tlet changed = this.value != val;\n\t\t\n\t\tif (changed) {\n\t\t\t\n\t\t\tthis.deactivate();\n\t\t\tthis.value = val;\n\t\t};\n\t\t\n\t\tif (this.value || on || activateΦ) {\n\t\t\t\n\t\t\tthis.activate();\n\t\t};\n\t\treturn this;\n\t}\n\t\n\tqueue(){\n\t\t\n\t\tthis.owner.add(this);\n\t\treturn;\n\t}\n\t\n\tactivate(){\n\t\t\n\t\tif (this.value === true) {\n\t\t\t\n\t\t\tthis.owner.on('commit',this);\n\t\t} else if (this.value === false) {\n\t\t\t\n\t\t\ttrue;\n\t\t} else if (typeof this.value == 'number') {\n\t\t\t\n\t\t\t// duration\n\t\t\tlet tock = this.value / (1000 / 60);\n\t\t\tif (tock <= 2) {\n\t\t\t\t\n\t\t\t\t// FIXME everything from 30 to 60 fps is treated as 60fps\n\t\t\t\tthis.owner.on('raf',this);\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis[$interval$] = globalThis.setInterval(this.queue.bind(this),this.value);\n\t\t\t};\n\t\t};\n\t\t\n\t\tthis.active = true;\n\t\treturn this;\n\t}\n\t\n\tdeactivate(){\n\t\t\n\t\tif (this.value === true) {\n\t\t\t\n\t\t\tthis.owner.un('commit',this);\n\t\t};\n\t\tthis.owner.un('raf',this);\n\t\t\n\t\tif (this[$interval$]) {\n\t\t\t\n\t\t\tglobalThis.clearInterval(this[$interval$]);\n\t\t\tthis[$interval$] = null;\n\t\t};\n\t\t\n\t\tthis.active = false;\n\t\treturn this;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Scheduled');}\n};\n\nexport class Scheduler {\n\t\n\tconstructor(){\n\t\tvar self = this;\n\t\t\n\t\tthis.id = Symbol();\n\t\tthis.queue = [];\n\t\tthis.stage = -1;\n\t\tthis[$stage$] = -1;\n\t\tthis[$frames$] = 0;\n\t\tthis[$scheduled$] = false;\n\t\tthis[$version$] = 0;\n\t\t\n\t\tthis.listeners = {};\n\t\tthis.intervals = {};\n\t\tthis.commit = function() {\n\t\t\t\n\t\t\tself.add('commit');\n\t\t\treturn self;\n\t\t};\n\t\t\n\t\tthis[$fps$] = 0;\n\t\t\n\t\tthis.$promise = null;\n\t\tthis.$resolve = null;\n\t\tthis[$ticker$] = function(e) {\n\t\t\t\n\t\t\tself[$scheduled$] = false;\n\t\t\treturn self.tick(e);\n\t\t};\n\t\tthis;\n\t}\n\t\n\ttouch(){\n\t\t\n\t\treturn this[$version$]++;\n\t}\n\t\n\tget version(){\n\t\t\n\t\treturn this[$version$];\n\t}\n\t\n\tadd(item,force){\n\t\t\n\t\tif (force || this.queue.indexOf(item) == -1) {\n\t\t\t\n\t\t\tthis.queue.push(item);\n\t\t};\n\t\t\n\t\tif (!this[$scheduled$]) { this[$schedule$]() };\n\t\treturn this;\n\t}\n\t\n\tget committingΦ(){\n\t\t\n\t\treturn this.queue.indexOf('commit') >= 0;\n\t}\n\t\n\tget syncingΦ(){\n\t\t\n\t\treturn this[$stage$] == 1;\n\t}\n\t\n\tlisten(ns,item){\n\t\t\n\t\tlet set = this.listeners[ns];\n\t\tlet first = !(set);\n\t\tset ||= (this.listeners[ns] = new Set);\n\t\tset.add(item);\n\t\t\n\t\tif (ns == 'raf' && first) { this.add('raf') };\n\t\treturn this;\n\t}\n\t\n\tunlisten(ns,item){\n\t\tvar $3;\n\t\t\n\t\tlet set = this.listeners[ns];\n\t\tset && set.delete(item);\n\t\tif (ns == 'raf' && set && set.size == 0) {\n\t\t\t\n\t\t\t((($3 = this.listeners.raf),delete this.listeners.raf, $3));\n\t\t};\n\t\treturn this;\n\t}\n\t\n\ton(ns,item){\n\t\t\n\t\treturn this.listen(ns,item);\n\t}\n\t\n\tun(ns,item){\n\t\t\n\t\treturn this.unlisten(ns,item);\n\t}\n\t\n\tget promise(){\n\t\tvar self = this;\n\t\t\n\t\treturn this.$promise ||= new Promise(function(resolve) {\n\t\t\t\n\t\t\treturn self.$resolve = resolve;\n\t\t});\n\t}\n\t\n\ttick(timestamp){\n\t\tvar self = this;\n\t\t\n\t\tlet items = this.queue;\n\t\tlet frame = this[$frames$]++;\n\t\tif (!(this.ts)) { this.ts = timestamp };\n\t\tthis.dt = timestamp - this.ts;\n\t\tthis.ts = timestamp;\n\t\tthis.queue = [];\n\t\tthis[$stage$] = 1;\n\t\tthis[$version$]++;\n\t\t\n\t\t// calculate frames elapsed since last tick etc?\n\t\t\n\t\tif (items.length) {\n\t\t\t\n\t\t\tfor (let i = 0, $4 = iter$__(items), $5 = $4.length; i < $5; i++) {\n\t\t\t\tlet item = $4[i];\n\t\t\t\tif (typeof item === 'string' && this.listeners[item]) {\n\t\t\t\t\t\n\t\t\t\t\tthis.listeners[item].forEach(function(listener) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (listener.tick instanceof Function) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn listener.tick(self,item);\n\t\t\t\t\t\t} else if (listener instanceof Function) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn listener(self,item);\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t} else if (item instanceof Function) {\n\t\t\t\t\t\n\t\t\t\t\titem(this.dt,this);\n\t\t\t\t} else if (item.tick) {\n\t\t\t\t\t\n\t\t\t\t\titem.tick(this.dt,this);\n\t\t\t\t};\n\t\t\t};\n\t\t};\n\t\t\n\t\tthis[$stage$] = this[$scheduled$] ? 0 : -1;\n\t\t\n\t\tif (this.$promise) {\n\t\t\t\n\t\t\tthis.$resolve(this);\n\t\t\tthis.$promise = this.$resolve = null;\n\t\t};\n\t\t\n\t\tif (this.listeners.raf && true) {\n\t\t\t\n\t\t\tthis.add('raf');\n\t\t};\n\t\treturn this;\n\t}\n\t\n\t[$schedule$](){\n\t\t\n\t\tif (!this[$scheduled$]) {\n\t\t\t\n\t\t\tthis[$scheduled$] = true;\n\t\t\tif (this[$stage$] == -1) { this[$stage$] = 0 };\n\t\t\trAF(this[$ticker$]);\n\t\t};\n\t\treturn this;\n\t}\n\t\n\tschedule(item,o){\n\t\t\n\t\to ||= (item[this.id] ||= {value: true});\n\t\tlet state = o[this.id] ||= new Scheduled({owner: this,target: item});\n\t\treturn state.update(o,true);\n\t}\n\t\n\tunschedule(item,o = {}){\n\t\t\n\t\to ||= item[this.id];\n\t\tlet state = o && o[this.id];\n\t\tif (state && state.active) {\n\t\t\t\n\t\t\tstate.deactivate();\n\t\t};\n\t\treturn this;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Scheduler');}\n};\n\nexport const scheduler = new Scheduler;\n\nexport function commit(){\n\t\n\treturn scheduler.add('commit').promise;\n};\n\nexport function setTimeout(fn,ms){\n\t\n\treturn globalThis.setTimeout(function() {\n\t\t\n\t\tfn();\n\t\tcommit();\n\t\treturn;\n\t},ms);\n};\n\nexport function setInterval(fn,ms){\n\t\n\treturn globalThis.setInterval(function() {\n\t\t\n\t\tfn();\n\t\tcommit();\n\t\treturn;\n\t},ms);\n};\n\nexport const clearInterval = globalThis.clearInterval;\nexport const clearTimeout = globalThis.clearTimeout;\n\nlet instance = globalThis.imba ||= {};\ninstance.commit = commit;\ninstance.setTimeout = setTimeout;\ninstance.setInterval = setInterval;\ninstance.clearInterval = clearInterval;\ninstance.clearTimeout = clearTimeout;\n","map":{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["/Users/abdellah/workspace/scrimba/imba/packages/imba/src/imba/scheduler.imba"],"sourcesContent":["# imba$imbaPath=global\nlet rAF = global.requestAnimationFrame || (do(blk) global.setTimeout(blk,1000 / 60))\nlet FPS = 60\nlet SPF = 1 / 60\n\n# Scheduler\nclass Scheduled\n\towner = null\n\ttarget = null\n\tactive = no\n\tvalue = undefined\n\tskip = 0\n\tlast = 0\n\n\tdef tick scheduler, source\n\t\tlast = owner.#frames\n\t\ttarget.tick(self, source)\n\t\t1\n\n\tdef update o, activate?\n\t\tlet on = active\n\t\tlet val = o.value\n\t\tlet changed = value != val\n\n\t\tif changed\n\t\t\tdeactivate!\n\t\t\tvalue = val\n\n\t\tif value or on or activate?\n\t\t\tactivate!\n\t\tself\n\n\tdef queue\n\t\towner.add(self)\n\t\treturn\n\n\tdef activate\n\t\tif value === yes\n\t\t\towner.on('commit',self)\n\t\telif value === no\n\t\t\tyes\n\t\telif typeof value == 'number'\n\t\t\t# duration\n\t\t\tlet tock = value / (1000 / 60)\n\t\t\tif tock <= 2\n\t\t\t\t# FIXME everything from 30 to 60 fps is treated as 60fps\n\t\t\t\towner.on('raf',self)\n\t\t\telse\n\t\t\t\t#interval = global.setInterval(queue.bind(self),value)\n\n\t\tactive = yes\n\t\tself\n\n\tdef deactivate\n\t\tif value === yes\n\t\t\towner.un('commit',self)\n\t\towner.un('raf',self)\n\n\t\tif #interval\n\t\t\tglobal.clearInterval(#interval)\n\t\t\t#interval = null\n\n\t\tactive = no\n\t\tself\n\nexport class Scheduler\n\tdef constructor\n\t\tid = Symbol!\n\t\tself.queue = []\n\t\tself.stage = -1\n\t\t#stage = -1\n\t\t#frames = 0\n\t\t#scheduled = no\n\t\t#version = 0\n\n\t\tself.listeners = {}\n\t\tself.intervals = {}\n\t\tself.commit = do\n\t\t\tadd('commit')\n\t\t\treturn self\n\n\t\t#fps = 0\n\n\t\t$promise = null\n\t\t$resolve = null\n\t\t#ticker = do(e)\n\t\t\t#scheduled = no\n\t\t\tself.tick(e)\n\t\tself\n\n\tdef touch\n\t\t#version++\n\n\tget version\n\t\t#version\n\n\tdef add item, force\n\t\tif force or self.queue.indexOf(item) == -1\n\t\t\tself.queue.push(item)\n\n\t\t#schedule! unless #scheduled\n\t\treturn self\n\n\tget committing?\n\t\tself.queue.indexOf('commit') >= 0\n\n\tget syncing?\n\t\t#stage == 1\n\n\tdef listen ns, item\n\t\tlet set = listeners[ns]\n\t\tlet first = !set\n\t\tset ||= listeners[ns] = new Set\n\t\tset.add(item)\n\n\t\tadd('raf') if ns == 'raf' and first\n\t\tself\t\n\n\tdef unlisten ns, item\n\t\tlet set = listeners[ns]\n\t\tset && set.delete(item)\n\t\tif ns == 'raf' and set and set.size == 0\n\t\t\tdelete listeners.raf\n\t\tself\n\n\tdef on ns,item\n\t\tlisten(ns,item)\n\n\tdef un ns,item\n\t\tunlisten(ns,item)\n\n\tget promise\n\t\t$promise ||= new Promise do(resolve)\n\t\t\t$resolve = resolve\n\n\tdef tick timestamp\n\t\tlet items = self.queue\n\t\tlet frame = #frames++\n\t\tself.ts = timestamp unless self.ts\n\t\tself.dt = timestamp - self.ts\n\t\tself.ts = timestamp\n\t\tself.queue = []\n\t\t#stage = 1\n\t\t#version++\n\n\t\t# calculate frames elapsed since last tick etc?\n\n\t\tif items.length\n\t\t\tfor item,i in items\n\t\t\t\tif typeof item === 'string' && listeners[item]\n\t\t\t\t\tlisteners[item].forEach do(listener)\n\t\t\t\t\t\tif listener.tick isa Function\n\t\t\t\t\t\t\tlistener.tick(self,item)\n\t\t\t\t\t\telif listener isa Function\n\t\t\t\t\t\t\tlistener(self,item)\n\t\t\t\telif item isa Function\n\t\t\t\t\titem(self.dt,self)\n\t\t\t\telif item.tick\n\t\t\t\t\titem.tick(self.dt,self)\n\n\t\t#stage = #scheduled ? 0 : -1\n\n\t\tif $promise\n\t\t\t$resolve(self)\n\t\t\t$promise = $resolve = null\n\n\t\tif listeners.raf and true\n\t\t\tadd('raf')\n\t\tself\n\n\tdef #schedule\n\t\tif !#scheduled\n\t\t\t#scheduled = yes\n\t\t\t#stage = 0 if #stage == -1\n\t\t\trAF(#ticker)\n\t\tself\n\n\tdef schedule item, o\n\t\to ||= (item[id] ||= {value: yes})\n\t\tlet state = o[id] ||= new Scheduled(owner: self, target: item)\n\t\tstate.update(o,yes)\n\n\tdef unschedule item, o = {}\n\t\to ||= item[id]\n\t\tlet state = o and o[id]\n\t\tif state and state.active\n\t\t\tstate.deactivate!\n\t\tself\n\nexport const scheduler = new Scheduler\n\nexport def commit\n\tscheduler.add('commit').promise\n\nexport def setTimeout fn,ms\n\tglobal.setTimeout(&,ms) do\n\t\tfn!\n\t\tcommit!\n\t\treturn\n\nexport def setInterval fn,ms\n\tglobal.setInterval(&,ms) do\n\t\tfn!\n\t\tcommit!\n\t\treturn\n\nexport const clearInterval = global.clearInterval\nexport const clearTimeout = global.clearTimeout\n\nlet instance = global.imba ||= {}\ninstance.commit = commit\ninstance.setTimeout = setTimeout\ninstance.setInterval = setInterval\ninstance.clearInterval = clearInterval\ninstance.clearTimeout = clearTimeout\n"],"names":[],"mappings":"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"},"dependencies":[],"meta":{"vite":{"lang":"js"}}}
\No newline at end of file