* 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)
['{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;