Push revisions 1527, 1539, 1540, 1541, 1550, 1551 from bleeding_edge to trunk.
git-svn-id: http://v8.googlecode.com/svn/trunk@1555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/objects-inl.h b/src/objects-inl.h
index 9aee342..941b84c 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -2438,10 +2438,15 @@
uint32_t StringHasher::GetHash() {
+ // Get the calculated raw hash value and do some more bit ops to distribute
+ // the hash further. Ensure that we never return zero as the hash value.
uint32_t result = raw_running_hash_;
result += (result << 3);
result ^= (result >> 11);
result += (result << 15);
+ if (result == 0) {
+ result = 27;
+ }
return result;
}