Avoid the creation of a string builder for joining one-element arrays.
authorager@chromium.org <ager@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 10 Sep 2008 09:37:34 +0000 (09:37 +0000)
committerager@chromium.org <ager@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 10 Sep 2008 09:37:34 +0000 (09:37 +0000)
Review URL: http://codereview.chromium.org/1888

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/array.js

index 061283a..a62cf4d 100644 (file)
@@ -111,6 +111,14 @@ function Join(array, length, separator, convert) {
       return SparseJoin(array, length, convert);
     }
 
+    // Fast case for one-element arrays.
+    if (length == 1) {
+      var e = array[0];
+      if (!IS_UNDEFINED(e) || (0 in array)) {
+        return convert(e);
+      }
+    }
+
     var builder = new StringBuilder();
 
     for (var i = 0; i < length; i++) {