From 976ed440e983f56a96630caae9103f1cf80345cf Mon Sep 17 00:00:00 2001 From: Alexander Borisov Date: Mon, 19 Oct 2020 15:51:37 +0300 Subject: [PATCH] Fixed returned value for Buffer.prototype.write* functions. All Buffer.prototype.write* functions must return offset plus the number of bytes written. The issue was introduced in 27bb9caf186c. --- src/njs_buffer.c | 2 +- src/test/njs_unit_test.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/njs_buffer.c b/src/njs_buffer.c index 55442595..1142cf7a 100644 --- a/src/njs_buffer.c +++ b/src/njs_buffer.c @@ -1331,7 +1331,7 @@ njs_buffer_prototype_write_int(njs_vm_t *vm, njs_value_t *args, break; } - njs_set_undefined(&vm->retval); + njs_set_number(&vm->retval, index + size); return NJS_OK; } diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c index 435fb2ad..ea005574 100644 --- a/src/test/njs_unit_test.c +++ b/src/test/njs_unit_test.c @@ -19191,7 +19191,11 @@ static njs_unit_test_t njs_test[] = " if (size > 1) { rmethod += endianness; wmethod += endianness; };" " var v = 0x7abbccddeeff & (size * 8 - 1);" "" - " buf[wgmethod](v, offset, size);" + " var ret = buf[wgmethod](v, offset, size);" + " if(ret !== offset + size) {" + " throw Error(`${wgmethod} returned ${ret}, need ${offset + size}`);" + " }" + "" " var gv = buf[rgmethod](offset, size);" "" " buf.fill(0);" -- 2.47.3