From 8ea570af56847911f38d705d6f6b7bea594383fe Mon Sep 17 00:00:00 2001 From: Michael Van Canneyt Date: Mon, 4 Nov 2024 14:14:19 +0100 Subject: [PATCH] * define TJSSharedArrayBuffer --- packages/rtl/src/js.pas | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/packages/rtl/src/js.pas b/packages/rtl/src/js.pas index 755a0cb..dc7ee05 100644 --- a/packages/rtl/src/js.pas +++ b/packages/rtl/src/js.pas @@ -487,17 +487,39 @@ type property Elements[Index: NativeInt]: JSValue read GetElements write SetElements; default; end; - TJSArrayBuffer = Class external name 'ArrayBuffer' (TJSObject) + TJSAbstractArrayBuffer = Class external name 'Object' (TJSObject) private fLength : NativeInt; external name 'byteLength'; - public + fmaxByteLength: NativeInt; external name 'maxByteLength'; + Public constructor new(aByteLength : NativeInt); - class function isView(aValue : JSValue) : Boolean; + Property byteLength : NativeInt Read fLength; + property maxByteLength : NativeInt Read fmaxByteLength; + end; + + { TJSArrayBuffer } + + TJSArrayBuffer = Class external name 'ArrayBuffer' (TJSAbstractArrayBuffer) + private + fResizable: Boolean; external name 'resizable'; + public + class function isView(aValue : JSValue) : Boolean; function slice(aBegin : NativeInt) : TJSArrayBuffer; overload; function slice(aBegin,aEnd : NativeInt) : TJSArrayBuffer; overload; - Property byteLength : NativeInt Read fLength; + property resizable : Boolean Read fResizable; end; + TJSSharedArrayBuffer = Class external name 'SharedArrayBuffer' (TJSAbstractArrayBuffer) + private + fGrowable : boolean; external name 'growable'; + public + procedure grow(aNewLength : nativeInt); + function slice(aBegin : NativeInt) : TJSSharedArrayBuffer; overload; + function slice(aBegin,aEnd : NativeInt) : TJSSharedArrayBuffer; overload; + property growable : Boolean Read fGrowable; + end; + + TJSBufferSource = class external name 'BufferSource' (TJSObject) end; @@ -787,11 +809,15 @@ type Property values[Index : NativeInt] : Float64 Read getTypedValue Write setTypedValue; default; end; + { TJSDataView } + TJSDataView = Class external name 'DataView' (TJSBufferSource) private fBuffer : TJSArrayBuffer; external name 'buffer'; + fBufferObj: TJSAbstractArrayBuffer; external name 'buffer'; fLength : NativeInt; external name 'byteLength'; fOffset : NativeInt; external name 'byteOffset'; + public constructor new(aBuffer : TJSArrayBuffer); overload; constructor new(aBuffer : TJSArrayBuffer; aOffset : NativeInt); overload; @@ -828,6 +854,7 @@ type Property byteLength : NativeInt Read fLength; Property byteOffset : NativeInt read fOffset; property buffer : TJSArrayBuffer Read fBuffer; + property bufferObj : TJSAbstractArrayBuffer Read fBufferObj; end; TJSJSON = class external name 'JSON' (TJSObject)