Index: src/heap.cc |
=================================================================== |
--- src/heap.cc (revision 6096) |
+++ src/heap.cc (working copy) |
@@ -3307,8 +3307,8 @@ |
} |
-MaybeObject* Heap::AllocateStringFromUtf8(Vector<const char> string, |
- PretenureFlag pretenure) { |
+MaybeObject* Heap::AllocateStringFromUtf8Slow(Vector<const char> string, |
+ PretenureFlag pretenure) { |
// V8 only supports characters in the Basic Multilingual Plane. |
const uc32 kMaxSupportedChar = 0xFFFF; |
// Count the number of characters in the UTF-8 string and check if |
@@ -3317,17 +3317,11 @@ |
decoder(ScannerConstants::utf8_decoder()); |
decoder->Reset(string.start(), string.length()); |
int chars = 0; |
- bool is_ascii = true; |
while (decoder->has_more()) { |
- uc32 r = decoder->GetNext(); |
- if (r > String::kMaxAsciiCharCode) is_ascii = false; |
+ decoder->GetNext(); |
chars++; |
} |
- // If the string is ascii, we do not need to convert the characters |
- // since UTF8 is backwards compatible with ascii. |
- if (is_ascii) return AllocateStringFromAscii(string, pretenure); |
- |
Object* result; |
{ MaybeObject* maybe_result = AllocateRawTwoByteString(chars, pretenure); |
if (!maybe_result->ToObject(&result)) return maybe_result; |