Browse Source

webidl: promise: add comment of returntype

mattias 2 years ago
parent
commit
922210eaa8
2 changed files with 17 additions and 7 deletions
  1. 2 0
      packages/webidl/src/webidltowasmjob.pp
  2. 15 7
      packages/webidl/tests/tcwebidl2wasmjob.pas

+ 2 - 0
packages/webidl/src/webidltowasmjob.pp

@@ -554,6 +554,8 @@ begin
         ProcKind:='function';
         Sig:=FuncName+Args+': '+ReturnTypeName+Suff+';';
         end;
+      if ReturnDef is TIDLPromiseTypeDefDefinition then
+        Sig:=Sig+' // Promise<'+TIDLPromiseTypeDefDefinition(ReturnDef).ReturnType.TypeName+'>';
       AddLn(ProcKind+' '+Sig);
 
       if not AddFuncBody then continue;

+ 15 - 7
packages/webidl/tests/tcwebidl2wasmjob.pas

@@ -574,6 +574,7 @@ begin
   'interface Attr {',
   '  Promise<void> exitFullscreen();',
   '  Promise<any> addCertException(boolean isTemporary);',
+  '  Promise<Attr> fly();',
   '};',
   ''],
   ['Type',
@@ -585,31 +586,38 @@ begin
   '    --------------------------------------------------------------------}',
   '',
   '  IJSAttr = interface(IJSObject)',
-  '    [''{74BB0007-0E0F-3C31-A77E-B1C656002861}'']',
-  '    function exitFullscreen: IJSPromise;',
-  '    function addCertException(aIsTemporary: Boolean): IJSPromise;',
+  '    [''{74BB0007-0E0F-3C5D-B270-B1C656002861}'']',
+  '    function exitFullscreen: IJSPromise; // Promise<void>',
+  '    function addCertException(aIsTemporary: Boolean): IJSPromise; // Promise<any>',
+  '    function fly: IJSPromise; // Promise<Attr>',
   '  end;',
   '',
   '  TJSAttr = class(TJSObject,IJSAttr)',
   '  Private',
   '  Public',
-  '    function exitFullscreen: IJSPromise;',
-  '    function addCertException(aIsTemporary: Boolean): IJSPromise;',
+  '    function exitFullscreen: IJSPromise; // Promise<void>',
+  '    function addCertException(aIsTemporary: Boolean): IJSPromise; // Promise<any>',
+  '    function fly: IJSPromise; // Promise<Attr>',
   '    class function Cast(Intf: IJSObject): IJSAttr;',
   '  end;',
   '',
   'implementation',
   '',
-  'function TJSAttr.exitFullscreen: IJSPromise;',
+  'function TJSAttr.exitFullscreen: IJSPromise; // Promise<void>',
   'begin',
   '  Result:=InvokeJSObjectResult(''exitFullscreen'',[],TJSPromise) as IJSPromise;',
   'end;',
   '',
-  'function TJSAttr.addCertException(aIsTemporary: Boolean): IJSPromise;',
+  'function TJSAttr.addCertException(aIsTemporary: Boolean): IJSPromise; // Promise<any>',
   'begin',
   '  Result:=InvokeJSObjectResult(''addCertException'',[aIsTemporary],TJSPromise) as IJSPromise;',
   'end;',
   '',
+  'function TJSAttr.fly: IJSPromise; // Promise<Attr>',
+  'begin',
+  '  Result:=InvokeJSObjectResult(''fly'',[],TJSPromise) as IJSPromise;',
+  'end;',
+  '',
   'class function TJSAttr.Cast(Intf: IJSObject): IJSAttr;',
   'begin',
   '  Result:=TJSAttr.JOBCast(Intf);',