n-api: DRY napi_coerce_to_x() API methods
PR-URL: https://github.com/nodejs/node/pull/27796 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
99268b1e99
commit
c56474f9fe
@ -2139,21 +2139,6 @@ napi_status napi_get_value_string_utf16(napi_env env,
|
||||
return napi_clear_last_error(env);
|
||||
}
|
||||
|
||||
napi_status napi_coerce_to_object(napi_env env,
|
||||
napi_value value,
|
||||
napi_value* result) {
|
||||
NAPI_PREAMBLE(env);
|
||||
CHECK_ARG(env, value);
|
||||
CHECK_ARG(env, result);
|
||||
|
||||
v8::Local<v8::Context> context = env->context();
|
||||
v8::Local<v8::Object> obj;
|
||||
CHECK_TO_OBJECT(env, context, obj, value);
|
||||
|
||||
*result = v8impl::JsValueFromV8LocalValue(obj);
|
||||
return GET_RETURN_STATUS(env);
|
||||
}
|
||||
|
||||
napi_status napi_coerce_to_bool(napi_env env,
|
||||
napi_value value,
|
||||
napi_value* result) {
|
||||
@ -2168,37 +2153,28 @@ napi_status napi_coerce_to_bool(napi_env env,
|
||||
return GET_RETURN_STATUS(env);
|
||||
}
|
||||
|
||||
napi_status napi_coerce_to_number(napi_env env,
|
||||
napi_value value,
|
||||
napi_value* result) {
|
||||
NAPI_PREAMBLE(env);
|
||||
CHECK_ARG(env, value);
|
||||
CHECK_ARG(env, result);
|
||||
#define GEN_COERCE_FUNCTION(UpperCaseName, MixedCaseName, LowerCaseName) \
|
||||
napi_status napi_coerce_to_##LowerCaseName(napi_env env, \
|
||||
napi_value value, \
|
||||
napi_value* result) { \
|
||||
NAPI_PREAMBLE(env); \
|
||||
CHECK_ARG(env, value); \
|
||||
CHECK_ARG(env, result); \
|
||||
\
|
||||
v8::Local<v8::Context> context = env->context(); \
|
||||
v8::Local<v8::MixedCaseName> str; \
|
||||
\
|
||||
CHECK_TO_##UpperCaseName(env, context, str, value); \
|
||||
\
|
||||
*result = v8impl::JsValueFromV8LocalValue(str); \
|
||||
return GET_RETURN_STATUS(env); \
|
||||
}
|
||||
|
||||
v8::Local<v8::Context> context = env->context();
|
||||
v8::Local<v8::Number> num;
|
||||
GEN_COERCE_FUNCTION(NUMBER, Number, number)
|
||||
GEN_COERCE_FUNCTION(OBJECT, Object, object)
|
||||
GEN_COERCE_FUNCTION(STRING, String, string)
|
||||
|
||||
CHECK_TO_NUMBER(env, context, num, value);
|
||||
|
||||
*result = v8impl::JsValueFromV8LocalValue(num);
|
||||
return GET_RETURN_STATUS(env);
|
||||
}
|
||||
|
||||
napi_status napi_coerce_to_string(napi_env env,
|
||||
napi_value value,
|
||||
napi_value* result) {
|
||||
NAPI_PREAMBLE(env);
|
||||
CHECK_ARG(env, value);
|
||||
CHECK_ARG(env, result);
|
||||
|
||||
v8::Local<v8::Context> context = env->context();
|
||||
v8::Local<v8::String> str;
|
||||
|
||||
CHECK_TO_STRING(env, context, str, value);
|
||||
|
||||
*result = v8impl::JsValueFromV8LocalValue(str);
|
||||
return GET_RETURN_STATUS(env);
|
||||
}
|
||||
#undef GEN_COERCE_FUNCTION
|
||||
|
||||
napi_status napi_wrap(napi_env env,
|
||||
napi_value js_object,
|
||||
|
Loading…
x
Reference in New Issue
Block a user