Skip to content

Commit 3d5bf56

Browse files
committed
node-api: add support for Float16Array
1 parent f0a9478 commit 3d5bf56

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

doc/api/n-api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2267,6 +2267,7 @@ typedef enum {
22672267
napi_float64_array,
22682268
napi_bigint64_array,
22692269
napi_biguint64_array,
2270+
napi_float16_array
22702271
} napi_typedarray_type;
22712272
```
22722273

src/js_native_api_types.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ typedef enum {
105105
napi_float64_array,
106106
napi_bigint64_array,
107107
napi_biguint64_array,
108+
napi_float16_array,
108109
} napi_typedarray_type;
109110

110111
typedef enum {

src/js_native_api_v8.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3165,6 +3165,10 @@ napi_status NAPI_CDECL napi_create_typedarray(napi_env env,
31653165
CREATE_TYPED_ARRAY(
31663166
env, BigUint64Array, 8, buffer, byte_offset, length, typedArray);
31673167
break;
3168+
case napi_float16_array:
3169+
CREATE_TYPED_ARRAY(
3170+
env, Float16Array, 2, buffer, byte_offset, length, typedArray);
3171+
break;
31683172
default:
31693173
return napi_set_last_error(env, napi_invalid_arg);
31703174
}
@@ -3211,6 +3215,8 @@ napi_status NAPI_CDECL napi_get_typedarray_info(napi_env env,
32113215
*type = napi_bigint64_array;
32123216
} else if (value->IsBigUint64Array()) {
32133217
*type = napi_biguint64_array;
3218+
} else if (value->IsFloat16Array()) {
3219+
*type = napi_float16_array;
32143220
}
32153221
}
32163222

test/js-native-api/test_typedarray/test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ assert.strictEqual(externalResult[2], 2);
4242
const buffer = new ArrayBuffer(128);
4343
const arrayTypes = [ Int8Array, Uint8Array, Uint8ClampedArray, Int16Array,
4444
Uint16Array, Int32Array, Uint32Array, Float32Array,
45-
Float64Array, BigInt64Array, BigUint64Array ];
45+
Float64Array, BigInt64Array, BigUint64Array, Float16Array ];
4646

4747
arrayTypes.forEach((currentType) => {
4848
const template = Reflect.construct(currentType, buffer);
@@ -65,7 +65,7 @@ arrayTypes.forEach((currentType) => {
6565

6666
const nonByteArrayTypes = [ Int16Array, Uint16Array, Int32Array, Uint32Array,
6767
Float32Array, Float64Array,
68-
BigInt64Array, BigUint64Array ];
68+
BigInt64Array, BigUint64Array, Float16Array ];
6969
nonByteArrayTypes.forEach((currentType) => {
7070
const template = Reflect.construct(currentType, buffer);
7171
assert.throws(() => {

0 commit comments

Comments
 (0)