From e95f098ae350f17450d06270ce37032688447f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 26 May 2023 07:02:12 +0200 Subject: fix(napi): properly handle arguments in napi_get_cb_info (#19269) Closes https://github.com/denoland/deno/issues/17213 --- test_napi/src/callback.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'test_napi/src') diff --git a/test_napi/src/callback.rs b/test_napi/src/callback.rs index c863eb7a6..ae917e7b1 100644 --- a/test_napi/src/callback.rs +++ b/test_napi/src/callback.rs @@ -5,6 +5,7 @@ use crate::napi_get_callback_info; use crate::napi_new_property; use napi_sys::ValueType::napi_function; use napi_sys::ValueType::napi_object; +use napi_sys::ValueType::napi_undefined; use napi_sys::*; use std::ptr; @@ -13,7 +14,9 @@ extern "C" fn test_callback_run( env: napi_env, info: napi_callback_info, ) -> napi_value { - let (args, argc, _) = napi_get_callback_info!(env, info, 2); + // We want to have argv with size 4, even though the callback will have + // only two arguments. We'll assert that the remaining two args are undefined. + let (args, argc, _) = napi_get_callback_info!(env, info, 4); assert_eq!(argc, 2); let mut ty = -1; @@ -24,6 +27,14 @@ extern "C" fn test_callback_run( assert_napi_ok!(napi_typeof(env, args[1], &mut ty)); assert_eq!(ty, napi_object); + let mut ty = -1; + assert_napi_ok!(napi_typeof(env, args[2], &mut ty)); + assert_eq!(ty, napi_undefined); + + let mut ty = -1; + assert_napi_ok!(napi_typeof(env, args[3], &mut ty)); + assert_eq!(ty, napi_undefined); + let mut len = 0; assert_napi_ok!(napi_get_array_length(env, args[1], &mut len)); -- cgit v1.2.3