Skip to content

Commit

Permalink
opti1
Browse files Browse the repository at this point in the history
  • Loading branch information
chearon committed Apr 17, 2023
1 parent 3404d01 commit b9e8404
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions src/CanvasRenderingContext2d.cc
Expand Up @@ -49,12 +49,29 @@ constexpr double twoPi = M_PI * 2.;
pango_context_get_language(pango_layout_get_context(LAYOUT)))

inline static bool checkArgs(const Napi::CallbackInfo&info, double *args, int argsNum, int offset = 0){
Napi::Number zero = Napi::Number::New(info.Env(), 0);
Napi::Env env = info.Env();
int argsEnd = offset + argsNum;
bool areArgsValid = true;

napi_value argv[10];
size_t argc = 10;
napi_get_cb_info(env, static_cast<napi_callback_info>(info), &argc, argv, nullptr, nullptr);

for (int i = offset; i < argsEnd; i++) {
double val = info[i].ToNumber().UnwrapOr(zero).DoubleValue();
napi_valuetype type;
double val = 0;

napi_typeof(env, argv[i], &type);
if (type == napi_number) {
// fast path
napi_get_value_double(env, argv[i], &val);
} else {
napi_value num;
napi_create_double(env, 0, &num);
if (napi_coerce_to_number(env, argv[i], &num)) {
napi_get_value_double(env, num, &val);
}
}

if (areArgsValid) {
if (!std::isfinite(val)) {
Expand Down

0 comments on commit b9e8404

Please sign in to comment.