From 01652ccc682d2ed678d43a22d1ceb33776c0d4b1 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 21 Aug 2017 23:20:59 -0300 Subject: [PATCH] util: add fast internal array join method PR-URL: https://github.com/nodejs/node/pull/14881 Reviewed-By: Refael Ackermann Reviewed-By: Matteo Collina Reviewed-By: Benjamin Gruenbaum --- lib/internal/util.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/internal/util.js b/lib/internal/util.js index e7b9b958c7..3bae5b7f39 100644 --- a/lib/internal/util.js +++ b/lib/internal/util.js @@ -257,6 +257,20 @@ function promisify(original) { promisify.custom = kCustomPromisifiedSymbol; +// The build-in Array#join is slower in v8 6.0 +function join(output, separator) { + var str = ''; + if (output.length !== 0) { + for (var i = 0; i < output.length - 1; i++) { + // It is faster not to use a template string here + str += output[i]; + str += separator; + } + str += output[i]; + } + return str; +} + module.exports = { assertCrypto, cachedResult, @@ -270,6 +284,7 @@ module.exports = { normalizeEncoding, objectToString, promisify, + join, // Symbol used to customize promisify conversion customPromisifyArgs: kCustomPromisifyArgsSymbol,