* Add new constructor for typed array with length

This commit is contained in:
Michaël Van Canneyt 2024-06-28 09:26:49 +02:00
parent c88037b8a7
commit 4c3af63fad

View File

@ -288,7 +288,7 @@ type
function ReadJSPropertyInt64(const aName: UTF8String): Int64; virtual;
function ReadJSPropertyValue(const aName: UTF8String): TJOB_JSValue; virtual;
function ReadJSPropertyVariant(const aName: UTF8String): Variant; virtual;
function ReadJSPropertyMethod(const aName: UTF8String): TMethod; virtual;
function ReadJSPropertyMethod(const aName: UTF8String): IJSFunction; virtual;
// write a property
procedure WriteJSPropertyBoolean(const aName: UTF8String; Value: Boolean); virtual;
procedure WriteJSPropertyDouble(const aName: UTF8String; Value: Double); virtual;
@ -389,7 +389,7 @@ type
function ReadJSPropertyInt64(const aName: UTF8String): Int64; virtual;
function ReadJSPropertyValue(const aName: UTF8String): TJOB_JSValue; virtual;
function ReadJSPropertyVariant(const aName: UTF8String): Variant; virtual;
function ReadJSPropertyMethod(const aName: UTF8String): TMethod; virtual;
function ReadJSPropertyMethod(const aName: UTF8String): IJSFunction; virtual;
// write a property
procedure WriteJSPropertyBoolean(const aName: UTF8String; Value: Boolean); virtual;
procedure WriteJSPropertyDouble(const aName: UTF8String; Value: Double); virtual;
@ -784,6 +784,8 @@ type
function _GetByteLength: NativeInt;
function _GetByteOffset: NativeInt;
public
constructor Create(aLen : NativeUInt);
constructor Create(aObject : IJSObject);
constructor Create(aBytes : PByte; aLen : NativeUInt);
constructor Create(aBytes : TBytes);
constructor create(aArray : IJSArrayBuffer);
@ -1843,6 +1845,16 @@ begin
Result:=ReadJSPropertyLongInt('byteOffset');
end;
constructor TJSTypedArray.Create(aLen: NativeUInt);
begin
JobCreate(True,[aLen]);
end;
constructor TJSTypedArray.Create(aObject: IJSObject);
begin
JobCreate(True,[aObject]);
end;
constructor TJSTypedArray.Create(aBytes: PByte; aLen: NativeUInt);
var
@ -3937,9 +3949,9 @@ begin
Result:=InvokeJSVariantResult(aName,[],jiGet);
end;
function TJSObject.ReadJSPropertyMethod(const aName: UTF8String): TMethod;
function TJSObject.ReadJSPropertyMethod(const aName: UTF8String): IJSFunction;
begin
// Result:=InvokeJSVariantResult(aName,[],jiGet);
Result:=InvokeJSObjectResult(aName,[],TJSFunction,jiGet) as IJSFunction;
end;
procedure TJSObject.WriteJSPropertyBoolean(const aName: UTF8String; Value: Boolean);