@@ -379,6 +379,19 @@ inline bool Value::IsBigInt() const {
379
379
}
380
380
#endif // NAPI_EXPERIMENTAL
381
381
382
+ #if (NAPI_VERSION > 4)
383
+ inline bool Value::IsDate () const {
384
+ if (IsEmpty ()) {
385
+ return false ;
386
+ }
387
+
388
+ bool result;
389
+ napi_status status = napi_is_date (_env, _value, &result);
390
+ NAPI_THROW_IF_FAILED (_env, status, false );
391
+ return result;
392
+ }
393
+ #endif
394
+
382
395
inline bool Value::IsString () const {
383
396
return Type () == napi_string;
384
397
}
@@ -660,6 +673,37 @@ inline void BigInt::ToWords(int* sign_bit, size_t* word_count, uint64_t* words)
660
673
}
661
674
#endif // NAPI_EXPERIMENTAL
662
675
676
+ #if (NAPI_VERSION > 4)
677
+ // //////////////////////////////////////////////////////////////////////////////
678
+ // Date Class
679
+ // //////////////////////////////////////////////////////////////////////////////
680
+
681
+ inline Date Date::New (napi_env env, double val) {
682
+ napi_value value;
683
+ napi_status status = napi_create_date (env, val, &value);
684
+ NAPI_THROW_IF_FAILED (env, status, Date ());
685
+ return Date (env, value);
686
+ }
687
+
688
+ inline Date::Date () : Value() {
689
+ }
690
+
691
+ inline Date::Date (napi_env env, napi_value value) : Value(env, value) {
692
+ }
693
+
694
+ inline Date::operator double () const {
695
+ return ValueOf ();
696
+ }
697
+
698
+ inline double Date::ValueOf () const {
699
+ double result;
700
+ napi_status status = napi_get_date_value (
701
+ _env, _value, &result);
702
+ NAPI_THROW_IF_FAILED (_env, status, 0 );
703
+ return result;
704
+ }
705
+ #endif
706
+
663
707
// //////////////////////////////////////////////////////////////////////////////
664
708
// Name class
665
709
// //////////////////////////////////////////////////////////////////////////////
0 commit comments