From 1406f64bcbe4ae9a09699ee9daa2f95c12512f41 Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Tue, 18 Jan 2022 15:37:11 +0000 Subject: [PATCH] Improved access to this argument. 'this' argument is always present, so it may be accessed without checking the number provided arguments. --- external/njs_query_string_module.c | 4 ++-- src/njs_array_buffer.c | 4 ++-- src/njs_function.c | 2 +- src/njs_object.c | 6 +++--- src/njs_promise.c | 12 +++++------ src/njs_string.c | 32 +++++++++++++++--------------- 6 files changed, 30 insertions(+), 30 deletions(-) diff --git a/external/njs_query_string_module.c b/external/njs_query_string_module.c index 701449fc..b088e865 100644 --- a/external/njs_query_string_module.c +++ b/external/njs_query_string_module.c @@ -391,7 +391,7 @@ njs_query_string_parse(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_set_object(&obj, object); - this = njs_arg(args, nargs, 0); + this = njs_argument(args, 0); string = njs_arg(args, nargs, 1); if (njs_slow_path(!njs_is_string(string) @@ -703,7 +703,7 @@ njs_query_string_stringify(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, (void) njs_string_prop(&eq, &val_eq); encode = NULL; - this = njs_arg(args, nargs, 0); + this = njs_argument(args, 0); object = njs_arg(args, nargs, 1); if (njs_slow_path(!njs_is_object(object))) { diff --git a/src/njs_array_buffer.c b/src/njs_array_buffer.c index b21235b5..d5bd9b57 100644 --- a/src/njs_array_buffer.c +++ b/src/njs_array_buffer.c @@ -195,7 +195,7 @@ njs_array_buffer_prototype_byte_length(njs_vm_t *vm, njs_value_t *args, njs_value_t *value; njs_array_buffer_t *array; - value = njs_arg(args, nargs, 0); + value = njs_argument(args, 0); if (!njs_is_array_buffer(value)) { njs_type_error(vm, "Method ArrayBuffer.prototype.byteLength called " @@ -224,7 +224,7 @@ njs_array_buffer_prototype_slice(njs_vm_t *vm, njs_value_t *args, njs_value_t *value; njs_array_buffer_t *this, *buffer; - value = njs_arg(args, nargs, 0); + value = njs_argument(args, 0); if (!njs_is_array_buffer(value)) { njs_type_error(vm, "Method ArrayBuffer.prototype.slice called " diff --git a/src/njs_function.c b/src/njs_function.c index 0b5b0f8f..0c23ca05 100644 --- a/src/njs_function.c +++ b/src/njs_function.c @@ -1374,7 +1374,7 @@ njs_function_prototype_apply(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_array_t *arr; njs_function_t *func; - if (!njs_is_function(njs_arg(args, nargs, 0))) { + if (!njs_is_function(njs_argument(args, 0))) { njs_type_error(vm, "\"this\" argument is not a function"); return NJS_ERROR; } diff --git a/src/njs_object.c b/src/njs_object.c index 454e7e77..ad03bc32 100644 --- a/src/njs_object.c +++ b/src/njs_object.c @@ -2437,7 +2437,7 @@ njs_object_prototype_has_own_property(njs_vm_t *vm, njs_value_t *args, njs_value_t *value, *property; njs_property_query_t pq; - value = njs_arg(args, nargs, 0); + value = njs_argument(args, 0); if (njs_is_null_or_undefined(value)) { njs_type_error(vm, "cannot convert %s argument to object", @@ -2477,7 +2477,7 @@ njs_object_prototype_prop_is_enumerable(njs_vm_t *vm, njs_value_t *args, njs_object_prop_t *prop; njs_property_query_t pq; - value = njs_arg(args, nargs, 0); + value = njs_argument(args, 0); if (njs_is_null_or_undefined(value)) { njs_type_error(vm, "cannot convert %s argument to object", @@ -2520,7 +2520,7 @@ njs_object_prototype_is_prototype_of(njs_vm_t *vm, njs_value_t *args, njs_object_t *object, *proto; const njs_value_t *retval; - if (njs_slow_path(njs_is_null_or_undefined(njs_arg(args, nargs, 0)))) { + if (njs_slow_path(njs_is_null_or_undefined(njs_argument(args, 0)))) { njs_type_error(vm, "cannot convert undefined to object"); return NJS_ERROR; } diff --git a/src/njs_promise.c b/src/njs_promise.c index 49c3bb83..45ea4921 100644 --- a/src/njs_promise.c +++ b/src/njs_promise.c @@ -749,7 +749,7 @@ njs_promise_object_resolve(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, { njs_promise_t *promise; - if (njs_slow_path(!njs_is_object(njs_arg(args, nargs, 0)))) { + if (njs_slow_path(!njs_is_object(njs_argument(args, 0)))) { njs_type_error(vm, "this value is not an object"); return NJS_ERROR; } @@ -846,7 +846,7 @@ njs_promise_object_reject(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_value_t value; njs_promise_capability_t *capability; - if (njs_slow_path(!njs_is_object(njs_arg(args, nargs, 0)))) { + if (njs_slow_path(!njs_is_object(njs_argument(args, 0)))) { njs_type_error(vm, "this value is not an object"); return NJS_ERROR; } @@ -879,7 +879,7 @@ njs_promise_prototype_then(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_function_t *function; njs_promise_capability_t *capability; - promise = njs_arg(args, nargs, 0); + promise = njs_argument(args, 0); if (njs_slow_path(!njs_is_object(promise))) { goto failed; @@ -1018,7 +1018,7 @@ njs_promise_prototype_catch(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, arguments[0] = njs_value_undefined; arguments[1] = *njs_arg(args, nargs, 1); - return njs_promise_invoke_then(vm, njs_arg(args, nargs, 0), arguments, 2); + return njs_promise_invoke_then(vm, njs_argument(args, 0), arguments, 2); } @@ -1031,7 +1031,7 @@ njs_promise_prototype_finally(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_function_t *function; njs_promise_context_t *context; - promise = njs_arg(args, nargs, 0); + promise = njs_argument(args, 0); if (njs_slow_path(!njs_is_object(promise))) { njs_type_error(vm, "required a object"); @@ -1779,7 +1779,7 @@ static njs_int_t njs_promise_species(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_index_t unused) { - njs_vm_retval_set(vm, njs_arg(args, nargs, 0)); + njs_vm_retval_set(vm, njs_argument(args, 0)); return NJS_OK; } diff --git a/src/njs_string.c b/src/njs_string.c index c135c43c..d1ae09e7 100644 --- a/src/njs_string.c +++ b/src/njs_string.c @@ -986,7 +986,7 @@ njs_string_prototype_from_utf8(njs_vm_t *vm, njs_value_t *args, njs_slice_prop_t slice; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -1029,7 +1029,7 @@ njs_string_prototype_to_utf8(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_slice_prop_t slice; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -1063,7 +1063,7 @@ njs_string_prototype_from_bytes(njs_vm_t *vm, njs_value_t *args, njs_slice_prop_t slice; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -1129,7 +1129,7 @@ njs_string_prototype_to_bytes(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_string_prop_t string; njs_unicode_decode_t ctx; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -1192,7 +1192,7 @@ njs_string_prototype_slice(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_slice_prop_t slice; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -1216,7 +1216,7 @@ njs_string_prototype_substring(njs_vm_t *vm, njs_value_t *args, njs_slice_prop_t slice; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -1294,7 +1294,7 @@ njs_string_prototype_substr(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_slice_prop_t slice; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -1372,7 +1372,7 @@ njs_string_prototype_char_at(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_slice_prop_t slice; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -1566,7 +1566,7 @@ njs_string_prototype_char_code_at(njs_vm_t *vm, njs_value_t *args, njs_string_prop_t string; njs_unicode_decode_t ctx; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -2332,7 +2332,7 @@ njs_string_prototype_includes(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, const njs_value_t *retval; njs_string_prop_t string, search; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -2425,7 +2425,7 @@ njs_string_prototype_starts_or_ends_with(njs_vm_t *vm, njs_value_t *args, retval = &njs_value_true; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -2635,7 +2635,7 @@ njs_string_prototype_to_lower_case(njs_vm_t *vm, njs_value_t *args, const u_char *s, *end; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -2707,7 +2707,7 @@ njs_string_prototype_to_upper_case(njs_vm_t *vm, njs_value_t *args, const u_char *s, *end; njs_string_prop_t string; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -2973,7 +2973,7 @@ njs_string_prototype_pad(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, static const njs_value_t string_space = njs_string(" "); - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -3093,7 +3093,7 @@ njs_string_prototype_search(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_string_prop_t string; njs_regexp_pattern_t *pattern; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } @@ -3171,7 +3171,7 @@ njs_string_prototype_match(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_value_t arguments[2]; njs_regexp_pattern_t *pattern; - ret = njs_string_object_validate(vm, njs_arg(args, nargs, 0)); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; } -- 2.47.3