diff --git a/js/src/vm/Interpreter-inl.h b/js/src/vm/Interpreter-inl.h index cbf3113b50..b9266514e3 100644 --- a/js/src/vm/Interpreter-inl.h +++ b/js/src/vm/Interpreter-inl.h @@ -188,21 +188,19 @@ FetchName(JSContext* cx, HandleObject obj, HandleObject obj2, HandlePropertyName } /* Take the slow path if shape was not found in a native object. */ - if (!obj->isNative() || !obj2->isNative()) { + if (!obj->isNative() || !obj2->isNative() || + obj->is()) { Rooted id(cx, NameToId(name)); if (!GetProperty(cx, obj, obj, id, vp)) return false; } else { RootedShape shape(cx, prop.shape()); - RootedObject normalized(cx, obj); - if (normalized->is() && !shape->hasDefaultGetter()) - normalized = &normalized->as().object(); if (shape->isDataDescriptor() && shape->hasDefaultGetter()) { /* Fast path for Object instance properties. */ MOZ_ASSERT(shape->hasSlot()); vp.set(obj2->as().getSlot(shape->slot())); } else { - if (!NativeGetExistingProperty(cx, normalized, obj2.as(), shape, vp)) + if (!NativeGetExistingProperty(cx, obj, obj2.as(), shape, vp)) return false; } }