diff --git a/packages/job/src/job_browser.pp b/packages/job/src/job_browser.pp index 6c92028..17e2d24 100644 --- a/packages/job/src/job_browser.pp +++ b/packages/job/src/job_browser.pp @@ -17,9 +17,9 @@ interface uses {$IFDEF FPC_DOTTEDUNITS} - System.SysUtils, System.Types, JSApi.JS, BrowserApi.Web, Wasi.Env, JOB.Shared; + System.SysUtils, System.Types, JSApi.JS, BrowserApi.WebOrWorker, BrowserApi.Web, Wasi.Env, JOB.Shared; {$ELSE} - sysutils, types, js, web, wasienv, JOB_Shared; + sysutils, types, js, weborworker, {$IFNDEF JOB_WORKER} web, {$ELSE} webworker, {$ENDIF} wasienv, JOB_Shared; {$ENDIF} Type @@ -195,13 +195,13 @@ begin FGlobalObjects:=TJSArray.new; FGlobalObjects.push(nil); // allocate FGlobalObjects[0] FGlobalNames:=TJSObject.new; + {$IFNDEF JOB_WORKER} RegisterGlobalObject(document,'document'); RegisterGlobalObject(window,'window'); - RegisterGlobalObject(console,'console'); RegisterGlobalObject(CSS,'CSS'); - {$IFDEF WORKER} RegisterGlobalObject(caches,'caches'); {$ENDIF} + RegisterGlobalObject(console,'console'); RegisterGlobalObject(TJSObject,'Object'); RegisterGlobalObject(TJSFunction,'Function'); RegisterGlobalObject(TJSDate,'Date'); @@ -590,6 +590,11 @@ begin Result:=JOBResult_Object; end; +{$IFDEF JOB_WORKER} +var + Self_ : TJSDedicatedWorkerGlobalScope; external name 'self'; +{$ENDIF} + function TJSObjectBridge.GetObjectConstructor(aObjectName : String): TJSFunction; var @@ -598,7 +603,11 @@ var begin Result:=Nil; if aObjectName<>'' then + {$IFDEF JOB_WORKER} + fn:=self_[aObjectName]; + {$ELSE} fn:=Window[aObjectName]; + {$ENDIF} if jstypeof(fn)<>'function' then exit; Result:=TJSFunction(fn);