* Webassembly shared buffer & IsSharedBuffer

This commit is contained in:
Michael Van Canneyt 2025-04-18 09:47:43 +02:00
parent 7137a54cf2
commit 329b963c80

View File

@ -41,11 +41,19 @@ Type
TJSWebAssemblyMemory = class external name 'WebAssembly.Memory' (TJSObject)
private
FBuffer: TJSArrayBuffer; external name 'buffer';
FSharedBuffer: TJSSharedArrayBuffer; external name 'buffer';
Public
constructor new (memorydescriptor : TJSWebAssemblyMemoryDescriptor);
constructor new (memorydescriptor : TJSObject);
Function grow(number : NativeInt) : NativeInt; external name 'grow';
Property buffer : TJSArrayBuffer Read FBuffer;
Property Sharedbuffer : TJSSharedArrayBuffer Read FSharedBuffer;
end;
{ TJSWebAssemblyMemoryHelper }
TJSWebAssemblyMemoryHelper = class helper for TJSWebAssemblyMemory
function IsSharedBuffer : Boolean;
end;
{ TJSModulesArray }
@ -129,5 +137,15 @@ Type
implementation
{ TJSWebAssemblyMemoryHelper }
function TJSWebAssemblyMemoryHelper.IsSharedBuffer: Boolean;
begin
asm
return ((!(buffer === null)) && (typeof this.FBuffer === 'object'))
&& (this.FBuffer instanceof SharedArrayBuffer);
end;
end;
end.