summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/PropertyNameArray.h
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-07-04 15:34:18 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-07-04 15:34:18 +0200
commit95be58fdcf23bb20dbde16dcb64f080256a4586d (patch)
tree73380edfce494ccbbf1d5d432e0bffd2e0c82a39 /Source/JavaScriptCore/runtime/PropertyNameArray.h
parenta077ffff22ac678254ba35ad0a7cddc4a4f06542 (diff)
parentb346c0f76c6a8f94accd1568c2f0d2c36c1cc11f (diff)
downloadqtwebkit-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.h20
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