Browse Source

* Add some utility methods to TJSarray for easier pushing of values

Michaël Van Canneyt 11 months ago
parent
commit
aef32d5de9
1 changed files with 76 additions and 0 deletions
  1. 76 0
      packages/wasm-job/src/job.js.pas

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

@@ -625,6 +625,11 @@ type
     //Function map(const aCallBack: TJSArrayMapEvent; aThis: TObject): TJSArray; overload;
     //Function map(const aCallBack: TJSArrayMapEvent; aThis: TObject): TJSArray; overload;
     function pop: TJOB_JSValue;
     function pop: TJOB_JSValue;
     function push(aElement: TJOB_JSValue): NativeInt; overload; {varargs;}
     function push(aElement: TJOB_JSValue): NativeInt; overload; {varargs;}
+    function push(aValue : Integer): NativeInt; overload; {varargs;}
+    function push(aValue : Double): NativeInt; overload; {varargs;}
+    function push(aValue : rawByteString): NativeInt; overload; {varargs;}
+    function push(aValue : UnicodeString): NativeInt; overload; {varargs;}
+    function push(aValue : IJSObject): NativeInt; overload; {varargs;}
     //function reduce(const aCallBack: TJSArrayReduceCallBack): TJOB_JSValue; overload;
     //function reduce(const aCallBack: TJSArrayReduceCallBack): TJOB_JSValue; overload;
     //function reduce(const aCallBack: TJSArrayReduceCallBack; initialValue: TJOB_JSValue): TJOB_JSValue; overload;
     //function reduce(const aCallBack: TJSArrayReduceCallBack; initialValue: TJOB_JSValue): TJOB_JSValue; overload;
     //function reduceRight(const aCallBack: TJSArrayReduceCallBack): TJOB_JSValue; overload;
     //function reduceRight(const aCallBack: TJSArrayReduceCallBack): TJOB_JSValue; overload;
@@ -709,6 +714,11 @@ type
     //Function map(const aCallBack: TJSArrayMapEvent; aThis: TObject): IJSArray; overload;
     //Function map(const aCallBack: TJSArrayMapEvent; aThis: TObject): IJSArray; overload;
     function pop: TJOB_JSValue;
     function pop: TJOB_JSValue;
     function push(aElement: TJOB_JSValue): NativeInt; overload; {varargs;}
     function push(aElement: TJOB_JSValue): NativeInt; overload; {varargs;}
+    function push(aValue : Integer): NativeInt; overload; {varargs;}
+    function push(aValue : Double): NativeInt; overload; {varargs;}
+    function push(aValue : rawByteString): NativeInt; overload; {varargs;}
+    function push(aValue : UnicodeString): NativeInt; overload; {varargs;}
+    function push(aValue : IJSObject): NativeInt; overload; {varargs;}
     //function reduce(const aCallBack: TJSArrayReduceCallBack): TJOB_JSValue; overload;
     //function reduce(const aCallBack: TJSArrayReduceCallBack): TJOB_JSValue; overload;
     //function reduce(const aCallBack: TJSArrayReduceCallBack; initialValue: TJOB_JSValue): TJOB_JSValue; overload;
     //function reduce(const aCallBack: TJSArrayReduceCallBack; initialValue: TJOB_JSValue): TJOB_JSValue; overload;
     //function reduceRight(const aCallBack: TJSArrayReduceCallBack): TJOB_JSValue; overload;
     //function reduceRight(const aCallBack: TJSArrayReduceCallBack): TJOB_JSValue; overload;
@@ -2615,6 +2625,72 @@ begin
   Result:=InvokeJSMaxIntResult('push',[aElement]);
   Result:=InvokeJSMaxIntResult('push',[aElement]);
 end;
 end;
 
 
+function TJSArray.push(aValue: Integer): NativeInt;
+
+var
+  Obj : TJOB_Double;
+
+begin
+  Obj:=TJOB_Double.Create(aValue);
+  try
+    Result:=Push(Obj);
+  finally
+    Obj.Free;
+  end;
+end;
+
+function TJSArray.push(aValue: Double): NativeInt;
+var
+  Obj : TJOB_Double;
+
+begin
+  Obj:=TJOB_Double.Create(aValue);
+  try
+    Result:=Push(Obj);
+  finally
+    Obj.Free;
+  end;
+end;
+
+function TJSArray.push(aValue: rawByteString): NativeInt;
+var
+  Obj : TJOB_String;
+
+begin
+  Obj:=TJOB_String.Create(UTF8Decode(aValue));
+  try
+    Result:=Push(Obj);
+  finally
+    Obj.Free;
+  end;
+end;
+
+function TJSArray.push(aValue: UnicodeString): NativeInt;
+var
+  Obj : TJOB_String;
+
+begin
+  Obj:=TJOB_String.Create(aValue);
+  try
+    Result:=Push(Obj);
+  finally
+    Obj.Free;
+  end;
+end;
+
+function TJSArray.push(aValue: IJSObject): NativeInt;
+var
+  Obj : TJOB_Object;
+
+begin
+  Obj:=TJOB_Object.Create(aValue);
+  try
+    Result:=Push(Obj);
+  finally
+    Obj.Free;
+  end;
+end;
+
 function TJSArray.reverse: IJSArray;
 function TJSArray.reverse: IJSArray;
 begin
 begin
   Result:=InvokeJSObjectResult('reverse',[],TJSArray) as IJSArray;
   Result:=InvokeJSObjectResult('reverse',[],TJSArray) as IJSArray;