]> git.kaiwu.me - njs.git/commitdiff
Fetch: fixed Headers.set().
authorDmitry Volyntsev <xeioex@nginx.com>
Wed, 15 Nov 2023 23:07:20 +0000 (15:07 -0800)
committerDmitry Volyntsev <xeioex@nginx.com>
Wed, 15 Nov 2023 23:07:20 +0000 (15:07 -0800)
This closes #680 issue on Github.

nginx/ngx_js_fetch.c
nginx/t/js_fetch_objects.t

index 96e1845f920f9f9c0bf47fea775bd13649fd4054..c3d15aa092375eac058bf7d0c2bdb8ed492793c5 100644 (file)
@@ -3637,9 +3637,19 @@ ngx_headers_js_ext_set(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
                 ph = &(*ph)->next;
                 *pp = NULL;
             }
+
+            goto done;
         }
     }
 
+    ret = ngx_js_headers_append(vm, headers, name.start, name.length,
+                                value.start, value.length);
+    if (ret != NJS_OK) {
+        return NJS_ERROR;
+    }
+
+done:
+
     njs_value_undefined_set(retval);
 
     return NJS_OK;
index c8001823814ee2837c1ae487a44aff1625cdb91b..d0f4763024c693c3bde55a4016db5fa2fc86e08b 100644 (file)
@@ -206,6 +206,11 @@ $t->write_file('test.js', <<EOF);
                 h.set('a', '#');
                 return h.get('a');
              }, '#'],
+             ['set on empty', () => {
+                var h = new Headers([]);
+                h.set('x-test', '1234');
+                return h.get('x-test');
+             }, '1234'],
         ];
 
         run(r, tests);