diff options
Diffstat (limited to 'src/v4/qv4lookup.h')
-rw-r--r-- | src/v4/qv4lookup.h | 10 |
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]) { |