diff --git a/src/lime/_internal/backend/html5/HTML5Thread.hx b/src/lime/_internal/backend/html5/HTML5Thread.hx
index b4f3d22ba..b14e5cac3 100644
--- a/src/lime/_internal/backend/html5/HTML5Thread.hx
+++ b/src/lime/_internal/backend/html5/HTML5Thread.hx
@@ -55,8 +55,8 @@ class HTML5Thread {
try
{
- job.dispatch();
Lib.global.onmessage = __current.dispatchMessage;
+ job.dispatch();
}
catch (e:Dynamic)
{
@@ -317,7 +317,6 @@ abstract WorkFunction(WorkFunctionData) from Wor
{
if (Context.defined("lime-warn-portability"))
{
- trace(qualifiedFunc);
Context.warning("Value doesn't appear to be a static function.", func.pos);
}
return defaultOutput;
@@ -602,6 +601,6 @@ class Lib
// specification only uses the former.
@:forward
abstract Transferable(Dynamic) #if macro from Dynamic
- #else from js.lib.ArrayBuffer from js.html.MessagePort from js.html.ImageBitmap #end
+ #else from lime.utils.ArrayBuffer from js.html.MessagePort from js.html.ImageBitmap #end
{
}
diff --git a/src/lime/system/BackgroundWorker.hx b/src/lime/system/BackgroundWorker.hx
index 39844e086..cfa741145 100644
--- a/src/lime/system/BackgroundWorker.hx
+++ b/src/lime/system/BackgroundWorker.hx
@@ -36,6 +36,8 @@ abstract BackgroundWorker(ThreadPool)
@:deprecated("Instead pass the callback to BackgroundWorker.run().")
@:noCompletion @:dox(hide) public var doWork(get, never):{ add: (Dynamic->Void) -> Void };
+ public var eventSource(get, never):Dynamic;
+
/**
__Call this only from the main thread.__
@@ -127,6 +129,11 @@ abstract BackgroundWorker(ThreadPool)
// Getters & Setters
+ private inline function get_eventSource():Dynamic
+ {
+ return this.eventSource != null ? this.eventSource.state : null;
+ }
+
private function get_doWork()
{
return {
diff --git a/src/lime/system/ThreadPool.hx b/src/lime/system/ThreadPool.hx
index 88dcdc751..9efa61315 100644
--- a/src/lime/system/ThreadPool.hx
+++ b/src/lime/system/ThreadPool.hx
@@ -330,6 +330,9 @@ class ThreadPool extends WorkOutput
if (job.event == EXIT)
{
+ #if html5
+ Thread.current().destroy();
+ #end
return;
}