diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-07-04 15:34:18 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-07-04 15:34:18 +0200 |
commit | 95be58fdcf23bb20dbde16dcb64f080256a4586d (patch) | |
tree | 73380edfce494ccbbf1d5d432e0bffd2e0c82a39 /Source/JavaScriptCore/runtime/PropertyNameArray.h | |
parent | a077ffff22ac678254ba35ad0a7cddc4a4f06542 (diff) | |
parent | b346c0f76c6a8f94accd1568c2f0d2c36c1cc11f (diff) | |
download | qtwebkit-95be58fdcf23bb20dbde16dcb64f080256a4586d.tar.gz |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ibe6e706a4f315065b8cfa96d796c1f04063c58df
Diffstat (limited to 'Source/JavaScriptCore/runtime/PropertyNameArray.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/PropertyNameArray.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/runtime/PropertyNameArray.h b/Source/JavaScriptCore/runtime/PropertyNameArray.h index 89b1af00b..1cdac0049 100644 --- a/Source/JavaScriptCore/runtime/PropertyNameArray.h +++ b/Source/JavaScriptCore/runtime/PropertyNameArray.h @@ -55,12 +55,16 @@ namespace JSC { PropertyNameArray(JSGlobalData* globalData) : m_data(PropertyNameArrayData::create()) , m_globalData(globalData) + , m_numCacheableSlots(0) + , m_baseObject(0) { } PropertyNameArray(ExecState* exec) : m_data(PropertyNameArrayData::create()) , m_globalData(&exec->globalData()) + , m_numCacheableSlots(0) + , m_baseObject(0) { } @@ -83,12 +87,28 @@ namespace JSC { const_iterator begin() const { return m_data->propertyNameVector().begin(); } const_iterator end() const { return m_data->propertyNameVector().end(); } + size_t numCacheableSlots() const { return m_numCacheableSlots; } + void setNumCacheableSlotsForObject(JSObject* object, size_t numCacheableSlots) + { + if (object != m_baseObject) + return; + m_numCacheableSlots = numCacheableSlots; + } + void setBaseObject(JSObject* object) + { + if (m_baseObject) + return; + m_baseObject = object; + } + private: typedef HashSet<StringImpl*, PtrHash<StringImpl*> > IdentifierSet; RefPtr<PropertyNameArrayData> m_data; IdentifierSet m_set; JSGlobalData* m_globalData; + size_t m_numCacheableSlots; + JSObject* m_baseObject; }; } // namespace JSC |