aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4lookup_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4lookup_p.h')
-rw-r--r--src/qml/jsruntime/qv4lookup_p.h15
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);
};