[njs] QueryString: added back custom exception types using new public API.
Dmitry Volyntsev
xeioex at nginx.com
Thu Jun 22 22:40:06 UTC 2023
details: https://hg.nginx.org/njs/rev/e9c41ee90ac2
branches:
changeset: 2160:e9c41ee90ac2
user: Dmitry Volyntsev <xeioex at nginx.com>
date: Wed Jun 21 16:29:51 2023 -0700
description:
QueryString: added back custom exception types using new public API.
In fd956d2a25a3, when rewriting querystring module using public API all
the exceptions types were squashed into a single Error type. This patch
reintroduces the standard exception types back using new API.
diffstat:
external/njs_query_string_module.c | 12 +++++++-----
src/test/njs_unit_test.c | 8 ++++----
2 files changed, 11 insertions(+), 9 deletions(-)
diffs (83 lines):
diff -r 11fc41439e9f -r e9c41ee90ac2 external/njs_query_string_module.c
--- a/external/njs_query_string_module.c Wed Jun 21 16:29:48 2023 -0700
+++ b/external/njs_query_string_module.c Wed Jun 21 16:29:51 2023 -0700
@@ -422,7 +422,7 @@ njs_query_string_parse(njs_vm_t *vm, njs
if (val != NULL) {
if (!njs_value_is_valid_number(val)) {
- njs_vm_error(vm, "is not a number");
+ njs_vm_type_error(vm, "is not a number");
return NJS_ERROR;
}
@@ -437,7 +437,8 @@ njs_query_string_parse(njs_vm_t *vm, njs
if (val != NULL) {
if (njs_slow_path(!njs_value_is_function(val))) {
- njs_vm_error(vm, "option decodeURIComponent is not a function");
+ njs_vm_type_error(vm, "option decodeURIComponent is not "
+ "a function");
return NJS_ERROR;
}
@@ -449,7 +450,7 @@ njs_query_string_parse(njs_vm_t *vm, njs
val = njs_vm_object_prop(vm, this, &njs_unescape_str, &value);
if (val == NULL || !njs_value_is_function(val)) {
- njs_vm_error(vm, "QueryString.unescape is not a function");
+ njs_vm_type_error(vm, "QueryString.unescape is not a function");
return NJS_ERROR;
}
@@ -728,7 +729,8 @@ njs_query_string_stringify(njs_vm_t *vm,
if (val != NULL) {
if (njs_slow_path(!njs_value_is_function(val))) {
- njs_vm_error(vm, "option encodeURIComponent is not a function");
+ njs_vm_type_error(vm, "option encodeURIComponent is not "
+ "a function");
return NJS_ERROR;
}
@@ -740,7 +742,7 @@ njs_query_string_stringify(njs_vm_t *vm,
val = njs_vm_object_prop(vm, this, &njs_escape_str, &value);
if (val == NULL || !njs_value_is_function(val)) {
- njs_vm_error(vm, "QueryString.escape is not a function");
+ njs_vm_type_error(vm, "QueryString.escape is not a function");
return NJS_ERROR;
}
diff -r 11fc41439e9f -r e9c41ee90ac2 src/test/njs_unit_test.c
--- a/src/test/njs_unit_test.c Wed Jun 21 16:29:48 2023 -0700
+++ b/src/test/njs_unit_test.c Wed Jun 21 16:29:51 2023 -0700
@@ -20723,12 +20723,12 @@ static njs_unit_test_t njs_querystring_
{ njs_str("var qs = require('querystring');"
"qs.parse('baz=fuz&muz=tax', null, null, {decodeURIComponent: 123});"),
- njs_str("Error: option decodeURIComponent is not a function") },
+ njs_str("TypeError: option decodeURIComponent is not a function") },
{ njs_str("var qs = require('querystring');"
"qs.unescape = 123;"
"qs.parse('baz=fuz&muz=tax');"),
- njs_str("Error: QueryString.unescape is not a function") },
+ njs_str("TypeError: QueryString.unescape is not a function") },
{ njs_str("var qs = require('querystring'); var out = [];"
"qs.unescape = (key) => {out.push(key)};"
@@ -20841,12 +20841,12 @@ static njs_unit_test_t njs_querystring_
{ njs_str("var qs = require('querystring');"
"qs.stringify({'baz': 'fuz', 'muz': 'tax'}, null, null, {encodeURIComponent: 123});"
"out.join('; ')"),
- njs_str("Error: option encodeURIComponent is not a function") },
+ njs_str("TypeError: option encodeURIComponent is not a function") },
{ njs_str("var qs = require('querystring');"
"qs.escape = 123;"
"qs.stringify({'baz': 'fuz', 'muz': 'tax'})"),
- njs_str("Error: QueryString.escape is not a function") },
+ njs_str("TypeError: QueryString.escape is not a function") },
{ njs_str("var qs = require('querystring'); var out = [];"
"qs.escape = (key) => {out.push(key)};"
More information about the nginx-devel
mailing list