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
