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