aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4lookup_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2017-11-14 09:54:00 +0100
committerLars Knoll <lars.knoll@qt.io>2017-11-27 11:10:04 +0000
commite6d17c8691bfafa033b82a4d81a9caf4a2fd1b85 (patch)
tree68a8774562cf291eb4350facfd7feece4dd77443 /src/qml/jsruntime/qv4lookup_p.h
parentfca89004d75412dd378cc44ad79ed3c1e05c765b (diff)
Convert setters to use the id in InternalClass
Change-Id: I7f3acf96e998a41d60d33f98b243089b9ee40ff0 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4lookup_p.h')
-rw-r--r--src/qml/jsruntime/qv4lookup_p.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4lookup_p.h b/src/qml/jsruntime/qv4lookup_p.h
index 450d2d4364..5c58d2f669 100644
--- a/src/qml/jsruntime/qv4lookup_p.h
+++ b/src/qml/jsruntime/qv4lookup_p.h
@@ -99,6 +99,11 @@ struct Lookup {
unsigned type;
Heap::Object *proto;
} primitiveLookup;
+ struct {
+ InternalClass *newClass;
+ int icIdentifier;
+ int offset;
+ } insertionLookup;
InternalClass *classList[Size];
};
@@ -137,15 +142,15 @@ struct Lookup {
static ReturnedValue globalGetterProto(Lookup *l, ExecutionEngine *engine);
static ReturnedValue globalGetterProtoAccessor(Lookup *l, ExecutionEngine *engine);
+ bool resolveSetter(ExecutionEngine *engine, Object *object, const Value &value);
static bool setterGeneric(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
static bool setterTwoClasses(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
static bool setterFallback(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
static bool setter0(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
static bool setter0Inline(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
- static bool setterInsert0(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
- static bool setterInsert1(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
- static bool setterInsert2(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
static bool setter0setter0(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
+ static bool setterInsert(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
+ static bool arrayLengthSetter(Lookup *l, ExecutionEngine *engine, Value &object, const Value &value);
ReturnedValue lookup(const Value &thisObject, Object *obj, PropertyAttributes *attrs);
ReturnedValue lookup(const Object *obj, PropertyAttributes *attrs);