aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4internalclass_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2015-01-09 23:36:57 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2015-01-12 11:04:36 +0100
commitb29a1aee35bc6e79beb028c92e5aab9bee0c18b3 (patch)
treefff5e8400fa797108f1835128c775bdab934bdb3 /src/qml/jsruntime/qv4internalclass_p.h
parent431458b685fa9f7355f50d21a09ee9f93bcb42d5 (diff)
Move extensible into the internal class
With this, we can now save one pointer per Heap object. Change-Id: I7f69193ff51c9fd9c5dbfba90aa1ebb3f93da2e6 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4internalclass_p.h')
-rw-r--r--src/qml/jsruntime/qv4internalclass_p.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4internalclass_p.h b/src/qml/jsruntime/qv4internalclass_p.h
index 5973ca2c7c..b92bee3fac 100644
--- a/src/qml/jsruntime/qv4internalclass_p.h
+++ b/src/qml/jsruntime/qv4internalclass_p.h
@@ -197,7 +197,8 @@ struct InternalClassTransition
int flags;
enum {
// range 0-0xff is reserved for attribute changes
- VTableChange = 0x100
+ VTableChange = 0x100,
+ NotExtensible = 0x200
};
bool operator==(const InternalClassTransition &other) const
@@ -223,9 +224,11 @@ struct InternalClass : public QQmlJS::Managed {
InternalClass *m_frozen;
uint size;
+ bool extensible;
static InternalClass *create(ExecutionEngine *engine, const ManagedVTable *vtable);
InternalClass *changeVTable(const ManagedVTable *vt);
+ InternalClass *nonExtensible();
static void addMember(Object *object, String *string, PropertyAttributes data, uint *index);
InternalClass *addMember(String *string, PropertyAttributes data, uint *index = 0);
InternalClass *addMember(Identifier *identifier, PropertyAttributes data, uint *index = 0);