This PR implements the new WasmImportlinkageAttribute and remove the old policy based mechanism. Added a test for the browser target as it is easier to fulfill the import in Javascript.
Added a key ExternSymbolKey to _externSymbolsWithAccessors to distinguish between Wasm imports and normal DllImports, Wasm imports of the same function from different modules, and imports of the same name but with different signatures.
When writing the object files, added a new dictionary _wasmImportLinkages to track emitted functions with the wasm import attributes. This allows us to remove duplicate imports as they behaviour for that is not defined.
This PR implements the new
WasmImportlinkageAttribute
and remove the old policy based mechanism. Added a test for the browser target as it is easier to fulfill the import in Javascript.Added a key
ExternSymbolKey
to_externSymbolsWithAccessors
to distinguish between Wasm imports and normalDllImport
s, Wasm imports of the same function from different modules, and imports of the same name but with different signatures.When writing the object files, added a new dictionary
_wasmImportLinkages
to track emitted functions with the wasm import attributes. This allows us to remove duplicate imports as they behaviour for that is not defined.