From 291dcc31f778dc137f33b39d4750ed478a223ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 13 Jan 2023 12:53:45 +0100 Subject: fix(napi): date and unwrap handling (#17369) --- cli/napi/js_native_api.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'cli/napi') 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::>(value); + + if !value.is_date() { + return Err(Error::DateExpected); + } + let date = v8::Local::::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::::try_from(ext).unwrap(); + let ext = v8::Local::::try_from(ext) + .ok() + .ok_or(Error::InvalidArg)?; *result = ext.value(); Ok(()) } -- cgit v1.2.3