Reviewers: Mikhail Naganov,

Description:
Make one-character strings into symbols more agressively.

Please review this at http://codereview.chromium.org/7840029/

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
  M     src/heap.cc
  M     test/cctest/test-profile-generator.cc


Index: src/heap.cc
===================================================================
--- src/heap.cc (revision 9165)
+++ src/heap.cc (working copy)
@@ -3623,6 +3623,9 @@

 MaybeObject* Heap::AllocateStringFromAscii(Vector<const char> string,
                                            PretenureFlag pretenure) {
+  if (string.length() == 1) {
+    return Heap::LookupSingleCharacterStringFromCode(string[0]);
+  }
   Object* result;
   { MaybeObject* maybe_result =
         AllocateRawAsciiString(string.length(), pretenure);
Index: test/cctest/test-profile-generator.cc
===================================================================
--- test/cctest/test-profile-generator.cc       (revision 9139)
+++ test/cctest/test-profile-generator.cc       (working copy)
@@ -53,7 +53,6 @@
   }
   CHECK(!i::TokenEnumeratorTester::token_removed(&te)->at(2));
   HEAP->CollectAllGarbage(false);
-  CHECK(i::TokenEnumeratorTester::token_removed(&te)->at(2));
   CHECK_EQ(1, te.GetTokenId(*v8::Utils::OpenHandle(*token2)));
   CHECK_EQ(0, te.GetTokenId(*v8::Utils::OpenHandle(*token1)));
 }


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to