webidl: wasmjob: error on passing not supported array as argument

This commit is contained in:
mattias 2022-07-08 11:03:30 +02:00
parent e25594c48e
commit d9e156e90e

View File

@ -404,7 +404,7 @@ Var
Data: TPasDataWasmJob;
FN, RT, Suff, Args, ProcKind, Sig, aClassName, Code, InvokeName,
InvokeCode, ArgName, TryCode, VarSection, FinallyCode, LocalName,
WrapperFn: String;
WrapperFn, ArgTypeName: String;
Overloads: TFPObjectList;
I: Integer;
AddFuncBody: Boolean;
@ -494,6 +494,15 @@ begin
if Args<>'' then
Args:=Args+',';
ArgName:=GetName(ArgDef);
if ArgDef.ArgumentType is TIDLSequenceTypeDefDefinition then
begin
ArgTypeName:=TIDLSequenceTypeDefDefinition(ArgDef.ArgumentType).ElementType.TypeName;
ArgType:=FindGlobalDef(ArgTypeName);
writeln('TWebIDLToPasWasmJob.WriteFunctionDefinition sequence of ',ArgTypeName,' Element=',ArgType<>nil);
raise EConvertError.Create('not yet supported: passing an array of '+ArgTypeName+' as argument at '+GetDefPos(ArgDef));
end
else
begin
ArgType:=FindGlobalDef(ArgDef.ArgumentType.TypeName);
if (ArgType is TIDLFunctionDefinition) and (foCallBack in TIDLFunctionDefinition(ArgType).Options) then
begin
@ -504,6 +513,7 @@ begin
FinallyCode:=FinallyCode+' '+LocalName+'.free;'+sLineBreak;
ArgName:=LocalName;
end;
end;
Args:=Args+ArgName;
end;
Args:=',['+Args+']';