| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index d980d327aa89640d2b44cbef8e08b58be0eb3257..82520da5aca78394d758e00cb9a859475a32acd9 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -4805,11 +4805,8 @@ RUNTIME_FUNCTION(Runtime_KeyedGetProperty) {
|
| int index = keyed_lookup_cache->Lookup(receiver_map, key);
|
| if (index != -1) {
|
| // Doubles are not cached, so raw read the value.
|
| - Object* value = receiver->RawFastPropertyAt(
|
| + return receiver->RawFastPropertyAt(
|
| FieldIndex::ForKeyedLookupCacheIndex(*receiver_map, index));
|
| - return value->IsTheHole()
|
| - ? isolate->heap()->undefined_value()
|
| - : value;
|
| }
|
| // Lookup cache miss. Perform lookup and update the cache if
|
| // appropriate.
|
| @@ -4837,7 +4834,7 @@ RUNTIME_FUNCTION(Runtime_KeyedGetProperty) {
|
| if (!receiver->IsGlobalObject()) return value;
|
| value = PropertyCell::cast(value)->value();
|
| if (!value->IsTheHole()) return value;
|
| - // If value is the hole do the general lookup.
|
| + // If value is the hole (meaning, absent) do the general lookup.
|
| }
|
| }
|
| } else if (FLAG_smi_only_arrays && key_obj->IsSmi()) {
|
| @@ -10641,14 +10638,12 @@ static Handle<Object> DebugLookupResultValue(Isolate* isolate,
|
| if (!result->IsFound()) return value;
|
| switch (result->type()) {
|
| case NORMAL:
|
| - value = JSObject::GetNormalizedProperty(
|
| - handle(result->holder(), isolate), result);
|
| - break;
|
| + return JSObject::GetNormalizedProperty(handle(result->holder(), isolate),
|
| + result);
|
| case FIELD:
|
| - value = JSObject::FastPropertyAt(handle(result->holder(), isolate),
|
| - result->representation(),
|
| - result->GetFieldIndex());
|
| - break;
|
| + return JSObject::FastPropertyAt(handle(result->holder(), isolate),
|
| + result->representation(),
|
| + result->GetFieldIndex());
|
| case CONSTANT:
|
| return handle(result->GetConstant(), isolate);
|
| case CALLBACKS: {
|
| @@ -10673,9 +10668,7 @@ static Handle<Object> DebugLookupResultValue(Isolate* isolate,
|
| UNREACHABLE();
|
| break;
|
| }
|
| - ASSERT(!value->IsTheHole() || result->IsReadOnly());
|
| - return value->IsTheHole()
|
| - ? Handle<Object>::cast(isolate->factory()->undefined_value()) : value;
|
| + return value;
|
| }
|
|
|
|
|
|
|