* set method for typed array

This commit is contained in:
Michaël Van Canneyt 2024-05-28 16:47:37 +02:00
parent 5bdef935f9
commit b58f9bcfd0

View File

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