diff --git a/src/js_native_api_types.h b/src/js_native_api_types.h index fc9718a699c638..ae8fedb1463787 100644 --- a/src/js_native_api_types.h +++ b/src/js_native_api_types.h @@ -81,6 +81,10 @@ typedef enum { napi_bigint_expected, napi_date_expected, } napi_status; +// Note: when adding a new enum value to `napi_status`, please also update +// `const int last_status` in `napi_get_last_error_info()' definition, +// in file js_native_api_v8.cc. Please also update the definition of +// `napi_status` in doc/api/n-api.md to reflect the newly added value(s). typedef napi_value (*napi_callback)(napi_env env, napi_callback_info info); diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc index 2f5a4bf83cd9f1..5dac55cc82a4fc 100644 --- a/src/js_native_api_v8.cc +++ b/src/js_native_api_v8.cc @@ -684,14 +684,16 @@ napi_status napi_get_last_error_info(napi_env env, CHECK_ENV(env); CHECK_ARG(env, result); - // you must update this assert to reference the last message - // in the napi_status enum each time a new error message is added. + // The value of the constant below must be updated to reference the last + // message in the `napi_status` enum each time a new error message is added. // We don't have a napi_status_last as this would result in an ABI // change each time a message was added. + const int last_status = napi_date_expected; + static_assert( - NAPI_ARRAYSIZE(error_messages) == napi_date_expected + 1, + NAPI_ARRAYSIZE(error_messages) == last_status + 1, "Count of error messages must match count of error values"); - CHECK_LE(env->last_error.error_code, napi_callback_scope_mismatch); + CHECK_LE(env->last_error.error_code, last_status); // Wait until someone requests the last error information to fetch the error // message string