diff options
Diffstat (limited to 'src/qml/jsruntime/qv4lookup_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4lookup_p.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4lookup_p.h b/src/qml/jsruntime/qv4lookup_p.h index 9966d36604..7f107bf8eb 100644 --- a/src/qml/jsruntime/qv4lookup_p.h +++ b/src/qml/jsruntime/qv4lookup_p.h @@ -55,11 +55,14 @@ namespace QV4 { struct Lookup { enum { Size = 4 }; union { + ReturnedValue (*indexedGetter)(Lookup *l, const ValueRef object, const ValueRef index); + void (*indexedSetter)(Lookup *l, const ValueRef object, const ValueRef index, const ValueRef v); ReturnedValue (*getter)(Lookup *l, const ValueRef object); ReturnedValue (*globalGetter)(Lookup *l, ExecutionContext *ctx); void (*setter)(Lookup *l, const ValueRef object, const ValueRef v); }; union { + ExecutionEngine *engine; InternalClass *classList[Size]; struct { void *dummy0; @@ -72,6 +75,14 @@ struct Lookup { uint index; String *name; + static ReturnedValue indexedGetterGeneric(Lookup *l, const ValueRef object, const ValueRef index); + static ReturnedValue indexedGetterFallback(Lookup *l, const ValueRef object, const ValueRef index); + static ReturnedValue indexedGetterObjectInt(Lookup *l, const ValueRef object, const ValueRef index); + + static void indexedSetterGeneric(Lookup *l, const ValueRef object, const ValueRef index, const ValueRef v); + static void indexedSetterFallback(Lookup *l, const ValueRef object, const ValueRef index, const ValueRef value); + static void indexedSetterObjectInt(Lookup *l, const ValueRef object, const ValueRef index, const ValueRef v); + static ReturnedValue getterGeneric(Lookup *l, const ValueRef object); static ReturnedValue getter0(Lookup *l, const ValueRef object); static ReturnedValue getter1(Lookup *l, const ValueRef object); @@ -85,6 +96,7 @@ struct Lookup { static ReturnedValue primitiveGetterAccessor0(Lookup *l, const ValueRef object); static ReturnedValue primitiveGetterAccessor1(Lookup *l, const ValueRef object); static ReturnedValue stringLengthGetter(Lookup *l, const ValueRef object); + static ReturnedValue arrayLengthGetter(Lookup *l, const ValueRef object); static ReturnedValue globalGetterGeneric(Lookup *l, ExecutionContext *ctx); static ReturnedValue globalGetter0(Lookup *l, ExecutionContext *ctx); @@ -100,7 +112,8 @@ struct Lookup { static void setterInsert1(Lookup *l, const ValueRef object, const ValueRef value); static void setterInsert2(Lookup *l, const ValueRef object, const ValueRef value); - Property *lookup(Object *obj, PropertyAttributes *attrs); + ReturnedValue lookup(ValueRef thisObject, Object *obj, PropertyAttributes *attrs); + ReturnedValue lookup(Object *obj, PropertyAttributes *attrs); }; |