Browse Source

webidl: wasmjob: invoke procedure

mattias 3 years ago
parent
commit
b9dc428e20
2 changed files with 32 additions and 24 deletions
  1. 23 24
      packages/webidl/src/webidltopas.pp
  2. 9 0
      packages/webidl/src/webidltowasmjob.pp

+ 23 - 24
packages/webidl/src/webidltopas.pp

@@ -715,38 +715,38 @@ function TBaseWebIDLToPas.GetTypeName(const aTypeName: String; ForTypeDef: Boole
   end;
   end;
 
 
 Var
 Var
-  A,TN: UTF8String;
+  A: UTF8String;
   D: TIDLDefinition;
   D: TIDLDefinition;
 
 
 begin
 begin
   Case aTypeName of
   Case aTypeName of
-    'boolean': TN:='Boolean';
+    'boolean': Result:='Boolean';
 
 
-    'byte': TN:='ShortInt';
-    'octet': TN:='Byte';
-    'short': TN:='SmallInt';
-    'unsigned short': TN:='Word';
-    'long': TN:='Integer';
-    'unsigned long': TN:='LongWord';
-    'long long': TN:='Int64';
-    'unsigned long long': TN:='QWord';
+    'byte': Result:='ShortInt';
+    'octet': Result:='Byte';
+    'short': Result:='SmallInt';
+    'unsigned short': Result:='Word';
+    'long': Result:='Integer';
+    'unsigned long': Result:='LongWord';
+    'long long': Result:='Int64';
+    'unsigned long long': Result:='QWord';
 
 
     'float',
     'float',
-    'unrestricted float': TN:='Single';
+    'unrestricted float': Result:='Single';
     'double',
     'double',
-    'unrestricted double': TN:='Double';
+    'unrestricted double': Result:='Double';
 
 
     'union',
     'union',
-    'any': TN:='JSValue';
+    'any': Result:='JSValue';
 
 
     'DOMString',
     'DOMString',
     'USVString',
     'USVString',
-    'ByteString': TN:='UnicodeString';
+    'ByteString': Result:='UnicodeString';
 
 
     'record',
     'record',
-    'object': TN:=GetClassName('Object');
+    'object': Result:=GetClassName('Object');
     'Error',
     'Error',
-    'DOMException': TN:=GetClassName('Error');
+    'DOMException': Result:=GetClassName('Error');
 
 
     'ArrayBuffer',
     'ArrayBuffer',
     'DataView',
     'DataView',
@@ -758,24 +758,23 @@ begin
     'Uint32Array',
     'Uint32Array',
     'Uint8ClampedArray',
     'Uint8ClampedArray',
     'Float32Array',
     'Float32Array',
-    'Float64Array': TN:=GetClassName(aTypeName);
+    'Float64Array': Result:=GetClassName(aTypeName);
 
 
-    'void': TN:=aTypeName;
+    'void': Result:=aTypeName;
   else
   else
     if ForTypeDef then ;
     if ForTypeDef then ;
 
 
-    TN:=aTypeName;
-    D:=FContext.FindDefinition(TN);
+    Result:=aTypeName;
+    D:=FContext.FindDefinition(Result);
     if D<>Nil then
     if D<>Nil then
-      TN:=GetName(D)
+      Result:=GetName(D)
     else
     else
       begin
       begin
-      A:=FTypeAliases.Values[TN];
+      A:=FTypeAliases.Values[Result];
       If (A<>'') then
       If (A<>'') then
-        TN:=A;
+        Result:=A;
       end;
       end;
   end;
   end;
-  Result:=TN;
 end;
 end;
 
 
 function TBaseWebIDLToPas.WriteField(aAttr: TIDLAttributeDefinition): Boolean;
 function TBaseWebIDLToPas.WriteField(aAttr: TIDLAttributeDefinition): Boolean;

+ 9 - 0
packages/webidl/src/webidltowasmjob.pp

@@ -84,6 +84,8 @@ type
     // Definitions. Return true if a definition was written.
     // Definitions. Return true if a definition was written.
     function WriteFunctionDefinition(aDef: TIDLFunctionDefinition): Boolean;
     function WriteFunctionDefinition(aDef: TIDLFunctionDefinition): Boolean;
       override;
       override;
+    function WriteFunctionTypeDefinition(aDef: TIDLFunctionDefinition
+      ): Boolean; override;
     function WritePrivateGetter(Attr: TIDLAttributeDefinition): boolean; virtual;
     function WritePrivateGetter(Attr: TIDLAttributeDefinition): boolean; virtual;
     function WritePrivateSetter(Attr: TIDLAttributeDefinition): boolean; virtual;
     function WritePrivateSetter(Attr: TIDLAttributeDefinition): boolean; virtual;
     function WriteProperty(Attr: TIDLAttributeDefinition): boolean; virtual;
     function WriteProperty(Attr: TIDLAttributeDefinition): boolean; virtual;
@@ -204,6 +206,7 @@ begin
   Case aTypeName of
   Case aTypeName of
     'union',
     'union',
     'any': Result:=JOB_JSValueTypeNames[jjvkUndefined];
     'any': Result:=JOB_JSValueTypeNames[jjvkUndefined];
+    'void': Result:=aTypeName;
   else
   else
     Result:=inherited GetTypeName(aTypeName,ForTypeDef);
     Result:=inherited GetTypeName(aTypeName,ForTypeDef);
     if (Result=aTypeName) and (LeftStr(Result,length(ClassPrefix))<>ClassPrefix) then
     if (Result=aTypeName) and (LeftStr(Result,length(ClassPrefix))<>ClassPrefix) then
@@ -436,6 +439,12 @@ begin
   end;
   end;
 end;
 end;
 
 
+function TWebIDLToPasWasmJob.WriteFunctionTypeDefinition(
+  aDef: TIDLFunctionDefinition): Boolean;
+begin
+  Result:=inherited WriteFunctionTypeDefinition(aDef);
+end;
+
 function TWebIDLToPasWasmJob.WritePrivateGetter(Attr: TIDLAttributeDefinition
 function TWebIDLToPasWasmJob.WritePrivateGetter(Attr: TIDLAttributeDefinition
   ): boolean;
   ): boolean;
 var
 var