summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h
diff options
context:
space:
mode:
authorFrans Englich <frans.englich@nokia.com>2009-09-24 16:58:05 (GMT)
committerFrans Englich <frans.englich@nokia.com>2009-09-24 16:58:05 (GMT)
commit90996b73d4f2983d6f721c205b5a0957d3a55aff (patch)
tree1ab4215df101422590c7af368cdd22d4f1dc3786 /src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h
parent9345d47c3945b61a27724508e8b3d0aaf7b57bcf (diff)
parentaabd12223bda6260756ab19430082477d5669c0a (diff)
downloadQt-90996b73d4f2983d6f721c205b5a0957d3a55aff.zip
Qt-90996b73d4f2983d6f721c205b5a0957d3a55aff.tar.gz
Qt-90996b73d4f2983d6f721c205b5a0957d3a55aff.tar.bz2
Merge commit 'qt/4.6' into mmfphonon
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h b/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h
index f7cb04b..ed9f6e5 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h
@@ -70,7 +70,8 @@ namespace JSC {
static PassRefPtr<Structure> despecifyFunctionTransition(Structure*, const Identifier&);
static PassRefPtr<Structure> addAnonymousSlotsTransition(Structure*, unsigned count);
static PassRefPtr<Structure> getterSetterTransition(Structure*);
- static PassRefPtr<Structure> toDictionaryTransition(Structure*);
+ static PassRefPtr<Structure> toCacheableDictionaryTransition(Structure*);
+ static PassRefPtr<Structure> toUncacheableDictionaryTransition(Structure*);
static PassRefPtr<Structure> fromDictionaryTransition(Structure*);
~Structure();
@@ -81,8 +82,9 @@ namespace JSC {
size_t addPropertyWithoutTransition(const Identifier& propertyName, unsigned attributes, JSCell* specificValue);
size_t removePropertyWithoutTransition(const Identifier& propertyName);
void setPrototypeWithoutTransition(JSValue prototype) { m_prototype = prototype; }
-
- bool isDictionary() const { return m_isDictionary; }
+
+ bool isDictionary() const { return m_dictionaryKind != NoneDictionaryKind; }
+ bool isUncacheableDictionary() const { return m_dictionaryKind == UncachedDictionaryKind; }
const TypeInfo& typeInfo() const { return m_typeInfo; }
@@ -127,6 +129,13 @@ namespace JSC {
private:
Structure(JSValue prototype, const TypeInfo&);
+
+ typedef enum {
+ NoneDictionaryKind = 0,
+ CachedDictionaryKind = 1,
+ UncachedDictionaryKind = 2
+ } DictionaryKind;
+ static PassRefPtr<Structure> toDictionaryTransition(Structure*, DictionaryKind);
size_t put(const Identifier& propertyName, unsigned attributes, JSCell* specificValue);
size_t remove(const Identifier& propertyName);
@@ -187,7 +196,7 @@ namespace JSC {
size_t m_propertyStorageCapacity;
signed char m_offset;
- bool m_isDictionary : 1;
+ unsigned m_dictionaryKind : 2;
bool m_isPinnedPropertyTable : 1;
bool m_hasGetterSetterProperties : 1;
#if COMPILER(WINSCW)