]> git.kaiwu.me - njs.git/commitdiff
QuickJS: fixed Buffer.concat() with a single argument.
authorDmitry Volyntsev <xeioex@nginx.com>
Fri, 17 Jan 2025 01:36:44 +0000 (17:36 -0800)
committerDmitry Volyntsev <xeioexception@gmail.com>
Thu, 23 Jan 2025 00:05:47 +0000 (16:05 -0800)
src/qjs_buffer.c
test/buffer.t.js

index 3652a07ae968ff736e74ab0dba5d630ebaedb41a..9840377f4ca84290784f4f4c539860084f061b93 100644 (file)
@@ -158,7 +158,7 @@ static const JSCFunctionListEntry qjs_buffer_props[] = {
     JS_CFUNC_MAGIC_DEF("allocUnsafe", 3, qjs_bufferobj_alloc, 1),
     JS_CFUNC_DEF("byteLength", 2, qjs_buffer_byte_length),
     JS_CFUNC_DEF("compare", 6, qjs_buffer_compare),
-    JS_CFUNC_DEF("concat", 1, qjs_buffer_concat),
+    JS_CFUNC_DEF("concat", 2, qjs_buffer_concat),
     JS_CFUNC_DEF("from", 3, qjs_buffer_from),
     JS_CFUNC_DEF("isBuffer", 1, qjs_buffer_is_buffer),
     JS_CFUNC_DEF("isEncoding", 1, qjs_buffer_is_encoding),
index 9becf487c36bcc3fcf4f124de2014d529a9038ee..8e3f4ca9f6f240c26e270ce10bde1ecc01be1035 100644 (file)
@@ -79,7 +79,14 @@ let concat_tsuite = {
     name: "Buffer.concat() tests",
     skip: () => (!has_buffer()),
     T: async (params) => {
-        let r = Buffer.concat(params.buffers, params.length);
+        let r;
+
+        if (params.length) {
+            r = Buffer.concat(params.buffers, params.length);
+
+        } else {
+            r = Buffer.concat(params.buffers);
+        }
 
         if (r.toString() !== params.expected) {
             throw Error(`unexpected output "${r.toString()}" != "${params.expected}"`);