It took a lot of work to get web workers to work, but web workers finally work!
`transferList` doesn't seem to work, though. It makes the object
inaccessible as expected, but it doesn't seem to affect performance.
Not well-tested yet, especially the web workers.
In addition to web workers, this completely rewrites both
`BackgroundWorker` and `ThreadPool`. It adds thread safety via the
`WorkOutput` object, adds flexibility by making `BackgroundWorker` build
off `ThreadPool`, and exposes an `eventSource` variable that tells
listeners which job dispatched a given event.
This improves the old web worker implementation by reusing the _entire_
JS file. This is slower but ensures that all classes are available,
simplifying the end user experience. Web workers are now forbidden from
using instance functions, which also simplifies things. And finally, the
code attempts to restore the prototypes of all class instances passed
across threads, though this relies on the exact way Haxe generates
JavaScript, and may not work in Haxe 3 or Haxe 5.
Lime requires the `Deque` class to target HashLink, which only
became available in Haxe 4. If you try, Lime should at least let
you know what's wrong.
Closes #1403... at least for now.
This reverts commit 8d1ff873d8.
Revert "Binding fix"
This reverts commit c606ec5139.
Revert "Add support for HL libraries"
This reverts commit 6b49f4d240.
Revert "Minor fixes"
This reverts commit dcacb9f04a.
Revert "Compile fixes"
This reverts commit 3b9e572f8b.
Revert "Sync with Haxe std library (remove some overrides)"
This reverts commit c05061c970.
Revert "Initial support for HL target in tools (for testing)"
This reverts commit 1dadbb725c.