aboutsummaryrefslogtreecommitdiffstats
path: root/src/v4/qv4lookup.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/v4/qv4lookup.h')
-rw-r--r--src/v4/qv4lookup.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/v4/qv4lookup.h b/src/v4/qv4lookup.h
index c51940ac2d..c287c97124 100644
--- a/src/v4/qv4lookup.h
+++ b/src/v4/qv4lookup.h
@@ -55,7 +55,10 @@ namespace VM {
struct Lookup {
enum { Size = 4 };
- void (*lookupProperty)(Lookup *l, ExecutionContext *ctx, Value *result, const Value &object);
+ union {
+ void (*lookupProperty)(Lookup *l, ExecutionContext *ctx, Value *result, const Value &object);
+ void (*lookupGlobal)(Lookup *l, ExecutionContext *ctx, Value *result);
+ };
InternalClass *classList[Size];
int level;
uint index;
@@ -66,6 +69,11 @@ struct Lookup {
static void lookupProperty1(Lookup *l, ExecutionContext *ctx, Value *result, const Value &object);
static void lookupProperty2(Lookup *l, ExecutionContext *ctx, Value *result, const Value &object);
+ static void lookupGlobalGeneric(Lookup *l, ExecutionContext *ctx, Value *result);
+ static void lookupGlobal0(Lookup *l, ExecutionContext *ctx, Value *result);
+ static void lookupGlobal1(Lookup *l, ExecutionContext *ctx, Value *result);
+ static void lookupGlobal2(Lookup *l, ExecutionContext *ctx, Value *result);
+
Property *lookup(Object *obj, PropertyAttributes *attrs) {
int i = 0;
while (i < level && obj && obj->internalClass == classList[i]) {