Browse Source

* Allow to read array of byte

Michael Van Canneyt 1 year ago
parent
commit
017738ed33
2 changed files with 17 additions and 2 deletions
  1. 13 0
      packages/job/src/job_browser.pp
  2. 4 2
      packages/job/src/job_shared.pp

+ 13 - 0
packages/job/src/job_browser.pp

@@ -765,6 +765,17 @@ var
       TJSArray(Result)[i]:=View.getFloat64(El+i*8,env.IsLittleEndian);
   end;
 
+  function ReadArgArrayOfByte: JSValue;
+  var
+    Cnt, El: TWasmNativeInt;
+    i: Integer;
+
+  begin
+    Cnt:=ReadWasmNativeInt;
+    El:=ReadWasmNativeInt;
+    Result:=TJSUint8Array.New(Env.Memory.buffer,El,Cnt);
+  end;
+
   function ReadValue: JSValue;
   var
     aType: Byte;
@@ -820,6 +831,8 @@ var
       Result:=ReadArgArrayOfJSValue;
     JOBArgArrayOfDouble:
       Result:=ReadArgArrayOfDouble;
+    JOBArgArrayOfByte:
+      Result:=ReadArgArrayOfByte;
     else
       raise EJOBBridge.Create('20220825000852: unknown arg type '+IntToStr(aType));
     end;

+ 4 - 2
packages/job/src/job_shared.pp

@@ -83,8 +83,9 @@ const
   JOBArgDictionary = 12; // followed by count and pairs
   JOBArgArrayOfJSValue = 13; // followed by count and values
   JOBArgArrayOfDouble = 14; // followed by count and pointer
+  JOBArgArrayOfByte = 15; // followed by count and pointer
 
-  JOBArgNames: array[0..14] of string = (
+  JOBArgNames: array[0..15] of string = (
     'Undefined',
     'Longint',
     'Double',
@@ -99,7 +100,8 @@ const
     'Method',
     'Dictionary',
     'ArrayOfJSValue',
-    'ArrayOfDouble'
+    'ArrayOfDouble',
+    'ArrayOfByte'
     );
 
   JOBInvokeCall = 0; // call function