JSString* leftContext(ExecState*);
JSString* rightContext(ExecState*);
- static const ClassInfo s_info;
+ DECLARE_INFO;
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
- return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info, ArrayWithArrayStorage);
+ return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info(), ArrayWithSlowPutArrayStorage);
}
static void visitChildren(JSCell*, SlotVisitor&);
reifyMatchProperty(exec);
}
- static bool getOwnPropertySlot(JSCell* cell, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
+ static bool getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
{
- RegExpMatchesArray* thisObject = jsCast<RegExpMatchesArray*>(cell);
+ RegExpMatchesArray* thisObject = jsCast<RegExpMatchesArray*>(object);
thisObject->reifyAllPropertiesIfNecessary(exec);
return JSArray::getOwnPropertySlot(thisObject, exec, propertyName, slot);
}
- static bool getOwnPropertySlotByIndex(JSCell* cell, ExecState* exec, unsigned propertyName, PropertySlot& slot)
+ static bool getOwnPropertySlotByIndex(JSObject* object, ExecState* exec, unsigned propertyName, PropertySlot& slot)
{
- RegExpMatchesArray* thisObject = jsCast<RegExpMatchesArray*>(cell);
+ RegExpMatchesArray* thisObject = jsCast<RegExpMatchesArray*>(object);
if (propertyName)
thisObject->reifyAllPropertiesIfNecessary(exec);
else
return JSArray::getOwnPropertySlotByIndex(thisObject, exec, propertyName, slot);
}
- static bool getOwnPropertyDescriptor(JSObject* object, ExecState* exec, PropertyName propertyName, PropertyDescriptor& descriptor)
- {
- RegExpMatchesArray* thisObject = jsCast<RegExpMatchesArray*>(object);
- thisObject->reifyAllPropertiesIfNecessary(exec);
- return JSArray::getOwnPropertyDescriptor(thisObject, exec, propertyName, descriptor);
- }
-
static void put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue v, PutPropertySlot& slot)
{
RegExpMatchesArray* thisObject = jsCast<RegExpMatchesArray*>(cell);
JSArray::getOwnPropertyNames(thisObject, exec, arr, mode);
}
- static bool defineOwnProperty(JSObject* object, ExecState* exec, PropertyName propertyName, PropertyDescriptor& descriptor, bool shouldThrow)
+ static bool defineOwnProperty(JSObject* object, ExecState* exec, PropertyName propertyName, const PropertyDescriptor& descriptor, bool shouldThrow)
{
RegExpMatchesArray* thisObject = jsCast<RegExpMatchesArray*>(object);
thisObject->reifyAllPropertiesIfNecessary(exec);
ReifiedState m_state;
};
+inline bool isRegExpMatchesArray(JSValue value)
+{
+ return value.isCell() && value.asCell()->classInfo() == RegExpMatchesArray::info();
+}
+
}
#endif // RegExpMatchesArray_h