summaryrefslogtreecommitdiff
path: root/node_modules/webworker-threads/src/worker.ls
diff options
context:
space:
mode:
authoryo mama <pepper@scannerjammer.com>2015-04-04 01:00:59 -0700
committeryo mama <pepper@scannerjammer.com>2015-04-04 01:00:59 -0700
commitc7c22e3db1c826bcfb2bc66651ec480aae0d4ae0 (patch)
tree8546df448afef40d3814d2581f4dacff7cebb87f /node_modules/webworker-threads/src/worker.ls
Diffstat (limited to 'node_modules/webworker-threads/src/worker.ls')
-rw-r--r--node_modules/webworker-threads/src/worker.ls18
1 files changed, 18 insertions, 0 deletions
diff --git a/node_modules/webworker-threads/src/worker.ls b/node_modules/webworker-threads/src/worker.ls
new file mode 100644
index 0000000..4570bbb
--- /dev/null
+++ b/node_modules/webworker-threads/src/worker.ls
@@ -0,0 +1,18 @@
+function Worker () => Threads = this; class
+ (code) ->
+ @thread = t = Threads.create!
+ t.on \message (args) ~> @onmessage? data: args
+ t.on \error (args) ~> @onerror? args
+ t.on \close -> t.destroy!
+ @terminate = -> t.destroy!
+ @add-event-listener = (event, cb) ~>
+ if event is \message
+ @onmessage = cb
+ else
+ t.on event, cb
+ @dispatch-event = (event) -> t.emitSerialized event.type, event
+ @post-message = (data) -> t.emitSerialized \message {data}
+ if typeof code is \function
+ t.eval "(#code)()"
+ else if code?
+ t.load code