Skip to content

Commit 87c203c

Browse files
committed
Added BigInt64 and BigUint64 Typed Array Support
1 parent 01d777e commit 87c203c

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

mozjs/src/jsglue.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -937,6 +937,8 @@ JS_DEFINE_DATA_AND_LENGTH_ACCESSOR(Int16, int16_t)
937937
JS_DEFINE_DATA_AND_LENGTH_ACCESSOR(Uint16, uint16_t)
938938
JS_DEFINE_DATA_AND_LENGTH_ACCESSOR(Int32, int32_t)
939939
JS_DEFINE_DATA_AND_LENGTH_ACCESSOR(Uint32, uint32_t)
940+
JS_DEFINE_DATA_AND_LENGTH_ACCESSOR(BigInt64, int64_t)
941+
JS_DEFINE_DATA_AND_LENGTH_ACCESSOR(BigUint64, uint64_t)
940942
JS_DEFINE_DATA_AND_LENGTH_ACCESSOR(Float32, float)
941943
JS_DEFINE_DATA_AND_LENGTH_ACCESSOR(Float64, double)
942944

mozjs/src/typedarray.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
use crate::conversions::ConversionResult;
1010
use crate::conversions::FromJSValConvertible;
1111
use crate::conversions::ToJSValConvertible;
12+
use crate::glue::GetBigInt64ArrayLengthAndData;
13+
use crate::glue::GetBigUint64ArrayLengthAndData;
1214
use crate::glue::GetFloat32ArrayLengthAndData;
1315
use crate::glue::GetFloat64ArrayLengthAndData;
1416
use crate::glue::GetInt16ArrayLengthAndData;
@@ -26,6 +28,8 @@ use crate::jsapi::JSContext;
2628
use crate::jsapi::JSObject;
2729
use crate::jsapi::JSTracer;
2830
use crate::jsapi::JS_GetArrayBufferViewType;
31+
use crate::jsapi::JS_GetBigInt64ArrayData;
32+
use crate::jsapi::JS_GetBigUint64ArrayData;
2933
use crate::jsapi::JS_GetFloat32ArrayData;
3034
use crate::jsapi::JS_GetFloat64ArrayData;
3135
use crate::jsapi::JS_GetInt16ArrayData;
@@ -36,6 +40,8 @@ use crate::jsapi::JS_GetUint16ArrayData;
3640
use crate::jsapi::JS_GetUint32ArrayData;
3741
use crate::jsapi::JS_GetUint8ArrayData;
3842
use crate::jsapi::JS_GetUint8ClampedArrayData;
43+
use crate::jsapi::JS_NewBigInt64Array;
44+
use crate::jsapi::JS_NewBigUint64Array;
3945
use crate::jsapi::JS_NewFloat32Array;
4046
use crate::jsapi::JS_NewFloat64Array;
4147
use crate::jsapi::JS_NewInt16Array;
@@ -49,6 +55,8 @@ use crate::jsapi::NewArrayBuffer;
4955
use crate::jsapi::Type;
5056
use crate::jsapi::UnwrapArrayBuffer;
5157
use crate::jsapi::UnwrapArrayBufferView;
58+
use crate::jsapi::UnwrapBigInt64Array;
59+
use crate::jsapi::UnwrapBigUint64Array;
5260
use crate::jsapi::UnwrapFloat32Array;
5361
use crate::jsapi::UnwrapFloat64Array;
5462
use crate::jsapi::UnwrapInt16Array;
@@ -354,6 +362,14 @@ typed_array_element!(
354362
JS_NewUint32Array,
355363
JS_GetUint32ArrayData
356364
);
365+
typed_array_element!(
366+
BigUint64,
367+
u64,
368+
UnwrapBigUint64Array,
369+
GetBigUint64ArrayLengthAndData,
370+
JS_NewBigUint64Array,
371+
JS_GetBigUint64ArrayData
372+
);
357373
typed_array_element!(
358374
Int8,
359375
i8,
@@ -378,6 +394,14 @@ typed_array_element!(
378394
JS_NewInt32Array,
379395
JS_GetInt32ArrayData
380396
);
397+
typed_array_element!(
398+
BigInt64,
399+
i64,
400+
UnwrapBigInt64Array,
401+
GetBigInt64ArrayLengthAndData,
402+
JS_NewBigInt64Array,
403+
JS_GetBigInt64ArrayData
404+
);
381405
typed_array_element!(
382406
Float32,
383407
f32,
@@ -433,6 +457,8 @@ array_alias!(Uint16Array, HeapUint16Array, Uint16);
433457
array_alias!(Int16Array, HeapInt16Array, Int16);
434458
array_alias!(Uint32Array, HeapUint32Array, Uint32);
435459
array_alias!(Int32Array, HeapInt32Array, Int32);
460+
array_alias!(BigUint64Array, HeapBigUint64Array, BigUint64);
461+
array_alias!(BigInt64Array, HeapBigInt64Array, BigInt64);
436462
array_alias!(Float32Array, HeapFloat32Array, Float32);
437463
array_alias!(Float64Array, HeapFloat64Array, Float64);
438464
array_alias!(ArrayBuffer, HeapArrayBuffer, ArrayBufferU8);

0 commit comments

Comments
 (0)