We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 04b09a8 commit cb22234Copy full SHA for cb22234
doc/api/n-api.md
@@ -2286,6 +2286,13 @@ object such that no properties can be set on it, and no prototype.
2286
2287
#### `napi_typedarray_type`
2288
2289
+<!-- YAML
2290
+changes:
2291
+ - version: REPLACEME
2292
+ pr-url: https://github.com/nodejs/node/pull/58879
2293
+ description: Added `napi_float16_array` for Float16Array support.
2294
+-->
2295
+
2296
```c
2297
typedef enum {
2298
napi_int8_array,
@@ -2299,6 +2306,7 @@ typedef enum {
2299
2306
napi_float64_array,
2300
2307
napi_bigint64_array,
2301
2308
napi_biguint64_array,
2309
+ napi_float16_array,
2302
2310
} napi_typedarray_type;
2303
2311
```
2304
2312
src/js_native_api_types.h
@@ -133,6 +133,8 @@ typedef enum {
133
134
135
136
+#define NODE_API_HAS_FLOAT16_ARRAY
137
138
139
140
src/js_native_api_v8.cc
@@ -3259,6 +3259,10 @@ napi_status NAPI_CDECL napi_create_typedarray(napi_env env,
3259
CREATE_TYPED_ARRAY(
3260
env, BigUint64Array, 8, buffer, byte_offset, length, typedArray);
3261
break;
3262
+ case napi_float16_array:
3263
+ CREATE_TYPED_ARRAY(
3264
+ env, Float16Array, 2, buffer, byte_offset, length, typedArray);
3265
+ break;
3266
default:
3267
return napi_set_last_error(env, napi_invalid_arg);
3268
}
@@ -3297,6 +3301,8 @@ napi_status NAPI_CDECL napi_get_typedarray_info(napi_env env,
3297
3301
*type = napi_int32_array;
3298
3302
} else if (value->IsUint32Array()) {
3299
3303
*type = napi_uint32_array;
3304
+ } else if (value->IsFloat16Array()) {
3305
+ *type = napi_float16_array;
3300
3306
} else if (value->IsFloat32Array()) {
3307
*type = napi_float32_array;
3308
} else if (value->IsFloat64Array()) {
test/js-native-api/test_typedarray/test.js
@@ -41,8 +41,8 @@ assert.strictEqual(externalResult[2], 2);
41
// Validate creation of all kinds of TypedArrays
42
const buffer = new ArrayBuffer(128);
43
const arrayTypes = [ Int8Array, Uint8Array, Uint8ClampedArray, Int16Array,
44
- Uint16Array, Int32Array, Uint32Array, Float32Array,
45
- Float64Array, BigInt64Array, BigUint64Array ];
+ Uint16Array, Int32Array, Uint32Array, Float16Array,
+ Float32Array, Float64Array, BigInt64Array, BigUint64Array ];
46
47
arrayTypes.forEach((currentType) => {
48
const template = Reflect.construct(currentType, buffer);
@@ -64,7 +64,7 @@ arrayTypes.forEach((currentType) => {
64
});
65
66
const nonByteArrayTypes = [ Int16Array, Uint16Array, Int32Array, Uint32Array,
67
- Float32Array, Float64Array,
+ Float16Array, Float32Array, Float64Array,
68
BigInt64Array, BigUint64Array ];
69
nonByteArrayTypes.forEach((currentType) => {
70
test/js-native-api/test_typedarray/test_typedarray.c
@@ -75,10 +75,9 @@ static napi_value Multiply(napi_env env, napi_callback_info info) {
75
return output_array;
76
77
78
-static void FinalizeCallback(napi_env env,
+static void FinalizeCallback(node_api_basic_env env,
79
void* finalize_data,
80
- void* finalize_hint)
81
-{
+ void* finalize_hint) {
82
free(finalize_data);
83
84
0 commit comments