diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2017-08-21 23:20:59 -0300 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2017-09-14 21:46:33 -0300 |
commit | 01652ccc682d2ed678d43a22d1ceb33776c0d4b1 (patch) | |
tree | ea7b2461177680baebd9a9e3aad282d3dd7afd5f /lib/internal/util.js | |
parent | 6bfc439711daf4361f7ce6d9256739e1a2c07141 (diff) | |
download | android-node-v8-01652ccc682d2ed678d43a22d1ceb33776c0d4b1.tar.gz android-node-v8-01652ccc682d2ed678d43a22d1ceb33776c0d4b1.tar.bz2 android-node-v8-01652ccc682d2ed678d43a22d1ceb33776c0d4b1.zip |
util: add fast internal array join method
PR-URL: https://github.com/nodejs/node/pull/14881
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Diffstat (limited to 'lib/internal/util.js')
-rw-r--r-- | lib/internal/util.js | 15 |
1 files changed, 15 insertions, 0 deletions
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, |