diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-01-13 12:53:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-13 12:53:45 +0100 |
commit | 291dcc31f778dc137f33b39d4750ed478a223ebd (patch) | |
tree | 997d9628338b3d9acb6ac67896ce0530e793c762 /cli/napi/js_native_api.rs | |
parent | a00e432297d2ae119c8e1097aec74badc886f912 (diff) |
fix(napi): date and unwrap handling (#17369)
Diffstat (limited to 'cli/napi/js_native_api.rs')
-rw-r--r-- | cli/napi/js_native_api.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/cli/napi/js_native_api.rs b/cli/napi/js_native_api.rs index c72da9b02..f58bd3004 100644 --- a/cli/napi/js_native_api.rs +++ b/cli/napi/js_native_api.rs @@ -1484,6 +1484,11 @@ fn napi_get_date_value( ) -> Result { let env: &mut Env = env.as_mut().ok_or(Error::InvalidArg)?; let value = transmute::<napi_value, v8::Local<v8::Value>>(value); + + if !value.is_date() { + return Err(Error::DateExpected); + } + let date = v8::Local::<v8::Date>::try_from(value).unwrap(); *result = date.number_value(&mut env.scope()).unwrap(); Ok(()) @@ -2287,7 +2292,9 @@ fn napi_unwrap( let shared = &*(env.shared as *const EnvShared); let napi_wrap = v8::Local::new(&mut env.scope(), &shared.napi_wrap); let ext = obj.get_private(&mut env.scope(), napi_wrap).unwrap(); - let ext = v8::Local::<v8::External>::try_from(ext).unwrap(); + let ext = v8::Local::<v8::External>::try_from(ext) + .ok() + .ok_or(Error::InvalidArg)?; *result = ext.value(); Ok(()) } |