Skip to content

Commit 41059ee

Browse files
committed
node-api: add napi_float16_array
Fixes: #58873
1 parent f6a4305 commit 41059ee

File tree

4 files changed

+11
-2
lines changed

4 files changed

+11
-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
@@ -3149,6 +3149,10 @@ napi_status NAPI_CDECL napi_create_typedarray(napi_env env,
31493149
CREATE_TYPED_ARRAY(
31503150
env, Uint32Array, 4, buffer, byte_offset, length, typedArray);
31513151
break;
3152+
case napi_float16_array:
3153+
CREATE_TYPED_ARRAY(
3154+
env, Float16Array, 2, buffer, byte_offset, length, typedArray);
3155+
break;
31523156
case napi_float32_array:
31533157
CREATE_TYPED_ARRAY(
31543158
env, Float32Array, 4, buffer, byte_offset, length, typedArray);
@@ -3203,6 +3207,8 @@ napi_status NAPI_CDECL napi_get_typedarray_info(napi_env env,
32033207
*type = napi_int32_array;
32043208
} else if (value->IsUint32Array()) {
32053209
*type = napi_uint32_array;
3210+
} else if (value->IsFloat16Array()) {
3211+
*type = napi_float16_array;
32063212
} else if (value->IsFloat32Array()) {
32073213
*type = napi_float32_array;
32083214
} else if (value->IsFloat64Array()) {

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@ assert.strictEqual(externalResult[2], 2);
4141
// Validate creation of all kinds of TypedArrays
4242
const buffer = new ArrayBuffer(128);
4343
const arrayTypes = [ Int8Array, Uint8Array, Uint8ClampedArray, Int16Array,
44-
Uint16Array, Int32Array, Uint32Array, Float32Array,
45-
Float64Array, BigInt64Array, BigUint64Array ];
44+
Uint16Array, Int32Array, Uint32Array, Float16Array,
45+
Float32Array, Float64Array, BigInt64Array,
46+
BigUint64Array ];
4647

4748
arrayTypes.forEach((currentType) => {
4849
const template = Reflect.construct(currentType, buffer);

0 commit comments

Comments
 (0)