diff --git a/packages/webidl/src/webidltowasmjob.pp b/packages/webidl/src/webidltowasmjob.pp index 5c077380c3..a021873b02 100644 --- a/packages/webidl/src/webidltowasmjob.pp +++ b/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; diff --git a/packages/webidl/tests/tcwebidl2wasmjob.pas b/packages/webidl/tests/tcwebidl2wasmjob.pas index bd409674c3..09bc99e073 100644 --- a/packages/webidl/tests/tcwebidl2wasmjob.pas +++ b/packages/webidl/tests/tcwebidl2wasmjob.pas @@ -574,6 +574,7 @@ begin 'interface Attr {', ' Promise exitFullscreen();', ' Promise addCertException(boolean isTemporary);', + ' Promise 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', + ' function addCertException(aIsTemporary: Boolean): IJSPromise; // Promise', + ' function fly: IJSPromise; // Promise', ' end;', '', ' TJSAttr = class(TJSObject,IJSAttr)', ' Private', ' Public', - ' function exitFullscreen: IJSPromise;', - ' function addCertException(aIsTemporary: Boolean): IJSPromise;', + ' function exitFullscreen: IJSPromise; // Promise', + ' function addCertException(aIsTemporary: Boolean): IJSPromise; // Promise', + ' function fly: IJSPromise; // Promise', ' class function Cast(Intf: IJSObject): IJSAttr;', ' end;', '', 'implementation', '', - 'function TJSAttr.exitFullscreen: IJSPromise;', + 'function TJSAttr.exitFullscreen: IJSPromise; // Promise', 'begin', ' Result:=InvokeJSObjectResult(''exitFullscreen'',[],TJSPromise) as IJSPromise;', 'end;', '', - 'function TJSAttr.addCertException(aIsTemporary: Boolean): IJSPromise;', + 'function TJSAttr.addCertException(aIsTemporary: Boolean): IJSPromise; // Promise', 'begin', ' Result:=InvokeJSObjectResult(''addCertException'',[aIsTemporary],TJSPromise) as IJSPromise;', 'end;', '', + 'function TJSAttr.fly: IJSPromise; // Promise', + 'begin', + ' Result:=InvokeJSObjectResult(''fly'',[],TJSPromise) as IJSPromise;', + 'end;', + '', 'class function TJSAttr.Cast(Intf: IJSObject): IJSAttr;', 'begin', ' Result:=TJSAttr.JOBCast(Intf);',