static void TestMatchingReceiver(CacheIRWriter& writer, JSObject* obj, Shape* shape, ObjOperandId objId) { if (obj->is<UnboxedPlainObject>()) { writer.guardGroup(objId, obj->group()); if (UnboxedExpandoObject* expando = obj->as<UnboxedPlainObject>().maybeExpando()) { ObjOperandId expandoId = writer.guardAndLoadUnboxedExpando(objId); writer.guardShape(expandoId, expando->lastProperty()); } else { writer.guardNoUnboxedExpando(objId); } } else if (obj->is<UnboxedArrayObject>() || obj->is<TypedObject>()) { writer.guardGroup(objId, obj->group()); } else { Shape* shape = obj->maybeShape(); MOZ_ASSERT(shape); writer.guardShape(objId, shape); } }