| Index: src/objects-inl.h | 
| diff --git a/src/objects-inl.h b/src/objects-inl.h | 
| index 733969381508cfaf87726c190a9af5b3fa870d35..3608da1c3d992c8366b4cda2a56bbeb6d72ab7c6 100644 | 
| --- a/src/objects-inl.h | 
| +++ b/src/objects-inl.h | 
| @@ -964,6 +964,14 @@ class SeqOneByteSubStringKey : public HashTableKey { | 
| DCHECK(string_->IsSeqOneByteString()); | 
| } | 
|  | 
| +// VS 2017 on official builds gives this spurious warning: | 
| +// warning C4789: buffer 'key' of size 16 bytes will be overrun; 4 bytes will | 
| +// be written starting at offset 16 | 
| +// https://bugs.chromium.org/p/v8/issues/detail?id=6068 | 
| +#if defined(V8_CC_MSVC) | 
| +#pragma warning(push) | 
| +#pragma warning(disable : 4789) | 
| +#endif | 
| uint32_t Hash() override { | 
| DCHECK(length_ >= 0); | 
| DCHECK(from_ + length_ <= string_->length()); | 
| @@ -974,6 +982,9 @@ class SeqOneByteSubStringKey : public HashTableKey { | 
| DCHECK(result != 0);  // Ensure that the hash value of 0 is never computed. | 
| return result; | 
| } | 
| +#if defined(V8_CC_MSVC) | 
| +#pragma warning(pop) | 
| +#endif | 
|  | 
| uint32_t HashForObject(Object* other) override { | 
| return String::cast(other)->Hash(); | 
|  |