mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 19:49:31 +02:00
* Add TJSAtomics.waitAsync
This commit is contained in:
parent
671079789c
commit
3e6ae3f887
@ -1332,6 +1332,26 @@ type
|
||||
IJSAtomics = interface
|
||||
end;
|
||||
|
||||
IJSAtomicAsyncWaitResult = Interface(IJSObject) ['{FCAA8244-08C2-4638-89F2-408473EC0096}']
|
||||
function getAsync : Boolean;
|
||||
function getValueAsString : String;
|
||||
function getValueAsPromise : IJSPromise;
|
||||
property Async : boolean read getAsync;
|
||||
property valueAsPromise : IJSPromise read GetValueAsPromise;
|
||||
property valueAsString: UnicodeString read GetValueAsString;
|
||||
end;
|
||||
|
||||
{ TJSAtomicAsyncWaitResult }
|
||||
|
||||
TJSAtomicAsyncWaitResult = class(TJSObject,IJSAtomicAsyncWaitResult)
|
||||
function getAsync : Boolean;
|
||||
function getValueAsString : String;
|
||||
function getValueAsPromise : IJSPromise;
|
||||
property Async : boolean read getAsync;
|
||||
property valueAsPromise : IJSPromise read GetValueAsPromise;
|
||||
property valueAsString: UnicodeString read GetValueAsString;
|
||||
end;
|
||||
|
||||
{ TJSAtomics }
|
||||
|
||||
TJSAtomics = class (TJSObject,IJSAtomics)
|
||||
@ -1347,6 +1367,8 @@ type
|
||||
class function sub(aTypedArray : IJSTypedArray; index: integer; value : Integer) : integer;
|
||||
class function wait(aTypedArray: IJSTypedArray; index: integer; value: Integer): unicodestring;
|
||||
class function wait(aTypedArray: IJSTypedArray; index: integer; value: Integer; TimeOut: integer): unicodestring;
|
||||
class function waitAsync(aTypedArray: IJSTypedArray; index: integer; value: Integer; TimeOut: integer): IJSAtomicAsyncWaitResult;
|
||||
class function waitAsync(aTypedArray: IJSTypedArray; index: integer; value: Integer): IJSAtomicAsyncWaitResult;
|
||||
class function xor_(aTypedArray : IJSTypedArray; index: integer; value : Integer) : integer;
|
||||
end;
|
||||
|
||||
@ -1758,6 +1780,29 @@ begin
|
||||
Result:=TJSTextEncoder.JOBCast(Intf);
|
||||
end;
|
||||
|
||||
{ TJSAtomicAsyncWaitResult }
|
||||
|
||||
function TJSAtomicAsyncWaitResult.getAsync: Boolean;
|
||||
begin
|
||||
ReadJSPropertyBoolean('async');
|
||||
end;
|
||||
|
||||
function TJSAtomicAsyncWaitResult.getValueAsString: String;
|
||||
begin
|
||||
if getAsync then
|
||||
Result:=''
|
||||
else
|
||||
Result:=ReadJSPropertyString('value');
|
||||
end;
|
||||
|
||||
function TJSAtomicAsyncWaitResult.getValueAsPromise: IJSPromise;
|
||||
begin
|
||||
if getAsync then
|
||||
Result:=ReadJSPropertyObject('value',TJSPromise);
|
||||
else
|
||||
Result:=Nil
|
||||
end;
|
||||
|
||||
{ TJSAtomics }
|
||||
|
||||
class function TJSAtomics.add(aTypedArray: IJSTypedArray; index: integer; value: Integer): integer;
|
||||
@ -1821,6 +1866,17 @@ begin
|
||||
Result:=JSAtomics.InvokeJSUnicodeStringResult('wait',[aTypedArray,Index,value,timeout]);
|
||||
end;
|
||||
|
||||
class function TJSAtomics.waitAsync(aTypedArray: IJSTypedArray; index: integer; value: Integer; TimeOut: integer
|
||||
): IJSAtomicAsyncWaitResult;
|
||||
begin
|
||||
Result:=JSAtomics.InvokeJSObjectResult('waitAsync',[aTypedArray,Index,value,timeout],TJSAtomicAsyncWaitResult) as IJSAtomicAsyncWaitResult;
|
||||
end;
|
||||
|
||||
class function TJSAtomics.waitAsync(aTypedArray: IJSTypedArray; index: integer; value: Integer): IJSAtomicAsyncWaitResult;
|
||||
begin
|
||||
Result:=JSAtomics.InvokeJSObjectResult('waitAsync',[aTypedArray,Index,value],TJSAtomicAsyncWaitResult) as IJSAtomicAsyncWaitResult;
|
||||
end;
|
||||
|
||||
class function TJSAtomics.xor_(aTypedArray: IJSTypedArray; index: integer; value: Integer): integer;
|
||||
begin
|
||||
Result:=JSAtomics.InvokeJSLongintResult('xor',[aTypedArray,Index,value]);
|
||||
|
Loading…
Reference in New Issue
Block a user