@@ -2139,21 +2139,6 @@ napi_status napi_get_value_string_utf16(napi_env env,
2139
2139
return napi_clear_last_error (env);
2140
2140
}
2141
2141
2142
- napi_status napi_coerce_to_object (napi_env env,
2143
- napi_value value,
2144
- napi_value* result) {
2145
- NAPI_PREAMBLE (env);
2146
- CHECK_ARG (env, value);
2147
- CHECK_ARG (env, result);
2148
-
2149
- v8::Local<v8::Context> context = env->context ();
2150
- v8::Local<v8::Object> obj;
2151
- CHECK_TO_OBJECT (env, context, obj, value);
2152
-
2153
- *result = v8impl::JsValueFromV8LocalValue (obj);
2154
- return GET_RETURN_STATUS (env);
2155
- }
2156
-
2157
2142
napi_status napi_coerce_to_bool (napi_env env,
2158
2143
napi_value value,
2159
2144
napi_value* result) {
@@ -2168,37 +2153,28 @@ napi_status napi_coerce_to_bool(napi_env env,
2168
2153
return GET_RETURN_STATUS (env);
2169
2154
}
2170
2155
2171
- napi_status napi_coerce_to_number (napi_env env,
2172
- napi_value value,
2173
- napi_value* result) {
2174
- NAPI_PREAMBLE (env);
2175
- CHECK_ARG (env, value);
2176
- CHECK_ARG (env, result);
2177
-
2178
- v8::Local<v8::Context> context = env->context ();
2179
- v8::Local<v8::Number> num;
2180
-
2181
- CHECK_TO_NUMBER (env, context, num, value);
2182
-
2183
- *result = v8impl::JsValueFromV8LocalValue (num);
2184
- return GET_RETURN_STATUS (env);
2185
- }
2186
-
2187
- napi_status napi_coerce_to_string (napi_env env,
2188
- napi_value value,
2189
- napi_value* result) {
2190
- NAPI_PREAMBLE (env);
2191
- CHECK_ARG (env, value);
2192
- CHECK_ARG (env, result);
2193
-
2194
- v8::Local<v8::Context> context = env->context ();
2195
- v8::Local<v8::String> str;
2196
-
2197
- CHECK_TO_STRING (env, context, str, value);
2198
-
2199
- *result = v8impl::JsValueFromV8LocalValue (str);
2200
- return GET_RETURN_STATUS (env);
2201
- }
2156
+ #define GEN_COERCE_FUNCTION (UpperCaseName, MixedCaseName, LowerCaseName ) \
2157
+ napi_status napi_coerce_to_##LowerCaseName(napi_env env, \
2158
+ napi_value value, \
2159
+ napi_value* result) { \
2160
+ NAPI_PREAMBLE (env); \
2161
+ CHECK_ARG (env, value); \
2162
+ CHECK_ARG (env, result); \
2163
+ \
2164
+ v8::Local<v8::Context> context = env->context (); \
2165
+ v8::Local<v8::MixedCaseName> str; \
2166
+ \
2167
+ CHECK_TO_##UpperCaseName (env, context, str, value); \
2168
+ \
2169
+ *result = v8impl::JsValueFromV8LocalValue (str); \
2170
+ return GET_RETURN_STATUS (env); \
2171
+ }
2172
+
2173
+ GEN_COERCE_FUNCTION (NUMBER, Number, number)
2174
+ GEN_COERCE_FUNCTION (OBJECT, Object, object)
2175
+ GEN_COERCE_FUNCTION (STRING, String, string)
2176
+
2177
+ #undef GEN_COERCE_FUNCTION
2202
2178
2203
2179
napi_status napi_wrap (napi_env env,
2204
2180
napi_value js_object,
0 commit comments