summaryrefslogtreecommitdiff
path: root/cli/napi/js_native_api.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-01-13 12:53:45 +0100
committerGitHub <noreply@github.com>2023-01-13 12:53:45 +0100
commit291dcc31f778dc137f33b39d4750ed478a223ebd (patch)
tree997d9628338b3d9acb6ac67896ce0530e793c762 /cli/napi/js_native_api.rs
parenta00e432297d2ae119c8e1097aec74badc886f912 (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.rs9
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(())
}