Browse Source

* Add new constructor for typed array with length

Michaël Van Canneyt 1 year ago
parent
commit
4c3af63fad
1 changed files with 16 additions and 4 deletions
  1. 16 4
      packages/wasm-job/src/job.js.pas

+ 16 - 4
packages/wasm-job/src/job.js.pas

@@ -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);