* DebugObject call

This commit is contained in:
Michael Van Canneyt 2024-09-18 17:41:00 +02:00
parent 9f374e3d23
commit 193eeb8483
2 changed files with 24 additions and 0 deletions

View File

@ -104,6 +104,7 @@ Type
function Invoke_ArrayStringResult(ObjId: TJOBObjectID; NameP, NameLen, Invoke, ArgsP, ResultP: NativeInt): TJOBResult; virtual;
function ReleaseObject(ObjId: TJOBObjectID): TJOBResult; virtual;
function GetStringResult(ResultP: NativeInt): TJOBResult; virtual;
function DebugObject(ObjId: TJOBObjectID; aMessage: TWasmPointer; aMessageLen: Integer; aFlags: Longint): TJOBResult;
function ReleaseStringResult: TJOBResult; virtual;
Public
Constructor Create(aEnv: TPas2JSWASIEnvironment); override;
@ -270,6 +271,7 @@ begin
aObject[JOBFn_CreateObject]:=@Create_JSObject;
aObject[JOBFn_SetMemFromArray]:=@SetMemFromArray;
aObject[JOBFn_SetArrayFromMem]:=@SetArrayFromMem;
aObject[JOBFn_DebugObject]:=@DebugObject;
end;
function TJSObjectBridge.FindObject(ObjId: TJOBObjectID): TJSObject;
@ -743,6 +745,27 @@ begin
FStringResult:='';
end;
function TJSObjectBridge.DebugObject(ObjId: TJOBObjectID; aMessage : TWasmPointer; aMessageLen : Integer; aFlags: Longint): TJOBResult;
var
Obj : TJSObject;
S : String;
begin
S:=Env.GetUTF8StringFromMem(aMessage,aMessageLen);
Obj:=FindObject(ObjId);
if not assigned(Obj) then
begin
Result:=JOBResult_UnknownObjId;
console.warn('Cannot find object ',ObjId);
end
else
begin
console.debug(S,' dumping object ',ObjID,' : ',Obj);
Result:=JOBResult_Success;
end;
end;
function TJSObjectBridge.ReleaseStringResult: TJOBResult;
begin
Result:=JOBResult_Success;

View File

@ -69,6 +69,7 @@ const
JOBFn_CallbackHandler = 'JOBCallback';
JOBFn_SetMemFromArray = 'set_mem_from_object';
JOBFn_SetArrayFromMem = 'set_object_from_mem';
JOBFn_DebugObject = 'debug_object';
JOBArgUndefined = 0;
JOBArgLongint = 1;