Dmitry Volyntsev
February 14, 2022 09:32AM
details: https://hg.nginx.org/njs/rev/040d1b318a15
branches:
changeset: 1824:040d1b318a15
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Mon Feb 14 14:10:26 2022 +0000
description:
Fixed backtraces for native modules imported with import statement.

Previously, the module name was missing when exception is reported
for a native module function imported with import statement.

diffstat:

external/njs_crypto_module.c | 8 ++++++++
external/njs_fs_module.c | 8 ++++++++
external/njs_query_string_module.c | 8 ++++++++
src/test/njs_unit_test.c | 5 +++++
4 files changed, 29 insertions(+), 0 deletions(-)

diffs (69 lines):

diff -r bede4b8a693a -r 040d1b318a15 external/njs_crypto_module.c
--- a/external/njs_crypto_module.c Mon Feb 14 14:10:04 2022 +0000
+++ b/external/njs_crypto_module.c Mon Feb 14 14:10:26 2022 +0000
@@ -231,6 +231,14 @@ static njs_external_t njs_ext_crypto_hm
static njs_external_t njs_ext_crypto_crypto[] = {

{
+ .flags = NJS_EXTERN_PROPERTY | NJS_EXTERN_SYMBOL,
+ .name.symbol = NJS_SYMBOL_TO_STRING_TAG,
+ .u.property = {
+ .value = "crypto",
+ }
+ },
+
+ {
.flags = NJS_EXTERN_METHOD,
.name.string = njs_str("createHash"),
.writable = 1,
diff -r bede4b8a693a -r 040d1b318a15 external/njs_fs_module.c
--- a/external/njs_fs_module.c Mon Feb 14 14:10:04 2022 +0000
+++ b/external/njs_fs_module.c Mon Feb 14 14:10:26 2022 +0000
@@ -228,6 +228,14 @@ static njs_fs_entry_t njs_flags_table[]
static njs_external_t njs_ext_fs[] = {

{
+ .flags = NJS_EXTERN_PROPERTY | NJS_EXTERN_SYMBOL,
+ .name.symbol = NJS_SYMBOL_TO_STRING_TAG,
+ .u.property = {
+ .value = "fs",
+ }
+ },
+
+ {
.flags = NJS_EXTERN_METHOD,
.name.string = njs_str("access"),
.writable = 1,
diff -r bede4b8a693a -r 040d1b318a15 external/njs_query_string_module.c
--- a/external/njs_query_string_module.c Mon Feb 14 14:10:04 2022 +0000
+++ b/external/njs_query_string_module.c Mon Feb 14 14:10:26 2022 +0000
@@ -33,6 +33,14 @@ static njs_int_t njs_query_string_init(n
static njs_external_t njs_ext_query_string[] = {

{
+ .flags = NJS_EXTERN_PROPERTY | NJS_EXTERN_SYMBOL,
+ .name.symbol = NJS_SYMBOL_TO_STRING_TAG,
+ .u.property = {
+ .value = "querystring",
+ }
+ },
+
+ {
.flags = NJS_EXTERN_METHOD,
.name.string = njs_str("parse"),
.writable = 1,
diff -r bede4b8a693a -r 040d1b318a15 src/test/njs_unit_test.c
--- a/src/test/njs_unit_test.c Mon Feb 14 14:10:04 2022 +0000
+++ b/src/test/njs_unit_test.c Mon Feb 14 14:10:26 2022 +0000
@@ -21243,6 +21243,11 @@ static njs_unit_test_t njs_shared_test[
" at fs.readFileSync (native)\n"
" at main (:1)\n") },

+ { njs_str("import fs from 'fs'; fs.readFileSync()"),
+ njs_str("TypeError: \"path\" must be a string or Buffer\n"
+ " at fs.readFileSync (native)\n"
+ " at main (:1)\n") },
+
{ njs_str("var f = new Function('return 1;'); f();"),
njs_str("1") },

_______________________________________________
nginx-devel mailing list -- nginx-devel@nginx.org
To unsubscribe send an email to nginx-devel-leave@nginx.org
Subject Author Views Posted

[njs] Fixed backtraces for native modules imported with import statement.

Dmitry Volyntsev 510 February 14, 2022 09:32AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 147
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready