Browse Source

* Implement DataView properties

Michaël Van Canneyt 1 year ago
parent
commit
89cd72b71c
1 changed files with 27 additions and 0 deletions
  1. 27 0
      packages/wasm-job/src/job.js.pas

+ 27 - 0
packages/wasm-job/src/job.js.pas

@@ -1028,6 +1028,10 @@ type
 
 
   IJSDataView = interface(IJSObject)
   IJSDataView = interface(IJSObject)
     ['{42F14387-FAD2-46BA-8CB4-057445095CEE}']
     ['{42F14387-FAD2-46BA-8CB4-057445095CEE}']
+    function _getBuffer: IJSArrayBuffer;
+    function _getByteLength: Longint;
+    function _getByteOffset: Longint;
+
     function getBigInt64(byteOffset : Longint) : Int64;
     function getBigInt64(byteOffset : Longint) : Int64;
     function getBigInt64(byteOffset : Longint; littleEndian : Boolean) : Int64;
     function getBigInt64(byteOffset : Longint; littleEndian : Boolean) : Int64;
     function getInt32(byteOffset : Longint) : Longint;
     function getInt32(byteOffset : Longint) : Longint;
@@ -1061,11 +1065,19 @@ type
     procedure setFloat64(byteOffset : Longint; aValue : Double; littleEndian : Boolean);
     procedure setFloat64(byteOffset : Longint; aValue : Double; littleEndian : Boolean);
     procedure setFloat32(byteOffset : Longint; aValue : Single);
     procedure setFloat32(byteOffset : Longint; aValue : Single);
     procedure setFloat32(byteOffset : Longint; aValue : Single; littleEndian : Boolean);
     procedure setFloat32(byteOffset : Longint; aValue : Single; littleEndian : Boolean);
+
+    property buffer : IJSArrayBuffer Read _getBuffer;
+    property byteLength : Longint Read _getByteLength;
+    property byteOffset : Longint Read _getByteOffset;
   end;
   end;
 
 
   { TJSDataView }
   { TJSDataView }
 
 
   TJSDataView = class(TJSObject,IJSDataView)
   TJSDataView = class(TJSObject,IJSDataView)
+  protected
+    function _getBuffer: IJSArrayBuffer;
+    function _getByteLength: Longint;
+    function _getByteOffset: Longint;
   public
   public
     constructor create(aBuffer : IJSArrayBuffer);
     constructor create(aBuffer : IJSArrayBuffer);
     constructor create(aBuffer : IJSArrayBuffer; aOffset : longint);
     constructor create(aBuffer : IJSArrayBuffer; aOffset : longint);
@@ -1708,6 +1720,21 @@ end;
 
 
 { TJSDataView }
 { TJSDataView }
 
 
+function TJSDataView._getBuffer: IJSArrayBuffer;
+begin
+  Result:=ReadJSPropertyObject('buffer',TJSArrayBuffer) as IJSArrayBuffer;
+end;
+
+function TJSDataView._getByteLength: Longint;
+begin
+  Result:=ReadJSPropertyLongInt('byteLength');
+end;
+
+function TJSDataView._getByteOffset: Longint;
+begin
+  Result:=ReadJSPropertyLongInt('byteOffset');
+end;
+
 constructor TJSDataView.create(aBuffer: IJSArrayBuffer);
 constructor TJSDataView.create(aBuffer: IJSArrayBuffer);
 begin
 begin
   JOBCreate([aBuffer]);
   JOBCreate([aBuffer]);