]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - bytecode/ReduceWhitespace.cpp
JavaScriptCore-7600.1.4.13.1.tar.gz
[apple/javascriptcore.git] / bytecode / ReduceWhitespace.cpp
index 1636cba1d15e08395c341a3ad66f6553c52462ff..d1f25b01fc33a285ab19f09bd34a6c6cd501d1f9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012 Apple Inc. All rights reserved.
+ * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
 #include "config.h"
 #include "ReduceWhitespace.h"
 
-#include <wtf/text/StringBuilder.h>
-#include <wtf/text/WTFString.h>
+#include <wtf/ASCIICType.h>
+#include <wtf/StringPrintStream.h>
 
 namespace JSC {
 
-String reduceWhitespace(const String& input)
+CString reduceWhitespace(const CString& input)
 {
-    StringBuilder builder;
+    StringPrintStream out;
+    
+    const char* data = input.data();
     
     for (unsigned i = 0; i < input.length();) {
-        if (isASCIISpace(input[i])) {
-            while (i < input.length() && isASCIISpace(input[i]))
+        if (isASCIISpace(data[i])) {
+            while (i < input.length() && isASCIISpace(data[i]))
                 ++i;
-            builder.append(' ');
+            out.print(CharacterDump(' '));
             continue;
         }
-        builder.append(input[i]);
+        out.print(CharacterDump(data[i]));
         ++i;
     }
     
-    return builder.toString();
+    return out.toCString();
 }
 
 } // namespace JSC