[WASM] Remove WasmImport annotation

This commit is contained in:
Igor Yakovlev
2022-02-03 16:23:38 +01:00
parent d30a4fa4d5
commit eb8c3aa54e
7 changed files with 24 additions and 60 deletions
@@ -138,6 +138,15 @@ internal fun anyToExternRef(x: Any): ExternalInterfaceType {
x.asWasmExternRef()
}
@JsFun("""(addr) => {
const mem16 = new Uint16Array(wasmInstance.exports.memory.buffer);
const mem32 = new Int32Array(wasmInstance.exports.memory.buffer);
const len = mem32[addr / 4];
const str_start_addr = (addr + 4) / 2;
const slice = mem16.slice(str_start_addr, str_start_addr + len);
return String.fromCharCode.apply(null, slice);
}
""")
internal external fun importStringFromWasm(addr: Int): ExternalInterfaceType
@JsFun("x => x.length")
@@ -13,10 +13,6 @@ import kotlin.reflect.KClass
@Retention(AnnotationRetention.BINARY)
internal annotation class ExcludedFromCodegen
@Target(FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER)
@Retention(AnnotationRetention.BINARY)
internal annotation class WasmImport(val module: String, val name: String)
@Target(CLASS)
@Retention(AnnotationRetention.BINARY)
internal annotation class WasmArrayOf(