Browse Source

* Some corrections in GetInvokeNameFromTypeName

Michaël Van Canneyt 1 year ago
parent
commit
90cac5536f
1 changed files with 11 additions and 6 deletions
  1. 11 6
      packages/webidl/src/webidltowasmjob.pp

+ 11 - 6
packages/webidl/src/webidltowasmjob.pp

@@ -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);