Update V8 to r5425 as required by WebKit r67178
Change-Id: Ic338e7242d33e5a024bd5978f4a5a3a681af4ebd
diff --git a/src/objects.cc b/src/objects.cc
index 9b43d24..ef51851 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -2126,9 +2126,6 @@
// The cached map should match newly created normalized map bit-by-bit.
Object* fresh = fast->CopyNormalized(mode);
if (!fresh->IsFailure()) {
- // Copy the unused byte so that the assertion below works.
- Map::cast(fresh)->address()[Map::kUnusedOffset] =
- Map::cast(result)->address()[Map::kUnusedOffset];
ASSERT(memcmp(Map::cast(fresh)->address(),
Map::cast(result)->address(),
Map::kSize) == 0);
@@ -4991,17 +4988,20 @@
}
-uint32_t StringHasher::MakeCachedArrayIndex(uint32_t value, int length) {
- value <<= String::kHashShift;
+uint32_t StringHasher::MakeArrayIndexHash(uint32_t value, int length) {
// For array indexes mix the length into the hash as an array index could
// be zero.
ASSERT(length > 0);
ASSERT(length <= String::kMaxArrayIndexSize);
ASSERT(TenToThe(String::kMaxCachedArrayIndexLength) <
(1 << String::kArrayIndexValueBits));
- ASSERT(String::kMaxArrayIndexSize < (1 << String::kArrayIndexValueBits));
- value &= ~String::kIsNotArrayIndexMask;
+
+ value <<= String::kHashShift;
value |= length << String::kArrayIndexHashLengthShift;
+
+ ASSERT((value & String::kIsNotArrayIndexMask) == 0);
+ ASSERT((length > String::kMaxCachedArrayIndexLength) ||
+ (value & String::kContainsCachedArrayIndexMask) == 0);
return value;
}
@@ -5010,7 +5010,7 @@
ASSERT(is_valid());
if (length_ <= String::kMaxHashCalcLength) {
if (is_array_index()) {
- return MakeCachedArrayIndex(array_index(), length_);
+ return MakeArrayIndexHash(array_index(), length_);
}
return (GetHash() << String::kHashShift) | String::kIsNotArrayIndexMask;
} else {