Browse Source

* since exporting webassembly globals doesn't yet work accross units, added a
workaround by using property getters and setters

Nikolay Nikolov 2 years ago
parent
commit
b97f3a08ed
1 changed files with 16 additions and 1 deletions
  1. 16 1
      rtl/wasi/system.pp

+ 16 - 1
rtl/wasi/system.pp

@@ -57,7 +57,12 @@ var
   argc: longint;
   argc: longint;
   argv: PPChar;
   argv: PPChar;
   envp: PPChar;
   envp: PPChar;
-  __fpc_wasm_suspender: WasmExternRef; section 'WebAssembly.Global';
+  ___fpc_wasm_suspender: WasmExternRef; section 'WebAssembly.Global';
+
+function __fpc_get_wasm_suspender: WasmExternRef;
+procedure __fpc_set_wasm_suspender(v: WasmExternRef);
+
+property __fpc_wasm_suspender: WasmExternRef read __fpc_get_wasm_suspender write __fpc_set_wasm_suspender;
 
 
 implementation
 implementation
 
 
@@ -79,6 +84,16 @@ end;
 exports 
 exports 
   WasiAlloc,WasiFree;
   WasiAlloc,WasiFree;
 
 
+function __fpc_get_wasm_suspender: WasmExternRef;
+begin
+  result:=___fpc_wasm_suspender;
+end;
+
+procedure __fpc_set_wasm_suspender(v: WasmExternRef);
+begin
+  ___fpc_wasm_suspender:=v;
+end;
+
 function ConvertToFdRelativePath(path: RawByteString; out fd: LongInt; out relfd_path: RawByteString): Word; forward;
 function ConvertToFdRelativePath(path: RawByteString; out fd: LongInt; out relfd_path: RawByteString): Word; forward;
 
 
 function fpc_wasi_path_readlink_ansistring(
 function fpc_wasi_path_readlink_ansistring(