60struct Q_QML_EXPORT RegExpObject: Object {
77 Index_ArrayIndex = Heap::ArrayObject::LengthPropertyIndex + 1,
78 Index_ArrayInput = Index_ArrayIndex + 1
81 enum { NInlineProperties = 5 };
84 void initProperties();
86 int lastIndex()
const {
87 Q_ASSERT(internalClass()->verifyIndex(engine()->id_lastIndex()->propertyKey(), Index_LastIndex));
88 return propertyData(Index_LastIndex)->toInt32();
90 void setLastIndex(
int index) {
91 Q_ASSERT(internalClass()->verifyIndex(engine()->id_lastIndex()->propertyKey(), Index_LastIndex));
92 if (!internalClass()->propertyData[Index_LastIndex].isWritable()) {
93 engine()->throwTypeError();
96 return setProperty(Index_LastIndex, Value::fromInt32(index));
99#if QT_CONFIG(regularexpression)
102 QString toString()
const;
103 QString source()
const
105 Scope scope(engine());
106 ScopedValue s(scope, get(scope.engine->id_source()));
107 return s->toQString();
113 template<
typename RegExp = Heap::RegExp>
114 RegExp *value()
const {
return d()->value; }
115 template<
typename RegExp = Heap::RegExp>
116 uint flags()
const {
return value<RegExp>()->flags; }
117 template<
typename RegExp = Heap::RegExp>
118 bool global()
const {
return value<RegExp>()->global(); }
119 template<
typename RegExp = Heap::RegExp>
120 bool sticky()
const {
return value<RegExp>()->sticky(); }
121 template<
typename RegExp = Heap::RegExp>
122 bool unicode()
const {
return value<RegExp>()->unicode(); }
124 ReturnedValue builtinExec(ExecutionEngine *engine,
const String *s);
127struct RegExpCtor: FunctionObject
129 V4_OBJECT2(RegExpCtor, FunctionObject)
131 Value lastMatch() {
return d()->lastMatch; }
132 Heap::String *lastInput() {
return d()->lastInput; }
133 int lastMatchStart() {
return d()->lastMatchStart; }
134 int lastMatchEnd() {
return d()->lastMatchEnd; }
136 static ReturnedValue virtualCallAsConstructor(
const FunctionObject *f,
const Value *argv,
int argc,
const Value *);
137 static ReturnedValue virtualCall(
const FunctionObject *f,
const Value *thisObject,
const Value *argv,
int argc);
140struct RegExpPrototype: Object
142 void init(ExecutionEngine *engine, Object *ctor);
144 static ReturnedValue method_exec(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
145 static ReturnedValue method_get_flags(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
146 static ReturnedValue method_get_global(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
147 static ReturnedValue method_get_ignoreCase(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
148 static ReturnedValue method_match(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
149 static ReturnedValue method_get_multiline(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
150 static ReturnedValue method_replace(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
151 static ReturnedValue method_search(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
152 static ReturnedValue method_get_source(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
153 static ReturnedValue method_split(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
154 static ReturnedValue method_get_sticky(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
155 static ReturnedValue method_test(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
156 static ReturnedValue method_toString(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
157 static ReturnedValue method_get_unicode(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
160 static ReturnedValue method_compile(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
163 template <uint index>
164 static ReturnedValue method_get_lastMatch_n(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
165 static ReturnedValue method_get_lastParen(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
166 static ReturnedValue method_get_input(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
167 static ReturnedValue method_get_leftContext(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
168 static ReturnedValue method_get_rightContext(
const FunctionObject *,
const Value *thisObject,
const Value *argv,
int argc);
170 static ReturnedValue execFirstMatch(
const FunctionObject *b,
const Value *thisObject,
const Value *argv,
int argc);
172 static ReturnedValue exec(ExecutionEngine *engine,
const Object *o,
const String *s);