Selaa lähdekoodia

* set method for typed array

Michaël Van Canneyt 1 vuosi sitten
vanhempi
commit
b58f9bcfd0
1 muutettua tiedostoa jossa 24 lisäystä ja 0 poistoa
  1. 24 0
      packages/wasm-job/src/job.js.pas

+ 24 - 0
packages/wasm-job/src/job.js.pas

@@ -705,15 +705,24 @@ type
 
   IJSTypedArray = interface(IJSObject)
     ['{6A76602B-9555-4136-A7B7-2E683265EA82}']
+    function GetBuffer: IJSArrayBuffer;
+    procedure  set_(aArray : IJSTypedArray; TargetOffset : Integer);
+    procedure  set_(aArray : IJSTypedArray);
+    property Buffer : IJSArrayBuffer read GetBuffer;
   end;
 
   { TJSTypedArray }
 
   TJSTypedArray = class(TJSObject,IJSTypedArray)
+  private
+    function GetBuffer: IJSArrayBuffer;
   public
     constructor Create(aBytes : PByte; aLen : NativeUInt);
     constructor Create(aBytes : TBytes);
     class function Cast(const Intf: IJSObject): IJSTypedArray; overload;
+    procedure set_(aArray : IJSTypedArray; TargetOffset : Integer);
+    procedure set_(aArray : IJSTypedArray);
+    property Buffer : IJSArrayBuffer read GetBuffer;
   end;
 
   { IJSInt8Array }
@@ -1464,6 +1473,11 @@ end;
 
 { TJSTypedArray }
 
+function TJSTypedArray.GetBuffer: IJSArrayBuffer;
+begin
+  Result:=ReadJSPropertyObject('buffer',TJSArrayBuffer) as IJSArrayBuffer;
+end;
+
 constructor TJSTypedArray.Create(aBytes: PByte; aLen: NativeUInt);
 
 var
@@ -1487,6 +1501,16 @@ begin
   Result:=TJSTypedArray.Cast(Intf);
 end;
 
+procedure TJSTypedArray.set_(aArray: IJSTypedArray; TargetOffset: Integer);
+begin
+  InvokeJSNoResult('set',[aArray,TargetOffset]);
+end;
+
+procedure TJSTypedArray.set_(aArray: IJSTypedArray);
+begin
+  InvokeJSNoResult('set',[aArray]);
+end;
+
 { TJSArrayBuffer }
 
 class function TJSArrayBuffer.Cast(const Intf: IJSObject): IJSArrayBuffer;