node-addon-api 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +84 -0
- package/README.md +67 -47
- package/napi-inl.deprecated.h +8 -8
- package/napi-inl.h +118 -80
- package/napi.h +513 -424
- package/package.json +25 -5
- package/tools/clang-format.js +30 -10
- package/.clang-format +0 -111
- package/.editorconfig +0 -8
- package/.github/workflows/ci.yml +0 -55
- package/.github/workflows/linter.yml +0 -24
- package/.github/workflows/stale.yml +0 -18
- package/.travis.yml +0 -58
- package/CODE_OF_CONDUCT.md +0 -4
- package/CONTRIBUTING.md +0 -66
- package/appveyor.yml +0 -37
- package/benchmark/README.md +0 -47
- package/benchmark/binding.gyp +0 -25
- package/benchmark/function_args.cc +0 -217
- package/benchmark/function_args.js +0 -60
- package/benchmark/index.js +0 -34
- package/benchmark/property_descriptor.cc +0 -91
- package/benchmark/property_descriptor.js +0 -37
- package/doc/addon.md +0 -157
- package/doc/array.md +0 -81
- package/doc/array_buffer.md +0 -149
- package/doc/async_context.md +0 -86
- package/doc/async_operations.md +0 -31
- package/doc/async_worker.md +0 -427
- package/doc/async_worker_variants.md +0 -557
- package/doc/bigint.md +0 -97
- package/doc/boolean.md +0 -68
- package/doc/buffer.md +0 -144
- package/doc/callback_scope.md +0 -54
- package/doc/callbackinfo.md +0 -97
- package/doc/checker-tool.md +0 -32
- package/doc/class_property_descriptor.md +0 -117
- package/doc/cmake-js.md +0 -68
- package/doc/conversion-tool.md +0 -28
- package/doc/creating_a_release.md +0 -62
- package/doc/dataview.md +0 -248
- package/doc/date.md +0 -68
- package/doc/env.md +0 -132
- package/doc/error.md +0 -120
- package/doc/error_handling.md +0 -186
- package/doc/escapable_handle_scope.md +0 -82
- package/doc/external.md +0 -63
- package/doc/function.md +0 -402
- package/doc/function_reference.md +0 -238
- package/doc/generator.md +0 -13
- package/doc/handle_scope.md +0 -65
- package/doc/hierarchy.md +0 -91
- package/doc/instance_wrap.md +0 -408
- package/doc/memory_management.md +0 -27
- package/doc/name.md +0 -29
- package/doc/node-gyp.md +0 -82
- package/doc/number.md +0 -163
- package/doc/object.md +0 -279
- package/doc/object_lifetime_management.md +0 -83
- package/doc/object_reference.md +0 -117
- package/doc/object_wrap.md +0 -561
- package/doc/prebuild_tools.md +0 -16
- package/doc/promises.md +0 -79
- package/doc/property_descriptor.md +0 -286
- package/doc/range_error.md +0 -59
- package/doc/reference.md +0 -111
- package/doc/setup.md +0 -81
- package/doc/string.md +0 -93
- package/doc/symbol.md +0 -48
- package/doc/threadsafe.md +0 -121
- package/doc/threadsafe_function.md +0 -290
- package/doc/type_error.md +0 -59
- package/doc/typed_array.md +0 -78
- package/doc/typed_array_of.md +0 -137
- package/doc/typed_threadsafe_function.md +0 -307
- package/doc/value.md +0 -340
- package/doc/version_management.md +0 -43
package/napi-inl.h
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
#define SRC_NAPI_INL_H_
|
|
3
3
|
|
|
4
4
|
////////////////////////////////////////////////////////////////////////////////
|
|
5
|
-
//
|
|
5
|
+
// Node-API C++ Wrapper Classes
|
|
6
6
|
//
|
|
7
|
-
// Inline header-only implementations for "
|
|
7
|
+
// Inline header-only implementations for "Node-API" ABI-stable C APIs for
|
|
8
|
+
// Node.js.
|
|
8
9
|
////////////////////////////////////////////////////////////////////////////////
|
|
9
10
|
|
|
10
11
|
// Note: Do not include this file directly! Include "napi.h" instead.
|
|
@@ -179,8 +180,9 @@ TemplatedInstanceVoidCallback(napi_env env,
|
|
|
179
180
|
|
|
180
181
|
template <typename T, typename Finalizer, typename Hint = void>
|
|
181
182
|
struct FinalizeData {
|
|
182
|
-
static inline
|
|
183
|
-
|
|
183
|
+
static inline void Wrapper(napi_env env,
|
|
184
|
+
void* data,
|
|
185
|
+
void* finalizeHint) NAPI_NOEXCEPT {
|
|
184
186
|
WrapVoidCallback([&] {
|
|
185
187
|
FinalizeData* finalizeData = static_cast<FinalizeData*>(finalizeHint);
|
|
186
188
|
finalizeData->callback(Env(env), static_cast<T*>(data));
|
|
@@ -188,8 +190,9 @@ struct FinalizeData {
|
|
|
188
190
|
});
|
|
189
191
|
}
|
|
190
192
|
|
|
191
|
-
static inline
|
|
192
|
-
|
|
193
|
+
static inline void WrapperWithHint(napi_env env,
|
|
194
|
+
void* data,
|
|
195
|
+
void* finalizeHint) NAPI_NOEXCEPT {
|
|
193
196
|
WrapVoidCallback([&] {
|
|
194
197
|
FinalizeData* finalizeData = static_cast<FinalizeData*>(finalizeHint);
|
|
195
198
|
finalizeData->callback(Env(env), static_cast<T*>(data), finalizeData->hint);
|
|
@@ -342,12 +345,11 @@ struct AccessorCallbackData {
|
|
|
342
345
|
////////////////////////////////////////////////////////////////////////////////
|
|
343
346
|
|
|
344
347
|
// Register an add-on based on an initializer function.
|
|
345
|
-
#define NODE_API_MODULE(modname, regfunc)
|
|
346
|
-
napi_value __napi_
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
NAPI_MODULE(modname, __napi_ ## regfunc)
|
|
348
|
+
#define NODE_API_MODULE(modname, regfunc) \
|
|
349
|
+
static napi_value __napi_##regfunc(napi_env env, napi_value exports) { \
|
|
350
|
+
return Napi::RegisterModule(env, exports, regfunc); \
|
|
351
|
+
} \
|
|
352
|
+
NAPI_MODULE(modname, __napi_##regfunc)
|
|
351
353
|
|
|
352
354
|
// Register an add-on based on a subclass of `Addon<T>` with a custom Node.js
|
|
353
355
|
// module name.
|
|
@@ -1234,29 +1236,32 @@ inline Value Object::Get(const std::string& utf8name) const {
|
|
|
1234
1236
|
}
|
|
1235
1237
|
|
|
1236
1238
|
template <typename ValueType>
|
|
1237
|
-
inline
|
|
1239
|
+
inline bool Object::Set(napi_value key, const ValueType& value) {
|
|
1238
1240
|
napi_status status =
|
|
1239
1241
|
napi_set_property(_env, _value, key, Value::From(_env, value));
|
|
1240
|
-
|
|
1242
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1243
|
+
return true;
|
|
1241
1244
|
}
|
|
1242
1245
|
|
|
1243
1246
|
template <typename ValueType>
|
|
1244
|
-
inline
|
|
1247
|
+
inline bool Object::Set(Value key, const ValueType& value) {
|
|
1245
1248
|
napi_status status =
|
|
1246
1249
|
napi_set_property(_env, _value, key, Value::From(_env, value));
|
|
1247
|
-
|
|
1250
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1251
|
+
return true;
|
|
1248
1252
|
}
|
|
1249
1253
|
|
|
1250
1254
|
template <typename ValueType>
|
|
1251
|
-
inline
|
|
1255
|
+
inline bool Object::Set(const char* utf8name, const ValueType& value) {
|
|
1252
1256
|
napi_status status =
|
|
1253
1257
|
napi_set_named_property(_env, _value, utf8name, Value::From(_env, value));
|
|
1254
|
-
|
|
1258
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1259
|
+
return true;
|
|
1255
1260
|
}
|
|
1256
1261
|
|
|
1257
1262
|
template <typename ValueType>
|
|
1258
|
-
inline
|
|
1259
|
-
Set(utf8name.c_str(), value);
|
|
1263
|
+
inline bool Object::Set(const std::string& utf8name, const ValueType& value) {
|
|
1264
|
+
return Set(utf8name.c_str(), value);
|
|
1260
1265
|
}
|
|
1261
1266
|
|
|
1262
1267
|
inline bool Object::Delete(napi_value key) {
|
|
@@ -1296,10 +1301,11 @@ inline Value Object::Get(uint32_t index) const {
|
|
|
1296
1301
|
}
|
|
1297
1302
|
|
|
1298
1303
|
template <typename ValueType>
|
|
1299
|
-
inline
|
|
1304
|
+
inline bool Object::Set(uint32_t index, const ValueType& value) {
|
|
1300
1305
|
napi_status status =
|
|
1301
1306
|
napi_set_element(_env, _value, index, Value::From(_env, value));
|
|
1302
|
-
|
|
1307
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1308
|
+
return true;
|
|
1303
1309
|
}
|
|
1304
1310
|
|
|
1305
1311
|
inline bool Object::Delete(uint32_t index) {
|
|
@@ -1316,22 +1322,27 @@ inline Array Object::GetPropertyNames() const {
|
|
|
1316
1322
|
return Array(_env, result);
|
|
1317
1323
|
}
|
|
1318
1324
|
|
|
1319
|
-
inline
|
|
1325
|
+
inline bool Object::DefineProperty(const PropertyDescriptor& property) {
|
|
1320
1326
|
napi_status status = napi_define_properties(_env, _value, 1,
|
|
1321
1327
|
reinterpret_cast<const napi_property_descriptor*>(&property));
|
|
1322
|
-
|
|
1328
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1329
|
+
return true;
|
|
1323
1330
|
}
|
|
1324
1331
|
|
|
1325
|
-
inline
|
|
1332
|
+
inline bool Object::DefineProperties(
|
|
1333
|
+
const std::initializer_list<PropertyDescriptor>& properties) {
|
|
1326
1334
|
napi_status status = napi_define_properties(_env, _value, properties.size(),
|
|
1327
1335
|
reinterpret_cast<const napi_property_descriptor*>(properties.begin()));
|
|
1328
|
-
|
|
1336
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1337
|
+
return true;
|
|
1329
1338
|
}
|
|
1330
1339
|
|
|
1331
|
-
inline
|
|
1340
|
+
inline bool Object::DefineProperties(
|
|
1341
|
+
const std::vector<PropertyDescriptor>& properties) {
|
|
1332
1342
|
napi_status status = napi_define_properties(_env, _value, properties.size(),
|
|
1333
1343
|
reinterpret_cast<const napi_property_descriptor*>(properties.data()));
|
|
1334
|
-
|
|
1344
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1345
|
+
return true;
|
|
1335
1346
|
}
|
|
1336
1347
|
|
|
1337
1348
|
inline bool Object::InstanceOf(const Function& constructor) const {
|
|
@@ -1344,7 +1355,8 @@ inline bool Object::InstanceOf(const Function& constructor) const {
|
|
|
1344
1355
|
template <typename Finalizer, typename T>
|
|
1345
1356
|
inline void Object::AddFinalizer(Finalizer finalizeCallback, T* data) {
|
|
1346
1357
|
details::FinalizeData<T, Finalizer>* finalizeData =
|
|
1347
|
-
|
|
1358
|
+
new details::FinalizeData<T, Finalizer>(
|
|
1359
|
+
{std::move(finalizeCallback), nullptr});
|
|
1348
1360
|
napi_status status =
|
|
1349
1361
|
details::AttachData(_env,
|
|
1350
1362
|
*this,
|
|
@@ -1362,7 +1374,8 @@ inline void Object::AddFinalizer(Finalizer finalizeCallback,
|
|
|
1362
1374
|
T* data,
|
|
1363
1375
|
Hint* finalizeHint) {
|
|
1364
1376
|
details::FinalizeData<T, Finalizer, Hint>* finalizeData =
|
|
1365
|
-
|
|
1377
|
+
new details::FinalizeData<T, Finalizer, Hint>(
|
|
1378
|
+
{std::move(finalizeCallback), finalizeHint});
|
|
1366
1379
|
napi_status status =
|
|
1367
1380
|
details::AttachData(_env,
|
|
1368
1381
|
*this,
|
|
@@ -1375,6 +1388,20 @@ inline void Object::AddFinalizer(Finalizer finalizeCallback,
|
|
|
1375
1388
|
}
|
|
1376
1389
|
}
|
|
1377
1390
|
|
|
1391
|
+
#if NAPI_VERSION >= 8
|
|
1392
|
+
inline bool Object::Freeze() {
|
|
1393
|
+
napi_status status = napi_object_freeze(_env, _value);
|
|
1394
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1395
|
+
return true;
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
inline bool Object::Seal() {
|
|
1399
|
+
napi_status status = napi_object_seal(_env, _value);
|
|
1400
|
+
NAPI_THROW_IF_FAILED(_env, status, false);
|
|
1401
|
+
return true;
|
|
1402
|
+
}
|
|
1403
|
+
#endif // NAPI_VERSION >= 8
|
|
1404
|
+
|
|
1378
1405
|
////////////////////////////////////////////////////////////////////////////////
|
|
1379
1406
|
// External class
|
|
1380
1407
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -1394,7 +1421,8 @@ inline External<T> External<T>::New(napi_env env,
|
|
|
1394
1421
|
Finalizer finalizeCallback) {
|
|
1395
1422
|
napi_value value;
|
|
1396
1423
|
details::FinalizeData<T, Finalizer>* finalizeData =
|
|
1397
|
-
|
|
1424
|
+
new details::FinalizeData<T, Finalizer>(
|
|
1425
|
+
{std::move(finalizeCallback), nullptr});
|
|
1398
1426
|
napi_status status = napi_create_external(
|
|
1399
1427
|
env,
|
|
1400
1428
|
data,
|
|
@@ -1416,7 +1444,8 @@ inline External<T> External<T>::New(napi_env env,
|
|
|
1416
1444
|
Hint* finalizeHint) {
|
|
1417
1445
|
napi_value value;
|
|
1418
1446
|
details::FinalizeData<T, Finalizer, Hint>* finalizeData =
|
|
1419
|
-
|
|
1447
|
+
new details::FinalizeData<T, Finalizer, Hint>(
|
|
1448
|
+
{std::move(finalizeCallback), finalizeHint});
|
|
1420
1449
|
napi_status status = napi_create_external(
|
|
1421
1450
|
env,
|
|
1422
1451
|
data,
|
|
@@ -1508,7 +1537,8 @@ inline ArrayBuffer ArrayBuffer::New(napi_env env,
|
|
|
1508
1537
|
Finalizer finalizeCallback) {
|
|
1509
1538
|
napi_value value;
|
|
1510
1539
|
details::FinalizeData<void, Finalizer>* finalizeData =
|
|
1511
|
-
|
|
1540
|
+
new details::FinalizeData<void, Finalizer>(
|
|
1541
|
+
{std::move(finalizeCallback), nullptr});
|
|
1512
1542
|
napi_status status = napi_create_external_arraybuffer(
|
|
1513
1543
|
env,
|
|
1514
1544
|
externalData,
|
|
@@ -1532,7 +1562,8 @@ inline ArrayBuffer ArrayBuffer::New(napi_env env,
|
|
|
1532
1562
|
Hint* finalizeHint) {
|
|
1533
1563
|
napi_value value;
|
|
1534
1564
|
details::FinalizeData<void, Finalizer, Hint>* finalizeData =
|
|
1535
|
-
|
|
1565
|
+
new details::FinalizeData<void, Finalizer, Hint>(
|
|
1566
|
+
{std::move(finalizeCallback), finalizeHint});
|
|
1536
1567
|
napi_status status = napi_create_external_arraybuffer(
|
|
1537
1568
|
env,
|
|
1538
1569
|
externalData,
|
|
@@ -1982,8 +2013,8 @@ inline Function Function::New(napi_env env,
|
|
|
1982
2013
|
Callable cb,
|
|
1983
2014
|
const char* utf8name,
|
|
1984
2015
|
void* data) {
|
|
1985
|
-
|
|
1986
|
-
|
|
2016
|
+
using ReturnType = decltype(cb(CallbackInfo(nullptr, nullptr)));
|
|
2017
|
+
using CbData = details::CallbackData<Callable, ReturnType>;
|
|
1987
2018
|
auto callbackData = new CbData({ cb, data });
|
|
1988
2019
|
|
|
1989
2020
|
napi_value value;
|
|
@@ -2152,7 +2183,8 @@ inline Buffer<T> Buffer<T>::New(napi_env env,
|
|
|
2152
2183
|
Finalizer finalizeCallback) {
|
|
2153
2184
|
napi_value value;
|
|
2154
2185
|
details::FinalizeData<T, Finalizer>* finalizeData =
|
|
2155
|
-
|
|
2186
|
+
new details::FinalizeData<T, Finalizer>(
|
|
2187
|
+
{std::move(finalizeCallback), nullptr});
|
|
2156
2188
|
napi_status status = napi_create_external_buffer(
|
|
2157
2189
|
env,
|
|
2158
2190
|
length * sizeof (T),
|
|
@@ -2176,7 +2208,8 @@ inline Buffer<T> Buffer<T>::New(napi_env env,
|
|
|
2176
2208
|
Hint* finalizeHint) {
|
|
2177
2209
|
napi_value value;
|
|
2178
2210
|
details::FinalizeData<T, Finalizer, Hint>* finalizeData =
|
|
2179
|
-
|
|
2211
|
+
new details::FinalizeData<T, Finalizer, Hint>(
|
|
2212
|
+
{std::move(finalizeCallback), finalizeHint});
|
|
2180
2213
|
napi_status status = napi_create_external_buffer(
|
|
2181
2214
|
env,
|
|
2182
2215
|
length * sizeof (T),
|
|
@@ -2656,54 +2689,58 @@ inline Napi::Value ObjectReference::Get(const std::string& utf8name) const {
|
|
|
2656
2689
|
return scope.Escape(Value().Get(utf8name));
|
|
2657
2690
|
}
|
|
2658
2691
|
|
|
2659
|
-
inline
|
|
2692
|
+
inline bool ObjectReference::Set(const char* utf8name, napi_value value) {
|
|
2660
2693
|
HandleScope scope(_env);
|
|
2661
|
-
Value().Set(utf8name, value);
|
|
2694
|
+
return Value().Set(utf8name, value);
|
|
2662
2695
|
}
|
|
2663
2696
|
|
|
2664
|
-
inline
|
|
2697
|
+
inline bool ObjectReference::Set(const char* utf8name, Napi::Value value) {
|
|
2665
2698
|
HandleScope scope(_env);
|
|
2666
|
-
Value().Set(utf8name, value);
|
|
2699
|
+
return Value().Set(utf8name, value);
|
|
2667
2700
|
}
|
|
2668
2701
|
|
|
2669
|
-
inline
|
|
2702
|
+
inline bool ObjectReference::Set(const char* utf8name, const char* utf8value) {
|
|
2670
2703
|
HandleScope scope(_env);
|
|
2671
|
-
Value().Set(utf8name, utf8value);
|
|
2704
|
+
return Value().Set(utf8name, utf8value);
|
|
2672
2705
|
}
|
|
2673
2706
|
|
|
2674
|
-
inline
|
|
2707
|
+
inline bool ObjectReference::Set(const char* utf8name, bool boolValue) {
|
|
2675
2708
|
HandleScope scope(_env);
|
|
2676
|
-
Value().Set(utf8name, boolValue);
|
|
2709
|
+
return Value().Set(utf8name, boolValue);
|
|
2677
2710
|
}
|
|
2678
2711
|
|
|
2679
|
-
inline
|
|
2712
|
+
inline bool ObjectReference::Set(const char* utf8name, double numberValue) {
|
|
2680
2713
|
HandleScope scope(_env);
|
|
2681
|
-
Value().Set(utf8name, numberValue);
|
|
2714
|
+
return Value().Set(utf8name, numberValue);
|
|
2682
2715
|
}
|
|
2683
2716
|
|
|
2684
|
-
inline
|
|
2717
|
+
inline bool ObjectReference::Set(const std::string& utf8name,
|
|
2718
|
+
napi_value value) {
|
|
2685
2719
|
HandleScope scope(_env);
|
|
2686
|
-
Value().Set(utf8name, value);
|
|
2720
|
+
return Value().Set(utf8name, value);
|
|
2687
2721
|
}
|
|
2688
2722
|
|
|
2689
|
-
inline
|
|
2723
|
+
inline bool ObjectReference::Set(const std::string& utf8name,
|
|
2724
|
+
Napi::Value value) {
|
|
2690
2725
|
HandleScope scope(_env);
|
|
2691
|
-
Value().Set(utf8name, value);
|
|
2726
|
+
return Value().Set(utf8name, value);
|
|
2692
2727
|
}
|
|
2693
2728
|
|
|
2694
|
-
inline
|
|
2729
|
+
inline bool ObjectReference::Set(const std::string& utf8name,
|
|
2730
|
+
std::string& utf8value) {
|
|
2695
2731
|
HandleScope scope(_env);
|
|
2696
|
-
Value().Set(utf8name, utf8value);
|
|
2732
|
+
return Value().Set(utf8name, utf8value);
|
|
2697
2733
|
}
|
|
2698
2734
|
|
|
2699
|
-
inline
|
|
2735
|
+
inline bool ObjectReference::Set(const std::string& utf8name, bool boolValue) {
|
|
2700
2736
|
HandleScope scope(_env);
|
|
2701
|
-
Value().Set(utf8name, boolValue);
|
|
2737
|
+
return Value().Set(utf8name, boolValue);
|
|
2702
2738
|
}
|
|
2703
2739
|
|
|
2704
|
-
inline
|
|
2740
|
+
inline bool ObjectReference::Set(const std::string& utf8name,
|
|
2741
|
+
double numberValue) {
|
|
2705
2742
|
HandleScope scope(_env);
|
|
2706
|
-
Value().Set(utf8name, numberValue);
|
|
2743
|
+
return Value().Set(utf8name, numberValue);
|
|
2707
2744
|
}
|
|
2708
2745
|
|
|
2709
2746
|
inline Napi::Value ObjectReference::Get(uint32_t index) const {
|
|
@@ -2711,34 +2748,34 @@ inline Napi::Value ObjectReference::Get(uint32_t index) const {
|
|
|
2711
2748
|
return scope.Escape(Value().Get(index));
|
|
2712
2749
|
}
|
|
2713
2750
|
|
|
2714
|
-
inline
|
|
2751
|
+
inline bool ObjectReference::Set(uint32_t index, napi_value value) {
|
|
2715
2752
|
HandleScope scope(_env);
|
|
2716
|
-
Value().Set(index, value);
|
|
2753
|
+
return Value().Set(index, value);
|
|
2717
2754
|
}
|
|
2718
2755
|
|
|
2719
|
-
inline
|
|
2756
|
+
inline bool ObjectReference::Set(uint32_t index, Napi::Value value) {
|
|
2720
2757
|
HandleScope scope(_env);
|
|
2721
|
-
Value().Set(index, value);
|
|
2758
|
+
return Value().Set(index, value);
|
|
2722
2759
|
}
|
|
2723
2760
|
|
|
2724
|
-
inline
|
|
2761
|
+
inline bool ObjectReference::Set(uint32_t index, const char* utf8value) {
|
|
2725
2762
|
HandleScope scope(_env);
|
|
2726
|
-
Value().Set(index, utf8value);
|
|
2763
|
+
return Value().Set(index, utf8value);
|
|
2727
2764
|
}
|
|
2728
2765
|
|
|
2729
|
-
inline
|
|
2766
|
+
inline bool ObjectReference::Set(uint32_t index, const std::string& utf8value) {
|
|
2730
2767
|
HandleScope scope(_env);
|
|
2731
|
-
Value().Set(index, utf8value);
|
|
2768
|
+
return Value().Set(index, utf8value);
|
|
2732
2769
|
}
|
|
2733
2770
|
|
|
2734
|
-
inline
|
|
2771
|
+
inline bool ObjectReference::Set(uint32_t index, bool boolValue) {
|
|
2735
2772
|
HandleScope scope(_env);
|
|
2736
|
-
Value().Set(index, boolValue);
|
|
2773
|
+
return Value().Set(index, boolValue);
|
|
2737
2774
|
}
|
|
2738
2775
|
|
|
2739
|
-
inline
|
|
2776
|
+
inline bool ObjectReference::Set(uint32_t index, double numberValue) {
|
|
2740
2777
|
HandleScope scope(_env);
|
|
2741
|
-
Value().Set(index, numberValue);
|
|
2778
|
+
return Value().Set(index, numberValue);
|
|
2742
2779
|
}
|
|
2743
2780
|
|
|
2744
2781
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -3034,7 +3071,7 @@ PropertyDescriptor::Accessor(Napi::Env env,
|
|
|
3034
3071
|
Getter getter,
|
|
3035
3072
|
napi_property_attributes attributes,
|
|
3036
3073
|
void* data) {
|
|
3037
|
-
|
|
3074
|
+
using CbData = details::CallbackData<Getter, Napi::Value>;
|
|
3038
3075
|
auto callbackData = new CbData({ getter, data });
|
|
3039
3076
|
|
|
3040
3077
|
napi_status status = AttachData(env, object, callbackData);
|
|
@@ -3072,7 +3109,7 @@ inline PropertyDescriptor PropertyDescriptor::Accessor(Napi::Env env,
|
|
|
3072
3109
|
Getter getter,
|
|
3073
3110
|
napi_property_attributes attributes,
|
|
3074
3111
|
void* data) {
|
|
3075
|
-
|
|
3112
|
+
using CbData = details::CallbackData<Getter, Napi::Value>;
|
|
3076
3113
|
auto callbackData = new CbData({ getter, data });
|
|
3077
3114
|
|
|
3078
3115
|
napi_status status = AttachData(env, object, callbackData);
|
|
@@ -3101,7 +3138,7 @@ inline PropertyDescriptor PropertyDescriptor::Accessor(Napi::Env env,
|
|
|
3101
3138
|
Setter setter,
|
|
3102
3139
|
napi_property_attributes attributes,
|
|
3103
3140
|
void* data) {
|
|
3104
|
-
|
|
3141
|
+
using CbData = details::AccessorCallbackData<Getter, Setter>;
|
|
3105
3142
|
auto callbackData = new CbData({ getter, setter, data });
|
|
3106
3143
|
|
|
3107
3144
|
napi_status status = AttachData(env, object, callbackData);
|
|
@@ -3141,7 +3178,7 @@ inline PropertyDescriptor PropertyDescriptor::Accessor(Napi::Env env,
|
|
|
3141
3178
|
Setter setter,
|
|
3142
3179
|
napi_property_attributes attributes,
|
|
3143
3180
|
void* data) {
|
|
3144
|
-
|
|
3181
|
+
using CbData = details::AccessorCallbackData<Getter, Setter>;
|
|
3145
3182
|
auto callbackData = new CbData({ getter, setter, data });
|
|
3146
3183
|
|
|
3147
3184
|
napi_status status = AttachData(env, object, callbackData);
|
|
@@ -3261,7 +3298,7 @@ inline void InstanceWrap<T>::AttachPropData(napi_env env,
|
|
|
3261
3298
|
napi_value value,
|
|
3262
3299
|
const napi_property_descriptor* prop) {
|
|
3263
3300
|
napi_status status;
|
|
3264
|
-
if (
|
|
3301
|
+
if (!(prop->attributes & napi_static)) {
|
|
3265
3302
|
if (prop->method == T::InstanceVoidMethodCallbackWrapper) {
|
|
3266
3303
|
status = Napi::details::AttachData(env,
|
|
3267
3304
|
value,
|
|
@@ -3562,7 +3599,8 @@ inline napi_value InstanceWrap<T>::InstanceSetterCallbackWrapper(
|
|
|
3562
3599
|
|
|
3563
3600
|
template <typename T>
|
|
3564
3601
|
template <typename InstanceWrap<T>::InstanceSetterCallback method>
|
|
3565
|
-
inline napi_value InstanceWrap<T>::WrappedMethod(
|
|
3602
|
+
inline napi_value InstanceWrap<T>::WrappedMethod(
|
|
3603
|
+
napi_env env, napi_callback_info info) NAPI_NOEXCEPT {
|
|
3566
3604
|
return details::WrapCallback([&] {
|
|
3567
3605
|
const CallbackInfo cbInfo(env, info);
|
|
3568
3606
|
T* instance = T::Unwrap(cbInfo.This().As<Object>());
|
|
@@ -4024,7 +4062,8 @@ inline void ObjectWrap<T>::FinalizeCallback(napi_env env, void* data, void* /*hi
|
|
|
4024
4062
|
|
|
4025
4063
|
template <typename T>
|
|
4026
4064
|
template <typename ObjectWrap<T>::StaticSetterCallback method>
|
|
4027
|
-
inline napi_value ObjectWrap<T>::WrappedMethod(
|
|
4065
|
+
inline napi_value ObjectWrap<T>::WrappedMethod(
|
|
4066
|
+
napi_env env, napi_callback_info info) NAPI_NOEXCEPT {
|
|
4028
4067
|
return details::WrapCallback([&] {
|
|
4029
4068
|
const CallbackInfo cbInfo(env, info);
|
|
4030
4069
|
method(cbInfo, cbInfo[0]);
|
|
@@ -4137,10 +4176,9 @@ inline AsyncContext::AsyncContext(napi_env env, const char* resource_name)
|
|
|
4137
4176
|
}
|
|
4138
4177
|
|
|
4139
4178
|
inline AsyncContext::AsyncContext(napi_env env,
|
|
4140
|
-
|
|
4179
|
+
const char* resource_name,
|
|
4141
4180
|
const Object& resource)
|
|
4142
|
-
|
|
4143
|
-
_context(nullptr) {
|
|
4181
|
+
: _env(env), _context(nullptr) {
|
|
4144
4182
|
napi_value resource_id;
|
|
4145
4183
|
napi_status status = napi_create_string_utf8(
|
|
4146
4184
|
_env, resource_name, NAPI_AUTO_LENGTH, &resource_id);
|