[njs] Adding support for multiple arguments in console.log().

Dmitry Volyntsev xeioex at nginx.com
Mon Jul 2 15:04:19 UTC 2018


details:   http://hg.nginx.org/njs/rev/649e5804b971
branches:  
changeset: 548:649e5804b971
user:      xeioex at nginx.com
date:      Tue Jun 26 18:27:33 2018 +0700
description:
Adding support for multiple arguments in console.log().

diffstat:

 njs/njs_shell.c              |  24 +++++++++++++++---------
 njs/test/njs_expect_test.exp |   6 +++---
 2 files changed, 18 insertions(+), 12 deletions(-)

diffs (57 lines):

diff -r 31e0580b3c02 -r 649e5804b971 njs/njs_shell.c
--- a/njs/njs_shell.c	Fri Jun 29 22:36:41 2018 +0300
+++ b/njs/njs_shell.c	Tue Jun 26 18:27:33 2018 +0700
@@ -622,20 +622,26 @@ static njs_ret_t
 njs_ext_console_log(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
     njs_index_t unused)
 {
-    nxt_str_t  msg;
+    nxt_str_t   msg;
+    nxt_uint_t  n;
 
-    msg.length = 0;
-    msg.start = NULL;
+    n = 1;
 
-    if (nargs >= 2
-        && njs_vm_value_to_ext_string(vm, &msg, njs_argument(args, 1), 0)
-           == NJS_ERROR)
-    {
+    while (n < nargs) {
+        if (njs_vm_value_to_ext_string(vm, &msg, njs_argument(args, n), 0)
+            == NJS_ERROR)
+        {
+            return NJS_ERROR;
+        }
 
-        return NJS_ERROR;
+        printf("%s%.*s", (n != 1) ? " " : "", (int) msg.length, msg.start);
+
+        n++;
     }
 
-    printf("%.*s\n", (int) msg.length, msg.start);
+    if (nargs > 1) {
+        printf("\n");
+    }
 
     vm->retval = njs_value_void;
 
diff -r 31e0580b3c02 -r 649e5804b971 njs/test/njs_expect_test.exp
--- a/njs/test/njs_expect_test.exp	Fri Jun 29 22:36:41 2018 +0300
+++ b/njs/test/njs_expect_test.exp	Tue Jun 26 18:27:33 2018 +0700
@@ -162,11 +162,11 @@ njs_test {
 # console object
 njs_test {
     {"console.log()\r\n"
-     "console.log()\r\n\r\nundefined\r\n>> "}
+     "console.log()\r\nundefined\r\n>> "}
     {"console.log(1)\r\n"
      "console.log(1)\r\n1\r\nundefined\r\n>> "}
-    {"console.log('abc')\r\n"
-     "console.log('abc')\r\nabc\r\nundefined\r\n>> "}
+    {"console.log(1, 'a')\r\n"
+     "console.log(1, 'a')\r\n1 a\r\nundefined\r\n>> "}
     {"console.help()\r\n"
      "console.help()\r\nVM built-in objects:"}
 }


More information about the nginx-devel mailing list