From 28ddac2ec285b950a17bc42d7c79c329c8573c9e Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sun, 14 May 2017 19:57:52 +0200 Subject: [PATCH] buffer: fix indexOf for empty searches Make searches for empty subsequences do exactly what `String.prototype.indexOf()` does. Fixes: https://github.com/nodejs/node/issues/13023 PR-URL: https://github.com/nodejs/node/pull/13024 Reviewed-By: James M Snell Reviewed-By: Rich Trott Reviewed-By: Refael Ackermann Reviewed-By: Colin Ihrig Reviewed-By: Sakthipriyan Vairamani --- doc/api/buffer.md | 6 ++++ lib/buffer.js | 2 +- src/node_buffer.cc | 48 +++++++++++++++++++-------- test/parallel/test-buffer-includes.js | 16 ++++----- test/parallel/test-buffer-indexof.js | 24 +++++++------- 5 files changed, 62 insertions(+), 34 deletions(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 3a6a048417..9b3f3f8b4b 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -1340,6 +1340,10 @@ console.log(b.indexOf('b', null)); console.log(b.indexOf('b', [])); ``` +If `value` is an empty string or empty `Buffer` and `byteOffset` is less +than `buf.length`, `byteOffset` will be returned. If `value` is empty and +`byteOffset` is at least `buf.length`, `buf.length` will be returned. + ### buf.keys()