* Some corrections in GetInvokeNameFromTypeName

This commit is contained in:
Michaël Van Canneyt 2024-04-11 17:05:19 +02:00
parent bd08aa6197
commit 90cac5536f

View File

@ -540,14 +540,16 @@ function TWebIDLToPasWasmJob.GetInvokeNameFromAliasName(const aTypeName : TIDLSt
var var
aLower : String; aLower : String;
begin begin
Writeln('Checking invoke for alias ',aTypeName,'(prefix : ',PasInterfacePrefix+')');
aLower:=LowerCase(aTypeName); aLower:=LowerCase(aTypeName);
Writeln('Pos(LowerCase(',PasInterfacePrefix,'),',aLower,') := ',Pos(LowerCase(PasInterfacePrefix),aLower));
if Pos('bool',aLower)>0 then if Pos('bool',aLower)>0 then
Result:='InvokeJSBooleanResult' Result:='InvokeJSBooleanResult'
else if Pos('array',aLower)>0 then else if Pos('array',aLower)>0 then
Result:='InvokeJSObjectResult' Result:='InvokeJSObjectResult'
else if Pos('string',aLower)>0 then else if Pos('string',aLower)>0 then
Result:='InvokeJSUnicodeStringResult' Result:='InvokeJSUnicodeStringResult'
else if Pos(PasInterfacePrefix,aLower)=1 then else if Pos(LowerCase(PasInterfacePrefix),aLower)=1 then
Result:='InvokeJSObjectResult' Result:='InvokeJSObjectResult'
else else
Result:=''; Result:='';
@ -584,12 +586,13 @@ begin
else else
if (aType is TIDLTypeDefDefinition) then if (aType is TIDLTypeDefDefinition) then
begin begin
if (TypeAliases.IndexOfName(aTypeName)<>-1) then if (TypeAliases.IndexOfName(aTypeName)<>-1) then
Result:=GetInvokeNameFromAliasName(aTypeName,aType) Result:=GetInvokeNameFromAliasName(aTypeName,aType);
else if (TypeAliases.IndexOfName((aType as TIDLTypeDefDefinition).TypeName)<>-1) then if (Result='') and (TypeAliases.IndexOfName((aType as TIDLTypeDefDefinition).TypeName)<>-1) then
Result:=GetInvokeNameFromAliasName((aType as TIDLTypeDefDefinition).TypeName,aType) Result:=GetInvokeNameFromAliasName((aType as TIDLTypeDefDefinition).TypeName,aType);
else if TypeAliases.IndexOfName(GetName(aType))<>-1 then if (Result='') and (TypeAliases.IndexOfName(GetName(aType))<>-1) then
Result:=GetInvokeNameFromAliasName(aTypeName,aType) Result:=GetInvokeNameFromAliasName(GetName(aType),aType)
else else
Result:='InvokeJSObjectResult'; Result:='InvokeJSObjectResult';
if Result='' then if Result='' then
@ -641,8 +644,10 @@ begin
else if aResultDef is TIDLTypeDefDefinition then else if aResultDef is TIDLTypeDefDefinition then
begin begin
aTypeName:=(aResultDef as TIDLTypeDefDefinition).TypeName; aTypeName:=(aResultDef as TIDLTypeDefDefinition).TypeName;
Writeln('Looking for alias ',aTypeName,' name ',aName,' in ',TypeAliases.Text);
if TypeAliases.IndexOfName(aTypeName)=-1 then if TypeAliases.IndexOfName(aTypeName)=-1 then
begin begin
Msg:=GetName(aDef);
Msg:='[20220725172242] not yet supported: function "'+Msg+'" return type: '+aName; Msg:='[20220725172242] not yet supported: function "'+Msg+'" return type: '+aName;
if assigned(aDef) then if assigned(aDef) then
Msg:=Msg+' at '+GetDefPos(aDef); Msg:=Msg+' at '+GetDefPos(aDef);