Revision: 9175
Author: [email protected]
Date: Wed Sep 7 06:13:56 2011
Log: Make one-character strings into symbols more agressively.
Review URL: http://codereview.chromium.org/7840029
http://code.google.com/p/v8/source/detail?r=9175
Modified:
/branches/bleeding_edge/src/heap.cc
/branches/bleeding_edge/test/cctest/test-profile-generator.cc
=======================================
--- /branches/bleeding_edge/src/heap.cc Wed Sep 7 04:49:12 2011
+++ /branches/bleeding_edge/src/heap.cc Wed Sep 7 06:13:56 2011
@@ -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);
=======================================
--- /branches/bleeding_edge/test/cctest/test-profile-generator.cc Fri Aug
12 02:49:55 2011
+++ /branches/bleeding_edge/test/cctest/test-profile-generator.cc Wed Sep
7 06:13:56 2011
@@ -37,16 +37,16 @@
TokenEnumerator te;
CHECK_EQ(TokenEnumerator::kNoSecurityToken, te.GetTokenId(NULL));
v8::HandleScope hs;
- v8::Local<v8::String> token1(v8::String::New("1"));
+ v8::Local<v8::String> token1(v8::String::New("1x"));
CHECK_EQ(0, te.GetTokenId(*v8::Utils::OpenHandle(*token1)));
CHECK_EQ(0, te.GetTokenId(*v8::Utils::OpenHandle(*token1)));
- v8::Local<v8::String> token2(v8::String::New("2"));
+ v8::Local<v8::String> token2(v8::String::New("2x"));
CHECK_EQ(1, te.GetTokenId(*v8::Utils::OpenHandle(*token2)));
CHECK_EQ(1, te.GetTokenId(*v8::Utils::OpenHandle(*token2)));
CHECK_EQ(0, te.GetTokenId(*v8::Utils::OpenHandle(*token1)));
{
v8::HandleScope hs;
- v8::Local<v8::String> token3(v8::String::New("3"));
+ v8::Local<v8::String> token3(v8::String::New("3x"));
CHECK_EQ(2, te.GetTokenId(*v8::Utils::OpenHandle(*token3)));
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