From 7ef6f4c48a3eae587e8bc7db32d5aaa809565e1b Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Tue, 8 Jul 2014 21:08:09 -0700 Subject: [PATCH] dont use slice on arguments ~21% increase with multiple arguments --- index.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index b512746..ac1f168 100644 --- a/index.js +++ b/index.js @@ -40,7 +40,15 @@ var proto = defineProps(function chalk() {}, styles); function applyStyle() { // support varags, but simply cast to string in case there's only one arg - var str = arguments.length === 1 ? String(arguments[0]) : [].slice.call(arguments).join(' '); + var args = arguments; + var argsLen = args.length; + var str = argsLen !== 0 && String(arguments[0]); + if (argsLen > 1) { + // don't slice `arguments`, it prevents v8 optimizations + for (var a = 1; a < argsLen; a++) { + str += ' ' + args[a]; + } + } if (!chalk.enabled || !str) { return str;