diff --git a/compiler/assemble.pas b/compiler/assemble.pas index 84a7362680..45e79b1656 100644 --- a/compiler/assemble.pas +++ b/compiler/assemble.pas @@ -1837,6 +1837,10 @@ Implementation {$ifdef WASM} ait_functype: TWasmObjData(ObjData).DeclareFuncType(tai_functype(hp)); + ait_import_module: + TWasmObjData(ObjData).DeclareImportModule(tai_import_module(hp)); + ait_import_name: + TWasmObjData(ObjData).DeclareImportName(tai_import_name(hp)); {$endif WASM} else ; diff --git a/compiler/ogwasm.pas b/compiler/ogwasm.pas index 7e3a0b0c4f..cae44ab9da 100644 --- a/compiler/ogwasm.pas +++ b/compiler/ogwasm.pas @@ -44,6 +44,8 @@ interface TWasmObjSymbolExtraData = class(TFPHashObject) TypeIdx: Integer; + ImportModule: string; + ImportName: string; constructor Create(HashObjectList: TFPHashObjectList; const s: TSymStr); end; @@ -74,6 +76,8 @@ interface function AddOrCreateObjSymbolExtraData(const symname:TSymStr): TWasmObjSymbolExtraData; function AddFuncType(wft: TWasmFuncType): integer; procedure DeclareFuncType(ft: tai_functype); + procedure DeclareImportModule(aim: tai_import_module); + procedure DeclareImportName(ain: tai_import_name); end; { TWasmObjOutput } @@ -345,6 +349,22 @@ implementation ObjSymExtraData.TypeIdx:=i; end; + procedure TWasmObjData.DeclareImportModule(aim: tai_import_module); + var + ObjSymExtraData: TWasmObjSymbolExtraData; + begin + ObjSymExtraData:=AddOrCreateObjSymbolExtraData(aim.symname); + ObjSymExtraData.ImportModule:=aim.importmodule; + end; + + procedure TWasmObjData.DeclareImportName(ain: tai_import_name); + var + ObjSymExtraData: TWasmObjSymbolExtraData; + begin + ObjSymExtraData:=AddOrCreateObjSymbolExtraData(ain.symname); + ObjSymExtraData.ImportName:=ain.importname; + end; + {**************************************************************************** TWasmObjOutput ****************************************************************************}