[njs] QuickJS: using helper to declare Symbol.toStringTag properties.

noreply at nginx.com noreply at nginx.com
Tue Feb 25 19:15:02 UTC 2025


details:   https://github.com/nginx/njs/commit/18d31701cef4af1925f6702e591ca77761541b7e
branches:  master
commit:    18d31701cef4af1925f6702e591ca77761541b7e
user:      Dmitry Volyntsev <xeioex at nginx.com>
date:      Wed, 5 Feb 2025 16:47:03 -0800
description:
QuickJS: using helper to declare Symbol.toStringTag properties.


---
 external/njs_shell.c            | 10 ++-------
 external/qjs_fs_module.c        | 34 ++++--------------------------
 external/qjs_webcrypto_module.c | 13 ++----------
 nginx/ngx_http_js_module.c      | 27 +++---------------------
 nginx/ngx_js_shared_dict.c      | 14 +++----------
 nginx/ngx_stream_js_module.c    | 27 ++++--------------------
 src/qjs.c                       | 46 ++++++-----------------------------------
 7 files changed, 24 insertions(+), 147 deletions(-)

diff --git a/external/njs_shell.c b/external/njs_shell.c
index 015c930f..1228b374 100644
--- a/external/njs_shell.c
+++ b/external/njs_shell.c
@@ -1901,13 +1901,6 @@ njs_qjs_clear_timeout(JSContext *ctx, JSValueConst this_val, int argc,
 }
 
 
-static JSValue
-njs_qjs_console_to_string_tag(JSContext *ctx, JSValueConst this_val)
-{
-    return JS_NewString(ctx, "Console");
-}
-
-
 static JSValue
 njs_qjs_process_getter(JSContext *ctx, JSValueConst this_val)
 {
@@ -2487,7 +2480,8 @@ static const JSCFunctionListEntry njs_qjs_global_proto[] = {
 
 
 static const JSCFunctionListEntry njs_qjs_console_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", njs_qjs_console_to_string_tag, NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "Console",
+                       JS_PROP_CONFIGURABLE),
     JS_CFUNC_MAGIC_DEF("error", 0, njs_qjs_console_log, NJS_LOG_ERROR),
     JS_CFUNC_MAGIC_DEF("info", 0, njs_qjs_console_log, NJS_LOG_INFO),
     JS_CFUNC_MAGIC_DEF("log", 0, njs_qjs_console_log, NJS_LOG_INFO),
diff --git a/external/qjs_fs_module.c b/external/qjs_fs_module.c
index 2adeef20..9d1f7687 100644
--- a/external/qjs_fs_module.c
+++ b/external/qjs_fs_module.c
@@ -167,7 +167,6 @@ static JSValue qjs_fs_write_file(JSContext *cx, JSValueConst this_val, int argc,
 static JSValue qjs_fs_unlink(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv, int calltype);
 
-static JSValue qjs_fs_stats_to_string_tag(JSContext *cx, JSValueConst this_val);
 static JSValue qjs_fs_stats_test(JSContext *cx, JSValueConst this_val, int argc,
     JSValueConst *argv, int testtype);
 static int qjs_fs_stats_get_own_property(JSContext *cx,
@@ -176,15 +175,11 @@ static int qjs_fs_stats_get_own_property_names(JSContext *cx,
     JSPropertyEnum **ptab, uint32_t *plen, JSValueConst obj);
 static void qjs_fs_stats_finalizer(JSRuntime *rt, JSValue val);
 
-static JSValue qjs_fs_dirent_to_string_tag(JSContext *cx,
-    JSValueConst this_val);
 static JSValue qjs_fs_dirent_ctor(JSContext *cx, JSValueConst new_target,
     int argc, JSValueConst *argv);
 static JSValue qjs_fs_dirent_test(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv, int testtype);
 
-static JSValue qjs_fs_filehandle_to_string_tag(JSContext *cx,
-    JSValueConst this_val);
 static JSValue qjs_fs_filehandle_fd(JSContext *cx, JSValueConst this_val);
 static JSValue qjs_fs_filehandle_value_of(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv);
@@ -222,7 +217,7 @@ static qjs_fs_entry_t qjs_flags_table[] = {
 
 
 static const JSCFunctionListEntry qjs_fs_stats_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", qjs_fs_stats_to_string_tag, NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "Stats", JS_PROP_CONFIGURABLE),
     JS_CFUNC_MAGIC_DEF("isBlockDevice", 0, qjs_fs_stats_test, DT_BLK),
     JS_CFUNC_MAGIC_DEF("isCharacterDevice", 0, qjs_fs_stats_test, DT_CHR),
     JS_CFUNC_MAGIC_DEF("isDirectory", 0, qjs_fs_stats_test, DT_DIR),
@@ -234,7 +229,7 @@ static const JSCFunctionListEntry qjs_fs_stats_proto[] = {
 
 
 static const JSCFunctionListEntry qjs_fs_dirent_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", qjs_fs_dirent_to_string_tag, NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "Dirent", JS_PROP_CONFIGURABLE),
     JS_CFUNC_MAGIC_DEF("isBlockDevice", 0, qjs_fs_dirent_test, DT_BLK),
     JS_CFUNC_MAGIC_DEF("isCharacterDevice", 0, qjs_fs_dirent_test, DT_CHR),
     JS_CFUNC_MAGIC_DEF("isDirectory", 0, qjs_fs_dirent_test, DT_DIR),
@@ -247,8 +242,8 @@ static const JSCFunctionListEntry qjs_fs_dirent_proto[] = {
 
 
 static const JSCFunctionListEntry qjs_fs_filehandle_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", qjs_fs_filehandle_to_string_tag,
-                   NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "FileHandle",
+                       JS_PROP_CONFIGURABLE),
     JS_CFUNC_MAGIC_DEF("close", 0, qjs_fs_close, QJS_FS_PROMISE),
     JS_CGETSET_DEF("fd", qjs_fs_filehandle_fd, NULL),
     JS_CFUNC_MAGIC_DEF("stat", 4, qjs_fs_stat,
@@ -2341,13 +2336,6 @@ qjs_fs_unlink(JSContext *cx, JSValueConst this_val, int argc,
 }
 
 
-static JSValue
-qjs_fs_stats_to_string_tag(JSContext *cx, JSValueConst this_val)
-{
-    return JS_NewString(cx, "Stats");
-}
-
-
 static JSValue
 qjs_fs_stats_test(JSContext *cx, JSValueConst this_val, int argc,
     JSValueConst *argv, int testtype)
@@ -2629,13 +2617,6 @@ qjs_fs_stats_finalizer(JSRuntime *rt, JSValue val)
 }
 
 
-static JSValue
-qjs_fs_dirent_to_string_tag(JSContext *cx, JSValueConst this_val)
-{
-    return JS_NewString(cx, "Dirent");
-}
-
-
 static JSValue
 qjs_fs_dirent_test(JSContext *cx, JSValueConst this_val, int argc,
     JSValueConst *argv, int testtype)
@@ -2666,13 +2647,6 @@ qjs_fs_dirent_test(JSContext *cx, JSValueConst this_val, int argc,
 }
 
 
-static JSValue
-qjs_fs_filehandle_to_string_tag(JSContext *cx, JSValueConst this_val)
-{
-    return JS_NewString(cx, "FileHandle");
-}
-
-
 static JSValue
 qjs_fs_filehandle_fd(JSContext *cx, JSValueConst thisval)
 {
diff --git a/external/qjs_webcrypto_module.c b/external/qjs_webcrypto_module.c
index 560b2dd7..730feb6e 100644
--- a/external/qjs_webcrypto_module.c
+++ b/external/qjs_webcrypto_module.c
@@ -128,8 +128,6 @@ static JSValue qjs_webcrypto_import_key(JSContext *cx, JSValueConst this_val,
 static JSValue qjs_webcrypto_sign(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv, int verify);
 
-static JSValue qjs_webcrypto_key_to_string_tag(JSContext *cx,
-    JSValueConst this_val);
 static JSValue qjs_webcrypto_key_algorithm(JSContext *cx,
     JSValueConst this_val);
 static JSValue qjs_webcrypto_key_extractable(JSContext *cx,
@@ -444,8 +442,8 @@ static const JSCFunctionListEntry qjs_webcrypto_subtle[] = {
 
 
 static const JSCFunctionListEntry qjs_webcrypto_key_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", qjs_webcrypto_key_to_string_tag,
-                   NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "CryptoKey",
+                       JS_PROP_CONFIGURABLE),
     JS_CGETSET_DEF("algorithm", qjs_webcrypto_key_algorithm, NULL),
     JS_CGETSET_DEF("extractable", qjs_webcrypto_key_extractable, NULL),
     JS_CGETSET_DEF("type", qjs_webcrypto_key_type, NULL),
@@ -4000,13 +3998,6 @@ fail:
 }
 
 
-static JSValue
-qjs_webcrypto_key_to_string_tag(JSContext *cx, JSValueConst this_val)
-{
-    return JS_NewString(cx, "CryptoKey");
-}
-
-
 static JSValue
 qjs_webcrypto_key_algorithm(JSContext *cx, JSValueConst this_val)
 {
diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c
index cdc668c5..71fd92ba 100644
--- a/nginx/ngx_http_js_module.c
+++ b/nginx/ngx_http_js_module.c
@@ -276,8 +276,6 @@ static njs_int_t ngx_http_js_server(njs_vm_t *vm, ngx_http_request_t *r,
     njs_value_t *retval);
 
 #if (NJS_HAVE_QUICKJS)
-static JSValue ngx_http_qjs_ext_to_string_tag(JSContext *cx,
-    JSValueConst this_val);
 static JSValue ngx_http_qjs_ext_args(JSContext *cx, JSValueConst this_val);
 static JSValue ngx_http_qjs_ext_done(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv);
@@ -294,8 +292,6 @@ static JSValue ngx_http_qjs_ext_internal_redirect(JSContext *cx,
     JSValueConst this_val, int argc, JSValueConst *argv);
 static JSValue ngx_http_qjs_ext_log(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv, int level);
-static JSValue ngx_http_qjs_ext_periodic_to_string_tag(JSContext *cx,
-    JSValueConst this_val);
 static JSValue ngx_http_qjs_ext_periodic_variables(JSContext *cx,
     JSValueConst this_val, int type);
 static JSValue ngx_http_qjs_ext_parent(JSContext *cx, JSValueConst this_val);
@@ -1035,8 +1031,7 @@ static ngx_http_js_entry_t ngx_http_methods[] = {
 #if (NJS_HAVE_QUICKJS)
 
 static const JSCFunctionListEntry ngx_http_qjs_ext_request[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", ngx_http_qjs_ext_to_string_tag,
-                   NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "Request", JS_PROP_CONFIGURABLE),
     JS_CGETSET_DEF("args", ngx_http_qjs_ext_args, NULL),
     JS_CFUNC_DEF("done", 0, ngx_http_qjs_ext_done),
     JS_CFUNC_MAGIC_DEF("error", 1, ngx_http_qjs_ext_log, NGX_LOG_ERR),
@@ -1081,8 +1076,8 @@ static const JSCFunctionListEntry ngx_http_qjs_ext_request[] = {
 
 
 static const JSCFunctionListEntry ngx_http_qjs_ext_periodic[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]",
-                   ngx_http_qjs_ext_periodic_to_string_tag, NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "PeriodicSession",
+                       JS_PROP_CONFIGURABLE),
     JS_CGETSET_MAGIC_DEF("rawVariables", ngx_http_qjs_ext_periodic_variables,
                    NULL, NGX_JS_BUFFER),
     JS_CGETSET_MAGIC_DEF("variables", ngx_http_qjs_ext_periodic_variables,
@@ -4825,14 +4820,6 @@ ngx_http_qjs_query_string_decode(njs_chb_t *chain, const u_char *start,
 }
 
 
-static JSValue
-ngx_http_qjs_ext_to_string_tag(JSContext *cx,
-    JSValueConst this_val)
-{
-    return JS_NewString(cx, "Request");
-}
-
-
 static JSValue
 ngx_http_qjs_ext_args(JSContext *cx, JSValueConst this_val)
 {
@@ -5181,14 +5168,6 @@ ngx_http_qjs_ext_log(JSContext *cx, JSValueConst this_val, int argc,
 }
 
 
-static JSValue
-ngx_http_qjs_ext_periodic_to_string_tag(JSContext *cx,
-    JSValueConst this_val)
-{
-    return JS_NewString(cx, "PeriodicSession");
-}
-
-
 static JSValue
 ngx_http_qjs_ext_periodic_variables(JSContext *cx,
     JSValueConst this_val, int type)
diff --git a/nginx/ngx_js_shared_dict.c b/nginx/ngx_js_shared_dict.c
index 06f940e0..6ae12d84 100644
--- a/nginx/ngx_js_shared_dict.c
+++ b/nginx/ngx_js_shared_dict.c
@@ -146,9 +146,7 @@ static JSValue ngx_qjs_ext_shared_dict_set(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv, int flags);
 static JSValue ngx_qjs_ext_shared_dict_size(JSContext *cx,
     JSValueConst this_val, int argc, JSValueConst *argv);
-static JSValue ngx_qjs_ext_shared_dict_tag(JSContext *cx,
-    JSValueConst this_val);
-static JSValue ngx_qjs_ext_shared_dict_type(JSContext *cx,
+    static JSValue ngx_qjs_ext_shared_dict_type(JSContext *cx,
     JSValueConst this_val);
 
 static JSValue ngx_qjs_dict_copy_value_locked(JSContext *cx,
@@ -425,7 +423,8 @@ static const JSCFunctionListEntry ngx_qjs_ext_ngx[] = {
 };
 
 static const JSCFunctionListEntry ngx_qjs_ext_shared_dict[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", ngx_qjs_ext_shared_dict_tag, NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "SharedDict",
+                       JS_PROP_CONFIGURABLE),
     JS_CFUNC_MAGIC_DEF("add", 3, ngx_qjs_ext_shared_dict_set,
                        NGX_JS_DICT_FLAG_MUST_NOT_EXIST),
     JS_CGETSET_DEF("capacity", ngx_qjs_ext_shared_dict_capacity, NULL),
@@ -2604,13 +2603,6 @@ ngx_qjs_ext_shared_dict_size(JSContext *cx, JSValueConst this_val,
 }
 
 
-static JSValue
-ngx_qjs_ext_shared_dict_tag(JSContext *cx, JSValueConst this_val)
-{
-    return JS_NewString(cx, "SharedDict");
-}
-
-
 static JSValue
 ngx_qjs_ext_shared_dict_type(JSContext *cx, JSValueConst this_val)
 {
diff --git a/nginx/ngx_stream_js_module.c b/nginx/ngx_stream_js_module.c
index db00b922..7e93b237 100644
--- a/nginx/ngx_stream_js_module.c
+++ b/nginx/ngx_stream_js_module.c
@@ -145,8 +145,6 @@ static njs_int_t ngx_stream_js_periodic_variables(njs_vm_t *vm,
 
 #if (NJS_HAVE_QUICKJS)
 
-static JSValue ngx_stream_qjs_ext_to_string_tag(JSContext *cx,
-    JSValueConst this_val);
 static JSValue ngx_stream_qjs_ext_done(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv, int magic);
 static JSValue ngx_stream_qjs_ext_log(JSContext *cx, JSValueConst this_val,
@@ -155,8 +153,6 @@ static JSValue ngx_stream_qjs_ext_on(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv);
 static JSValue ngx_stream_qjs_ext_off(JSContext *cx, JSValueConst this_val,
     int argc, JSValueConst *argv);
-static JSValue ngx_stream_qjs_ext_periodic_to_string_tag(JSContext *cx,
-    JSValueConst this_val);
 static JSValue ngx_stream_qjs_ext_periodic_variables(JSContext *cx,
     JSValueConst this_val, int type);
 static JSValue ngx_stream_qjs_ext_remote_address(JSContext *cx,
@@ -762,8 +758,8 @@ njs_module_t *njs_stream_js_addon_modules[] = {
 #if (NJS_HAVE_QUICKJS)
 
 static const JSCFunctionListEntry ngx_stream_qjs_ext_session[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", ngx_stream_qjs_ext_to_string_tag,
-                   NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "Stream Session",
+                       JS_PROP_CONFIGURABLE),
     JS_CFUNC_MAGIC_DEF("allow", 1, ngx_stream_qjs_ext_done, NGX_OK),
     JS_CFUNC_MAGIC_DEF("decline", 1, ngx_stream_qjs_ext_done, -NGX_DECLINED),
     JS_CFUNC_MAGIC_DEF("deny", 1, ngx_stream_qjs_ext_done, -NGX_DONE),
@@ -790,8 +786,8 @@ static const JSCFunctionListEntry ngx_stream_qjs_ext_session[] = {
 
 
 static const JSCFunctionListEntry ngx_stream_qjs_ext_periodic[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]",
-                   ngx_stream_qjs_ext_periodic_to_string_tag, NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "PeriodicSession",
+                       JS_PROP_CONFIGURABLE),
     JS_CGETSET_MAGIC_DEF("rawVariables", ngx_stream_qjs_ext_periodic_variables,
                    NULL, NGX_JS_BUFFER),
     JS_CGETSET_MAGIC_DEF("variables", ngx_stream_qjs_ext_periodic_variables,
@@ -1998,13 +1994,6 @@ ngx_engine_njs_clone(ngx_js_ctx_t *ctx, ngx_js_loc_conf_t *cf,
 
 #if (NJS_HAVE_QUICKJS)
 
-static JSValue
-ngx_stream_qjs_ext_to_string_tag(JSContext *cx, JSValueConst this_val)
-{
-    return JS_NewString(cx, "Stream Session");
-}
-
-
 static JSValue
 ngx_stream_qjs_ext_done(JSContext *cx, JSValueConst this_val, int argc,
     JSValueConst *argv, int magic)
@@ -2222,14 +2211,6 @@ ngx_stream_qjs_ext_off(JSContext *cx, JSValueConst this_val, int argc,
 }
 
 
-static JSValue
-ngx_stream_qjs_ext_periodic_to_string_tag(JSContext *cx,
-    JSValueConst this_val)
-{
-    return JS_NewString(cx, "PeriodicSession");
-}
-
-
 static JSValue
 ngx_stream_qjs_ext_periodic_variables(JSContext *cx,
     JSValueConst this_val, int type)
diff --git a/src/qjs.c b/src/qjs.c
index 56c6a3ba..ed9a6178 100644
--- a/src/qjs.c
+++ b/src/qjs.c
@@ -43,8 +43,6 @@ extern char  **environ;
 
 
 static JSValue qjs_njs_getter(JSContext *ctx, JSValueConst this_val);
-static JSValue qjs_njs_to_string_tag(JSContext *ctx, JSValueConst this_val);
-static JSValue qjs_process_to_string_tag(JSContext *ctx, JSValueConst this_val);
 static JSValue qjs_process_env(JSContext *ctx, JSValueConst this_val);
 static JSValue qjs_process_kill(JSContext *ctx, JSValueConst this_val,
     int argc, JSValueConst *argv);
@@ -52,8 +50,6 @@ static JSValue qjs_process_pid(JSContext *ctx, JSValueConst this_val);
 static JSValue qjs_process_ppid(JSContext *ctx, JSValueConst this_val);
 
 static int qjs_add_intrinsic_text_decoder(JSContext *cx, JSValueConst global);
-static JSValue qjs_text_decoder_to_string_tag(JSContext *ctx,
-    JSValueConst this_val);
 static JSValue qjs_text_decoder_decode(JSContext *ctx, JSValueConst this_val,
     int argc, JSValueConst *argv);
 static JSValue qjs_text_decoder_encoding(JSContext *ctx, JSValueConst this_val);
@@ -63,8 +59,6 @@ static JSValue qjs_text_decoder_ignore_bom(JSContext *ctx,
 static void qjs_text_decoder_finalizer(JSRuntime *rt, JSValue val);
 
 static int qjs_add_intrinsic_text_encoder(JSContext *cx, JSValueConst global);
-static JSValue qjs_text_encoder_to_string_tag(JSContext *ctx,
-    JSValueConst this_val);
 static JSValue qjs_text_encoder_encode(JSContext *ctx, JSValueConst this_val,
     int argc, JSValueConst *argv);
 static JSValue qjs_text_encoder_encode_into(JSContext *ctx,
@@ -110,8 +104,8 @@ static const JSCFunctionListEntry qjs_global_proto[] = {
 };
 
 static const JSCFunctionListEntry qjs_text_decoder_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", qjs_text_decoder_to_string_tag,
-                   NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "TextDecoder",
+                       JS_PROP_CONFIGURABLE),
     JS_CFUNC_DEF("decode", 1, qjs_text_decoder_decode),
     JS_CGETSET_DEF("encoding", qjs_text_decoder_encoding, NULL),
     JS_CGETSET_DEF("fatal", qjs_text_decoder_fatal, NULL),
@@ -119,15 +113,15 @@ static const JSCFunctionListEntry qjs_text_decoder_proto[] = {
 };
 
 static const JSCFunctionListEntry qjs_text_encoder_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", qjs_text_encoder_to_string_tag,
-                   NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "TextEncoder",
+                       JS_PROP_CONFIGURABLE),
     JS_CFUNC_DEF("encode", 1, qjs_text_encoder_encode),
     JS_CFUNC_DEF("encodeInto", 1, qjs_text_encoder_encode_into),
     JS_CGETSET_DEF("encoding", qjs_text_encoder_encoding, NULL),
 };
 
 static const JSCFunctionListEntry qjs_njs_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", qjs_njs_to_string_tag, NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "njs", JS_PROP_CONFIGURABLE),
     JS_PROP_STRING_DEF("version", NJS_VERSION, JS_PROP_C_W_E),
     JS_PROP_INT32_DEF("version_number", NJS_VERSION_NUMBER,
                       JS_PROP_C_W_E),
@@ -135,7 +129,7 @@ static const JSCFunctionListEntry qjs_njs_proto[] = {
 };
 
 static const JSCFunctionListEntry qjs_process_proto[] = {
-    JS_CGETSET_DEF("[Symbol.toStringTag]", qjs_process_to_string_tag, NULL),
+    JS_PROP_STRING_DEF("[Symbol.toStringTag]", "process", JS_PROP_CONFIGURABLE),
     JS_CGETSET_DEF("env", qjs_process_env, NULL),
     JS_CFUNC_DEF("kill", 2, qjs_process_kill),
     JS_CGETSET_DEF("pid", qjs_process_pid, NULL),
@@ -246,20 +240,6 @@ qjs_njs_getter(JSContext *ctx, JSValueConst this_val)
 }
 
 
-static JSValue
-qjs_njs_to_string_tag(JSContext *ctx, JSValueConst this_val)
-{
-    return JS_NewString(ctx, "njs");
-}
-
-
-static JSValue
-qjs_process_to_string_tag(JSContext *ctx, JSValueConst this_val)
-{
-    return JS_NewString(ctx, "process");
-}
-
-
 static JSValue
 qjs_process_env(JSContext *ctx, JSValueConst this_val)
 {
@@ -583,13 +563,6 @@ qjs_add_intrinsic_text_decoder(JSContext *cx, JSValueConst global)
 }
 
 
-static JSValue
-qjs_text_decoder_to_string_tag(JSContext *ctx, JSValueConst this_val)
-{
-    return JS_NewString(ctx, "TextDecoder");
-}
-
-
 static JSValue
 qjs_text_decoder_decode(JSContext *cx, JSValueConst this_val, int argc,
     JSValueConst *argv)
@@ -762,13 +735,6 @@ qjs_add_intrinsic_text_encoder(JSContext *cx, JSValueConst global)
 }
 
 
-static JSValue
-qjs_text_encoder_to_string_tag(JSContext *ctx, JSValueConst this_val)
-{
-    return JS_NewString(ctx, "TextEncoder");
-}
-
-
 static JSValue
 qjs_text_encoder_encoding(JSContext *ctx, JSValueConst this_val)
 {


More information about the nginx-devel mailing list