Fixed typo
authorlrn@chromium.org <lrn@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 7 Oct 2008 09:04:23 +0000 (09:04 +0000)
committerlrn@chromium.org <lrn@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 7 Oct 2008 09:04:23 +0000 (09:04 +0000)
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/objects-inl.h
test/mjsunit/switch.js

index decaf39..a612ba9 100644 (file)
@@ -1321,17 +1321,17 @@ StringRepresentationTag String::map_representation_tag(Map* map) {
 
 
 bool String::IsFlat() {
-  String* current = this;
-  while (true) {
-    switch (current->representation_tag()) {
-      case kConsStringTag:
-        return String::cast(ConsString::cast(current)->second())->length() == 0;
-      case kSlicedStringTag:
-        current = String::cast(SlicedString::cast(this)->buffer());
-        break;
-      default:
-        return true;
+  switch (this->representation_tag()) {
+    case kConsStringTag:
+      // Only flattened strings have second part empty.
+      return String::cast(ConsString::cast(this)->second())->length() == 0;
+    case kSlicedStringTag: {
+      String* slice = String::cast(SlicedString::cast(this)->buffer());
+      StringRepresentationTag tag = slice->representation_tag();
+      return tag == kSeqStringTag || tag == kExternalStringTag;
     }
+    default:
+      return true;
   }
 }
 
index 3b8458d..ae5ce2b 100644 (file)
@@ -27,7 +27,7 @@
 
 function f0() {
   switch (0) {
-    // switch deliberatly left empty
+    // switch deliberately left empty
   }
 }