Browse Source

wasmjob: added some IJSJSON members

mattias 3 years ago
parent
commit
32b763f134
1 changed files with 46 additions and 0 deletions
  1. 46 0
      demo/wasienv/dom/job_js.pas

+ 46 - 0
demo/wasienv/dom/job_js.pas

@@ -791,12 +791,26 @@ type
 
   IJSJSON = interface(IJSObject)
     ['{73535059-91DD-4A22-91A6-D8072008C5F3}']
+    function parse(const aJSON: UnicodeString): TJOB_JSValue; overload;
+    // Use this only when you are sure you will get an object, no checking is done.
+    function parseObject(const aJSON: UnicodeString): IJSObject; overload;
+    function stringify(aValue: TJOB_JSValue): UnicodeString; overload;
+    function stringify(aValue,aReplacer: TJOB_JSValue): UnicodeString; overload;
+    function stringify(aValue,aReplacer: TJOB_JSValue; space:  NativeInt): UnicodeString; overload;
+    function stringify(aValue,aReplacer: TJOB_JSValue; const space: UnicodeString): UnicodeString; overload;
   end;
 
   { TJSJSON }
 
   TJSJSON = class(TJSObject,IJSJSON)
   public
+    function parse(const aJSON: UnicodeString): TJOB_JSValue; overload;
+    // Use this only when you are sure you will get an object, no checking is done.
+    function parseObject(const aJSON: UnicodeString): IJSObject; overload;
+    function stringify(aValue: TJOB_JSValue): UnicodeString; overload;
+    function stringify(aValue,aReplacer: TJOB_JSValue): UnicodeString; overload;
+    function stringify(aValue,aReplacer: TJOB_JSValue; space:  NativeInt): UnicodeString; overload;
+    function stringify(aValue,aReplacer: TJOB_JSValue; const space: UnicodeString): UnicodeString; overload;
     class function Cast(Intf: IJSObject): IJSJSON; overload;
   end;
 
@@ -1114,6 +1128,38 @@ end;
 
 { TJSJSON }
 
+function TJSJSON.parse(const aJSON: UnicodeString): TJOB_JSValue;
+begin
+  Result:=InvokeJSValueResult('parse',[aJSON]);
+end;
+
+function TJSJSON.parseObject(const aJSON: UnicodeString): IJSObject;
+begin
+  Result:=InvokeJSObjectResult('parse',[aJSON],TJSObject) as IJSObject;
+end;
+
+function TJSJSON.stringify(aValue: TJOB_JSValue): UnicodeString;
+begin
+  Result:=InvokeJSUnicodeStringResult('stringify',[aValue]);
+end;
+
+function TJSJSON.stringify(aValue, aReplacer: TJOB_JSValue): UnicodeString;
+begin
+  Result:=InvokeJSUnicodeStringResult('stringify',[aValue,aReplacer]);
+end;
+
+function TJSJSON.stringify(aValue, aReplacer: TJOB_JSValue; space: NativeInt
+  ): UnicodeString;
+begin
+  Result:=InvokeJSUnicodeStringResult('stringify',[aValue,aReplacer,space]);
+end;
+
+function TJSJSON.stringify(aValue, aReplacer: TJOB_JSValue;
+  const space: UnicodeString): UnicodeString;
+begin
+  Result:=InvokeJSUnicodeStringResult('stringify',[aValue,aReplacer,space]);
+end;
+
 class function TJSJSON.Cast(Intf: IJSObject): IJSJSON;
 begin
   Result:=TJSJSON.Cast(Intf);