| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 9dbe849b0c726b99ff53efcdd189b2f0b62b37ce..1d2cd69cd95747b73ceaadf426fb8e7a6c4678e9 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -415,7 +415,10 @@ PropertyAttributes JSObject::GetPropertyAttributeWithFailedAccessCheck(
|
| break;
|
| }
|
|
|
| - default:
|
| + case HANDLER:
|
| + case MAP_TRANSITION:
|
| + case CONSTANT_TRANSITION:
|
| + case NONEXISTENT:
|
| UNREACHABLE();
|
| }
|
| }
|
| @@ -2417,10 +2420,11 @@ void JSObject::LocalLookupRealNamedProperty(String* name,
|
| // We return all of these result types because
|
| // LocalLookupRealNamedProperty is used when setting properties
|
| // where map transitions and null descriptors are handled.
|
| - ASSERT(result->holder() == this && result->type() != NORMAL);
|
| + ASSERT(result->holder() == this && result->IsFastPropertyType());
|
| // Disallow caching for uninitialized constants. These can only
|
| // occur as fields.
|
| - if (result->IsReadOnly() && result->type() == FIELD &&
|
| + if (result->IsField() &&
|
| + result->IsReadOnly() &&
|
| FastPropertyAt(result->GetFieldIndex())->IsTheHole()) {
|
| result->DisallowCaching();
|
| }
|
| @@ -2537,7 +2541,7 @@ MaybeObject* JSReceiver::SetProperty(LookupResult* result,
|
| PropertyAttributes attributes,
|
| StrictModeFlag strict_mode,
|
| JSReceiver::StoreFromKeyed store_mode) {
|
| - if (result->IsFound() && result->type() == HANDLER) {
|
| + if (result->IsHandler()) {
|
| return result->proxy()->SetPropertyWithHandler(
|
| this, key, value, attributes, strict_mode);
|
| } else {
|
| @@ -3908,7 +3912,7 @@ MaybeObject* JSObject::DeleteProperty(String* name, DeleteMode mode) {
|
| return isolate->heap()->false_value();
|
| }
|
| // Check for interceptor.
|
| - if (result.type() == INTERCEPTOR) {
|
| + if (result.IsInterceptor()) {
|
| // Skip interceptor if forcing a deletion.
|
| if (mode == FORCE_DELETION) {
|
| return DeletePropertyPostInterceptor(name, mode);
|
| @@ -4267,7 +4271,7 @@ void JSObject::LookupCallback(String* name, LookupResult* result) {
|
| current != heap->null_value() && current->IsJSObject();
|
| current = JSObject::cast(current)->GetPrototype()) {
|
| JSObject::cast(current)->LocalLookupRealNamedProperty(name, result);
|
| - if (result->IsFound() && result->type() == CALLBACKS) return;
|
| + if (result->IsCallbacks()) return;
|
| }
|
| result->NotFound();
|
| }
|
| @@ -4370,7 +4374,7 @@ MaybeObject* JSObject::DefineElementAccessor(uint32_t index,
|
| MaybeObject* JSObject::CreateAccessorPairFor(String* name) {
|
| LookupResult result(GetHeap()->isolate());
|
| LocalLookupRealNamedProperty(name, &result);
|
| - if (result.IsProperty() && result.type() == CALLBACKS) {
|
| + if (result.IsProperty() && result.IsCallbacks()) {
|
| // Note that the result can actually have IsDontDelete() == true when we
|
| // e.g. have to fall back to the slow case while adding a setter after
|
| // successfully reusing a map transition for a getter. Nevertheless, this is
|
| @@ -4840,7 +4844,7 @@ Object* JSObject::LookupAccessor(String* name, AccessorComponent component) {
|
| JSObject::cast(obj)->LocalLookup(name, &result);
|
| if (result.IsProperty()) {
|
| if (result.IsReadOnly()) return heap->undefined_value();
|
| - if (result.type() == CALLBACKS) {
|
| + if (result.IsCallbacks()) {
|
| Object* obj = result.GetCallbackObject();
|
| if (obj->IsAccessorPair()) {
|
| return AccessorPair::cast(obj)->GetComponent(component);
|
| @@ -7788,9 +7792,7 @@ bool SharedFunctionInfo::CanGenerateInlineConstructor(Object* prototype) {
|
| LookupResult result(heap->isolate());
|
| String* name = GetThisPropertyAssignmentName(i);
|
| js_object->LocalLookupRealNamedProperty(name, &result);
|
| - if (result.IsFound() && result.type() == CALLBACKS) {
|
| - return false;
|
| - }
|
| + if (result.IsCallbacks()) return false;
|
| }
|
| }
|
|
|
| @@ -10385,7 +10387,7 @@ bool JSObject::HasRealNamedProperty(String* key) {
|
|
|
| LookupResult result(isolate);
|
| LocalLookupRealNamedProperty(key, &result);
|
| - return result.IsProperty() && (result.type() != INTERCEPTOR);
|
| + return result.IsProperty() && !result.IsInterceptor();
|
| }
|
|
|
|
|
| @@ -10465,7 +10467,7 @@ bool JSObject::HasRealNamedCallbackProperty(String* key) {
|
|
|
| LookupResult result(isolate);
|
| LocalLookupRealNamedProperty(key, &result);
|
| - return result.IsFound() && (result.type() == CALLBACKS);
|
| + return result.IsCallbacks();
|
| }
|
|
|
|
|
|
|