diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/Structure.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/Structure.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Source/JavaScriptCore/runtime/Structure.h b/Source/JavaScriptCore/runtime/Structure.h index 46cf732e1..00bc76177 100644 --- a/Source/JavaScriptCore/runtime/Structure.h +++ b/Source/JavaScriptCore/runtime/Structure.h @@ -50,6 +50,7 @@ namespace JSC { class PropertyNameArrayData; class StructureChain; class SlotVisitor; + class JSString; class Structure : public JSCell { public: @@ -101,6 +102,8 @@ namespace JSC { bool isFrozen(JSGlobalData&); bool isExtensible() const { return !m_preventExtensions; } bool didTransition() const { return m_didTransition; } + bool shouldGrowPropertyStorage() { return propertyStorageCapacity() == propertyStorageSize(); } + JS_EXPORT_PRIVATE size_t suggestedNewPropertyStorageSize(); Structure* flattenDictionaryStructure(JSGlobalData&, JSObject*); @@ -169,6 +172,13 @@ namespace JSC { JSPropertyNameIterator* enumerationCache(); // Defined in JSPropertyNameIterator.h. void getPropertyNamesFromStructure(JSGlobalData&, PropertyNameArray&, EnumerationMode); + JSString* objectToStringValue() { return m_objectToStringValue.get(); } + + void setObjectToStringValue(JSGlobalData& globalData, const JSCell* owner, JSString* value) + { + m_objectToStringValue.set(globalData, owner, value); + } + bool staticFunctionsReified() { return m_staticFunctionReified; @@ -289,6 +299,8 @@ namespace JSC { uint32_t m_propertyStorageCapacity; + WriteBarrier<JSString> m_objectToStringValue; + // m_offset does not account for anonymous slots int m_offset; @@ -406,7 +418,7 @@ namespace JSC { { #if ENABLE(GC_VALIDATION) ASSERT(globalData.isInitializingObject()); - globalData.setInitializingObject(false); + globalData.setInitializingObjectClass(0); if (structure) #endif m_structure.setEarlyValue(globalData, this, structure); |