From 23bcb38138106a71c779bb862bb29adfde58d048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Tue, 9 Apr 2024 17:04:09 +0200 Subject: [PATCH] * Correctly create constructor definitions --- packages/webidl/src/webidltowasmjob.pp | 3 ++- packages/webidl/tests/tcwebidl2wasmjob.pas | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/webidl/src/webidltowasmjob.pp b/packages/webidl/src/webidltowasmjob.pp index 3dba2242d2..b1916d4483 100644 --- a/packages/webidl/src/webidltowasmjob.pp +++ b/packages/webidl/src/webidltowasmjob.pp @@ -598,6 +598,7 @@ begin InvokeName:= 'InvokeJSObjectResult'; ResolvedReturnTypeName:=aParent.Name; ReturnTypeName:=GetName(aParent); + InvokeClassName:=ReturnTypeName; exit(Nil); end else @@ -739,7 +740,7 @@ begin Args:=',['+Args+']'; if foConstructor in aDef.Options then - InvokeCode:=InvokeCode+InvokeName+'('''+ResolvedReturnTypeName+''''+Args+','+ReturnTypeName + InvokeCode:=InvokeCode+InvokeName+'('''+ResolvedReturnTypeName+''''+Args else InvokeCode:=InvokeCode+InvokeName+'('''+aDef.Name+''''+Args; if InvokeClassName<>'' then diff --git a/packages/webidl/tests/tcwebidl2wasmjob.pas b/packages/webidl/tests/tcwebidl2wasmjob.pas index 16324e967f..5114208474 100644 --- a/packages/webidl/tests/tcwebidl2wasmjob.pas +++ b/packages/webidl/tests/tcwebidl2wasmjob.pas @@ -818,7 +818,7 @@ begin '', 'class function TJSAttr.Create(aOptions: Integer) : TJSAttr;', 'begin', - ' Result:=InvokeJSObjectResult(''Attr'',[aOptions],TJSAttr);', + ' Result:=InvokeJSObjectResult(''Attr'',[aOptions],TJSAttr) as TJSAttr;', 'end;', '', 'class function TJSAttr.Cast(const Intf: IJSObject): IJSAttr;',