| Index: src/ic/x87/ic-compiler-x87.cc
|
| diff --git a/src/ic/x87/ic-compiler-x87.cc b/src/ic/x87/ic-compiler-x87.cc
|
| index f344cd1a27d5c237bd4dffe9fb0817277ace105d..89bd93748055aa4197c6baa96b353966cdf57c66 100644
|
| --- a/src/ic/x87/ic-compiler-x87.cc
|
| +++ b/src/ic/x87/ic-compiler-x87.cc
|
| @@ -44,10 +44,13 @@ Handle<Code> PropertyICCompiler::CompilePolymorphic(TypeHandleList* types,
|
| Label miss;
|
|
|
| if (check == PROPERTY &&
|
| - (kind() == Code::KEYED_LOAD_IC || kind() == Code::KEYED_STORE_IC)) {
|
| - // In case we are compiling an IC for dictionary loads and stores, just
|
| + (kind() == Code::KEYED_STORE_IC || kind() == Code::KEYED_LOAD_IC)) {
|
| + // In case we are compiling an IC for dictionary loads or stores, just
|
| // check whether the name is unique.
|
| if (name.is_identical_to(isolate()->factory()->normal_ic_symbol())) {
|
| + // Keyed loads with dictionaries shouldn't be here, they go generic.
|
| + // The DCHECK is to protect assumptions when --vector-ics is on.
|
| + DCHECK(kind() != Code::KEYED_LOAD_IC);
|
| Register tmp = scratch1();
|
| __ JumpIfSmi(this->name(), &miss);
|
| __ mov(tmp, FieldOperand(this->name(), HeapObject::kMapOffset));
|
|
|