|
@@ -710,30 +710,55 @@ type
|
|
|
|
|
|
IJSArrayBuffer = interface(IJSObject)
|
|
IJSArrayBuffer = interface(IJSObject)
|
|
['{A1612EED-4F05-46C0-90BE-ACD511B15E89}']
|
|
['{A1612EED-4F05-46C0-90BE-ACD511B15E89}']
|
|
|
|
+ function Slice : IJSArrayBuffer;
|
|
|
|
+ function Slice (aStart : NativeInt): IJSArrayBuffer;
|
|
|
|
+ function Slice (aStart,aEndExclusive : NativeInt): IJSArrayBuffer;
|
|
|
|
+ function _getByteLength: Nativeint;
|
|
|
|
+ function _getDetached: Boolean;
|
|
|
|
+ function _getMaxByteLength: Nativeint;
|
|
|
|
+ function _getResizable: Boolean;
|
|
|
|
+ property byteLength : Nativeint Read _getByteLength;
|
|
|
|
+ property maxByteLength : Nativeint Read _getMaxByteLength;
|
|
|
|
+ property detached : Boolean Read _getDetached;
|
|
|
|
+ property resizable : Boolean Read _getResizable;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
{ TJSArrayBuffer }
|
|
{ TJSArrayBuffer }
|
|
|
|
|
|
TJSArrayBuffer = class(TJSObject,IJSArrayBuffer)
|
|
TJSArrayBuffer = class(TJSObject,IJSArrayBuffer)
|
|
|
|
+ Protected
|
|
|
|
+ function _getByteLength: Nativeint;
|
|
|
|
+ function _getDetached: Boolean;
|
|
|
|
+ function _getMaxByteLength: Nativeint;
|
|
|
|
+ function _getResizable: Boolean;
|
|
public
|
|
public
|
|
|
|
+ constructor create (aSize : integer);
|
|
|
|
+ class function GlobalMemory : TJSArrayBuffer;
|
|
|
|
+ function Slice : IJSArrayBuffer;
|
|
|
|
+ function Slice (aStart : NativeInt): IJSArrayBuffer;
|
|
|
|
+ function Slice (aStart,aEndExclusive : NativeInt): IJSArrayBuffer;
|
|
class function Cast(const Intf: IJSObject): IJSArrayBuffer; overload;
|
|
class function Cast(const Intf: IJSObject): IJSArrayBuffer; overload;
|
|
|
|
+ class function JSClassName: UnicodeString; override;
|
|
|
|
+ property byteLength : Nativeint Read _getByteLength;
|
|
|
|
+ property maxByteLength : Nativeint Read _getMaxByteLength;
|
|
|
|
+ property detached : Boolean Read _getDetached;
|
|
|
|
+ property resizable : Boolean Read _getResizable;
|
|
|
|
+
|
|
end;
|
|
end;
|
|
|
|
|
|
{ IJSArrayBufferView }
|
|
{ IJSArrayBufferView }
|
|
-
|
|
|
|
IJSArrayBufferView = interface(IJSObject)
|
|
IJSArrayBufferView = interface(IJSObject)
|
|
['{A1612EED-4F05-46C0-90BE-ACD511B1598E}']
|
|
['{A1612EED-4F05-46C0-90BE-ACD511B1598E}']
|
|
end;
|
|
end;
|
|
-
|
|
|
|
|
|
+
|
|
{ TJSArrayBufferView }
|
|
{ TJSArrayBufferView }
|
|
-
|
|
|
|
|
|
+
|
|
TJSArrayBufferView = class(TJSObject,IJSArrayBufferView)
|
|
TJSArrayBufferView = class(TJSObject,IJSArrayBufferView)
|
|
public
|
|
public
|
|
class function Cast(const Intf: IJSObject): IJSArrayBufferView; overload;
|
|
class function Cast(const Intf: IJSObject): IJSArrayBufferView; overload;
|
|
end;
|
|
end;
|
|
|
|
|
|
-
|
|
|
|
{ IJSTypedArray }
|
|
{ IJSTypedArray }
|
|
|
|
|
|
IJSTypedArray = interface(IJSObject)
|
|
IJSTypedArray = interface(IJSObject)
|
|
@@ -761,6 +786,7 @@ type
|
|
public
|
|
public
|
|
constructor Create(aBytes : PByte; aLen : NativeUInt);
|
|
constructor Create(aBytes : PByte; aLen : NativeUInt);
|
|
constructor Create(aBytes : TBytes);
|
|
constructor Create(aBytes : TBytes);
|
|
|
|
+ constructor create(aArray : IJSArrayBuffer);
|
|
class function Cast(const Intf: IJSObject): IJSTypedArray; overload;
|
|
class function Cast(const Intf: IJSObject): IJSTypedArray; overload;
|
|
procedure set_(aArray : IJSTypedArray; TargetOffset : Integer);
|
|
procedure set_(aArray : IJSTypedArray; TargetOffset : Integer);
|
|
procedure set_(aArray : IJSTypedArray);
|
|
procedure set_(aArray : IJSTypedArray);
|
|
@@ -1834,6 +1860,11 @@ begin
|
|
JobCreate(True,[Data]);
|
|
JobCreate(True,[Data]);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+constructor TJSTypedArray.create(aArray: IJSArrayBuffer);
|
|
|
|
+begin
|
|
|
|
+ JobCreate(True,[aArray]);
|
|
|
|
+end;
|
|
|
|
+
|
|
class function TJSTypedArray.Cast(const Intf: IJSObject): IJSTypedArray;
|
|
class function TJSTypedArray.Cast(const Intf: IJSObject): IJSTypedArray;
|
|
begin
|
|
begin
|
|
Result:=TJSTypedArray.Cast(Intf);
|
|
Result:=TJSTypedArray.Cast(Intf);
|
|
@@ -1851,9 +1882,60 @@ end;
|
|
|
|
|
|
{ TJSArrayBuffer }
|
|
{ TJSArrayBuffer }
|
|
|
|
|
|
|
|
+function TJSArrayBuffer._getByteLength: Nativeint;
|
|
|
|
+begin
|
|
|
|
+ Result:=ReadJSPropertyInt64('byteLength');
|
|
|
|
+
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSArrayBuffer._getDetached: Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=ReadJSPropertyBoolean('detached');
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSArrayBuffer._getMaxByteLength: Nativeint;
|
|
|
|
+begin
|
|
|
|
+ Result:=ReadJSPropertyInt64('maxByteLength');
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSArrayBuffer._getResizable: Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=ReadJSPropertyBoolean('resizable');
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+constructor TJSArrayBuffer.create(aSize: integer);
|
|
|
|
+begin
|
|
|
|
+ JobCreate(True,[aSize])
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+class function TJSArrayBuffer.GlobalMemory: TJSArrayBuffer;
|
|
|
|
+begin
|
|
|
|
+ Result:=JOBCreateGlobal('InstanceBuffer');
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSArrayBuffer.Slice: IJSArrayBuffer;
|
|
|
|
+begin
|
|
|
|
+ Result:=InvokeJSObjectResult('slice',[],TJSArrayBuffer) as IJSArrayBuffer;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSArrayBuffer.Slice(aStart: NativeInt): IJSArrayBuffer;
|
|
|
|
+begin
|
|
|
|
+ Result:=InvokeJSObjectResult('slice',[aStart],TJSArrayBuffer) as IJSArrayBuffer;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSArrayBuffer.Slice(aStart, aEndExclusive: NativeInt): IJSArrayBuffer;
|
|
|
|
+begin
|
|
|
|
+ Result:=InvokeJSObjectResult('slice',[aStart,aEndExclusive],TJSArrayBuffer) as IJSArrayBuffer;
|
|
|
|
+end;
|
|
|
|
+
|
|
class function TJSArrayBuffer.Cast(const Intf: IJSObject): IJSArrayBuffer;
|
|
class function TJSArrayBuffer.Cast(const Intf: IJSObject): IJSArrayBuffer;
|
|
begin
|
|
begin
|
|
- Result:=TJSArrayBuffer.Cast(Intf);
|
|
|
|
|
|
+ Result:=TJSArrayBuffer.JOBCast(Intf);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+class function TJSArrayBuffer.JSClassName: UnicodeString;
|
|
|
|
+begin
|
|
|
|
+ Result:='ArrayBuffer';
|
|
end;
|
|
end;
|
|
|
|
|
|
{ TJSArrayBufferView }
|
|
{ TJSArrayBufferView }
|
|
@@ -1863,9 +1945,6 @@ begin
|
|
Result:=TJSArrayBufferView.JOBCast(Intf);
|
|
Result:=TJSArrayBufferView.JOBCast(Intf);
|
|
end;
|
|
end;
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
{ TJSArray }
|
|
{ TJSArray }
|
|
|
|
|
|
function TJSArray._GetElements(Index: NativeInt): TJOB_JSValue;
|
|
function TJSArray._GetElements(Index: NativeInt): TJOB_JSValue;
|
|
@@ -3983,6 +4062,7 @@ begin
|
|
Result:=InvokeJSUnicodeStringResult('toLocaleDateString',[]);
|
|
Result:=InvokeJSUnicodeStringResult('toLocaleDateString',[]);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+
|
|
exports JOBCallback;
|
|
exports JOBCallback;
|
|
|
|
|
|
initialization
|
|
initialization
|