* Allow to compile for worker

This commit is contained in:
Michael Van Canneyt 2024-11-07 15:08:10 +01:00
parent 028405d67f
commit 2d0fc5940a

View File

@ -17,9 +17,9 @@ interface
uses uses
{$IFDEF FPC_DOTTEDUNITS} {$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} {$ELSE}
sysutils, types, js, web, wasienv, JOB_Shared; sysutils, types, js, weborworker, {$IFNDEF JOB_WORKER} web, {$ELSE} webworker, {$ENDIF} wasienv, JOB_Shared;
{$ENDIF} {$ENDIF}
Type Type
@ -195,13 +195,13 @@ begin
FGlobalObjects:=TJSArray.new; FGlobalObjects:=TJSArray.new;
FGlobalObjects.push(nil); // allocate FGlobalObjects[0] FGlobalObjects.push(nil); // allocate FGlobalObjects[0]
FGlobalNames:=TJSObject.new; FGlobalNames:=TJSObject.new;
{$IFNDEF JOB_WORKER}
RegisterGlobalObject(document,'document'); RegisterGlobalObject(document,'document');
RegisterGlobalObject(window,'window'); RegisterGlobalObject(window,'window');
RegisterGlobalObject(console,'console');
RegisterGlobalObject(CSS,'CSS'); RegisterGlobalObject(CSS,'CSS');
{$IFDEF WORKER}
RegisterGlobalObject(caches,'caches'); RegisterGlobalObject(caches,'caches');
{$ENDIF} {$ENDIF}
RegisterGlobalObject(console,'console');
RegisterGlobalObject(TJSObject,'Object'); RegisterGlobalObject(TJSObject,'Object');
RegisterGlobalObject(TJSFunction,'Function'); RegisterGlobalObject(TJSFunction,'Function');
RegisterGlobalObject(TJSDate,'Date'); RegisterGlobalObject(TJSDate,'Date');
@ -590,6 +590,11 @@ begin
Result:=JOBResult_Object; Result:=JOBResult_Object;
end; end;
{$IFDEF JOB_WORKER}
var
Self_ : TJSDedicatedWorkerGlobalScope; external name 'self';
{$ENDIF}
function TJSObjectBridge.GetObjectConstructor(aObjectName : String): TJSFunction; function TJSObjectBridge.GetObjectConstructor(aObjectName : String): TJSFunction;
var var
@ -598,7 +603,11 @@ var
begin begin
Result:=Nil; Result:=Nil;
if aObjectName<>'' then if aObjectName<>'' then
{$IFDEF JOB_WORKER}
fn:=self_[aObjectName];
{$ELSE}
fn:=Window[aObjectName]; fn:=Window[aObjectName];
{$ENDIF}
if jstypeof(fn)<>'function' then if jstypeof(fn)<>'function' then
exit; exit;
Result:=TJSFunction(fn); Result:=TJSFunction(fn);