Remove JSObject::m_inheritorID
https://bugs.webkit.org/show_bug.cgi?id=88378

Reviewed by Geoff Garen.

This is rarely used, and not performance critical (the commonly accessed copy is cached on JSFunction),
and most objects don't need an inheritorID (this value is only used if the object is used as a prototype).
Instead use a private named value in the object's property storage.

* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::emitAllocateBasicJSObject):
    - No need m_inheritorID to initialize!
* jit/JITInlineMethods.h:
(JSC::JIT::emitAllocateBasicJSObject):
    - No need m_inheritorID to initialize!
* llint/LowLevelInterpreter.asm:
    - No need m_inheritorID to initialize!
* runtime/JSGlobalData.h:
(JSGlobalData):
    - Added private name 'm_inheritorIDKey'.
* runtime/JSGlobalThis.cpp:
(JSC::JSGlobalThis::setUnwrappedObject):
    - resetInheritorID is now passed a JSGlobalData&.
* runtime/JSObject.cpp:
(JSC::JSObject::visitChildren):
    - No m_inheritorID to be marked.
(JSC::JSObject::createInheritorID):
    - Store the newly created inheritorID in the property map.
* runtime/JSObject.h:
(JSC::JSObject::resetInheritorID):
    - Remove the inheritorID from property storage.
(JSC::JSObject::inheritorID):
    - Read the inheritorID from property storage.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@119556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index e4f7d74..44ed7b1 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,39 @@
+2012-06-05  Gavin Barraclough  <barraclough@apple.com>
+
+        Remove JSObject::m_inheritorID
+        https://bugs.webkit.org/show_bug.cgi?id=88378
+
+        Reviewed by Geoff Garen.
+
+        This is rarely used, and not performance critical (the commonly accessed copy is cached on JSFunction),
+        and most objects don't need an inheritorID (this value is only used if the object is used as a prototype).
+        Instead use a private named value in the object's property storage.
+
+        * dfg/DFGSpeculativeJIT.h:
+        (JSC::DFG::SpeculativeJIT::emitAllocateBasicJSObject):
+            - No need m_inheritorID to initialize!
+        * jit/JITInlineMethods.h:
+        (JSC::JIT::emitAllocateBasicJSObject):
+            - No need m_inheritorID to initialize!
+        * llint/LowLevelInterpreter.asm:
+            - No need m_inheritorID to initialize!
+        * runtime/JSGlobalData.h:
+        (JSGlobalData):
+            - Added private name 'm_inheritorIDKey'.
+        * runtime/JSGlobalThis.cpp:
+        (JSC::JSGlobalThis::setUnwrappedObject):
+            - resetInheritorID is now passed a JSGlobalData&.
+        * runtime/JSObject.cpp:
+        (JSC::JSObject::visitChildren):
+            - No m_inheritorID to be marked.
+        (JSC::JSObject::createInheritorID):
+            - Store the newly created inheritorID in the property map.
+        * runtime/JSObject.h:
+        (JSC::JSObject::resetInheritorID):
+            - Remove the inheritorID from property storage.
+        (JSC::JSObject::inheritorID):
+            - Read the inheritorID from property storage.
+
 2012-06-05  Filip Pizlo  <fpizlo@apple.com>
 
         DFG CFG simplification should not attempt to deref nodes inside of an unreachable subgraph