aboutsummaryrefslogtreecommitdiff
path: root/lib/internal/util.js
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2017-08-21 23:20:59 -0300
committerRuben Bridgewater <ruben@bridgewater.de>2017-09-14 21:46:33 -0300
commit01652ccc682d2ed678d43a22d1ceb33776c0d4b1 (patch)
treeea7b2461177680baebd9a9e3aad282d3dd7afd5f /lib/internal/util.js
parent6bfc439711daf4361f7ce6d9256739e1a2c07141 (diff)
downloadandroid-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.js15
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,