Title: [92046] trunk/Source/_javascript_Core
Revision
92046
Author
[email protected]
Date
2011-07-29 19:49:45 -0700 (Fri, 29 Jul 2011)

Log Message

JSC GC zombie support no longer works, and is likely no longer needed.
https://bugs.webkit.org/show_bug.cgi?id=65404

Reviewed by Darin Adler.

This removes zombies, because they no longer work, are not tested, are
probably not needed, and are getting in the way of GC optimization
work.

* _javascript_Core.xcodeproj/project.pbxproj:
* heap/Handle.h:
(JSC::HandleConverter::operator->):
(JSC::HandleConverter::operator*):
* heap/HandleHeap.cpp:
(JSC::HandleHeap::isValidWeakNode):
* heap/Heap.cpp:
(JSC::Heap::destroy):
(JSC::Heap::collect):
* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::sweep):
* heap/MarkedBlock.h:
(JSC::MarkedBlock::clearMarks):
* interpreter/Register.h:
(JSC::Register::Register):
(JSC::Register::operator=):
* runtime/ArgList.h:
(JSC::MarkedArgumentBuffer::append):
(JSC::ArgList::ArgList):
* runtime/JSCell.cpp:
(JSC::isZombie):
* runtime/JSCell.h:
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::clearBuiltinStructures):
* runtime/JSGlobalData.h:
* runtime/JSValue.h:
* runtime/JSValueInlineMethods.h:
(JSC::JSValue::JSValue):
* runtime/JSZombie.cpp: Removed.
* runtime/JSZombie.h: Removed.
* runtime/WriteBarrier.h:
(JSC::WriteBarrierBase::setEarlyValue):
(JSC::WriteBarrierBase::operator*):
(JSC::WriteBarrierBase::setWithoutWriteBarrier):
* wtf/Platform.h:

Modified Paths

Removed Paths

Diff

Modified: trunk/Source/_javascript_Core/CMakeLists.txt (92045 => 92046)


--- trunk/Source/_javascript_Core/CMakeLists.txt	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/CMakeLists.txt	2011-07-30 02:49:45 UTC (rev 92046)
@@ -133,7 +133,6 @@
     runtime/JSValue.cpp
     runtime/JSVariableObject.cpp
     runtime/JSWrapperObject.cpp
-    runtime/JSZombie.cpp
     runtime/LiteralParser.cpp
     runtime/Lookup.cpp
     runtime/MathObject.cpp

Modified: trunk/Source/_javascript_Core/ChangeLog (92045 => 92046)


--- trunk/Source/_javascript_Core/ChangeLog	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-07-30 02:49:45 UTC (rev 92046)
@@ -1,5 +1,53 @@
 2011-07-29  Filip Pizlo  <[email protected]>
 
+        JSC GC zombie support no longer works, and is likely no longer needed.
+        https://bugs.webkit.org/show_bug.cgi?id=65404
+
+        Reviewed by Darin Adler.
+        
+        This removes zombies, because they no longer work, are not tested, are
+        probably not needed, and are getting in the way of GC optimization
+        work.
+
+        * _javascript_Core.xcodeproj/project.pbxproj:
+        * heap/Handle.h:
+        (JSC::HandleConverter::operator->):
+        (JSC::HandleConverter::operator*):
+        * heap/HandleHeap.cpp:
+        (JSC::HandleHeap::isValidWeakNode):
+        * heap/Heap.cpp:
+        (JSC::Heap::destroy):
+        (JSC::Heap::collect):
+        * heap/MarkedBlock.cpp:
+        (JSC::MarkedBlock::sweep):
+        * heap/MarkedBlock.h:
+        (JSC::MarkedBlock::clearMarks):
+        * interpreter/Register.h:
+        (JSC::Register::Register):
+        (JSC::Register::operator=):
+        * runtime/ArgList.h:
+        (JSC::MarkedArgumentBuffer::append):
+        (JSC::ArgList::ArgList):
+        * runtime/JSCell.cpp:
+        (JSC::isZombie):
+        * runtime/JSCell.h:
+        * runtime/JSGlobalData.cpp:
+        (JSC::JSGlobalData::JSGlobalData):
+        (JSC::JSGlobalData::clearBuiltinStructures):
+        * runtime/JSGlobalData.h:
+        * runtime/JSValue.h:
+        * runtime/JSValueInlineMethods.h:
+        (JSC::JSValue::JSValue):
+        * runtime/JSZombie.cpp: Removed.
+        * runtime/JSZombie.h: Removed.
+        * runtime/WriteBarrier.h:
+        (JSC::WriteBarrierBase::setEarlyValue):
+        (JSC::WriteBarrierBase::operator*):
+        (JSC::WriteBarrierBase::setWithoutWriteBarrier):
+        * wtf/Platform.h:
+
+2011-07-29  Filip Pizlo  <[email protected]>
+
         DFG JIT verbose mode provides no details about predictions
         https://bugs.webkit.org/show_bug.cgi?id=65389
 

Modified: trunk/Source/_javascript_Core/_javascript_Core.pro (92045 => 92046)


--- trunk/Source/_javascript_Core/_javascript_Core.pro	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/_javascript_Core.pro	2011-07-30 02:49:45 UTC (rev 92046)
@@ -163,7 +163,6 @@
     runtime/JSValue.cpp \
     runtime/JSVariableObject.cpp \
     runtime/JSWrapperObject.cpp \
-    runtime/JSZombie.cpp \
     runtime/LiteralParser.cpp \
     runtime/Lookup.cpp \
     runtime/MathObject.cpp \

Modified: trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_Core.vcproj (92045 => 92046)


--- trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_Core.vcproj	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_Core.vcproj	2011-07-30 02:49:45 UTC (rev 92046)
@@ -922,14 +922,6 @@
 				>
 			</File>
 			<File
-				RelativePath="..\..\runtime\JSZombie.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\runtime\JSZombie.h"
-				>
-			</File>
-			<File
 				RelativePath="..\..\runtime\LiteralParser.cpp"
 				>
 			</File>

Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (92045 => 92046)


--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2011-07-30 02:49:45 UTC (rev 92046)
@@ -427,8 +427,6 @@
 		A7F993600FD7325100A0B2D0 /* JSONObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7F9935E0FD7325100A0B2D0 /* JSONObject.cpp */; };
 		A7FB60A4103F7DC20017A286 /* PropertyDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7FB60A3103F7DC20017A286 /* PropertyDescriptor.cpp */; };
 		A7FB61001040C38B0017A286 /* PropertyDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7FB604B103F5EAB0017A286 /* PropertyDescriptor.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		BC01D4F111A8F1FF00A54B2A /* JSZombie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC01D4EF11A8F1FF00A54B2A /* JSZombie.cpp */; };
-		BC01D4F211A8F1FF00A54B2A /* JSZombie.h in Headers */ = {isa = PBXBuildFile; fileRef = BC01D4F011A8F1FF00A54B2A /* JSZombie.h */; };
 		BC02E90D0E1839DB000F9297 /* ErrorConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = BC02E9050E1839DB000F9297 /* ErrorConstructor.h */; };
 		BC02E90F0E1839DB000F9297 /* ErrorPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = BC02E9070E1839DB000F9297 /* ErrorPrototype.h */; };
 		BC02E9110E1839DB000F9297 /* NativeErrorConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = BC02E9090E1839DB000F9297 /* NativeErrorConstructor.h */; };
@@ -1155,8 +1153,6 @@
 		A7FB60A3103F7DC20017A286 /* PropertyDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PropertyDescriptor.cpp; sourceTree = "<group>"; };
 		A8E894310CD0602400367179 /* JSCallbackObjectFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCallbackObjectFunctions.h; sourceTree = "<group>"; };
 		A8E894330CD0603F00367179 /* JSGlobalObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSGlobalObject.h; sourceTree = "<group>"; };
-		BC01D4EF11A8F1FF00A54B2A /* JSZombie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSZombie.cpp; sourceTree = "<group>"; };
-		BC01D4F011A8F1FF00A54B2A /* JSZombie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSZombie.h; sourceTree = "<group>"; };
 		BC021BF1136900C300FC5467 /* CompilerVersion.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = CompilerVersion.xcconfig; sourceTree = "<group>"; };
 		BC021BF2136900C300FC5467 /* TestAPI.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = TestAPI.xcconfig; sourceTree = "<group>"; };
 		BC02E9040E1839DB000F9297 /* ErrorConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ErrorConstructor.cpp; sourceTree = "<group>"; };
@@ -1938,8 +1934,6 @@
 				14F252560D08DD8D004ECFFF /* JSVariableObject.h */,
 				65C7A1710A8EAACB00FA37EA /* JSWrapperObject.cpp */,
 				65C7A1720A8EAACB00FA37EA /* JSWrapperObject.h */,
-				BC01D4EF11A8F1FF00A54B2A /* JSZombie.cpp */,
-				BC01D4F011A8F1FF00A54B2A /* JSZombie.h */,
 				A7E2EA6A0FB460CF00601F06 /* LiteralParser.cpp */,
 				A7E2EA690FB460CF00601F06 /* LiteralParser.h */,
 				F692A8680255597D01FF60F7 /* Lookup.cpp */,
@@ -2381,7 +2375,6 @@
 				A7482E93116A7CAD003B0712 /* JSWeakObjectMapRefInternal.h in Headers */,
 				A7482B9311671147003B0712 /* JSWeakObjectMapRefPrivate.h in Headers */,
 				BC18C42E0E16F5CD00B34460 /* JSWrapperObject.h in Headers */,
-				BC01D4F211A8F1FF00A54B2A /* JSZombie.h in Headers */,
 				BCFD8C930EEB2EE700283848 /* JumpTable.h in Headers */,
 				969A072A0ED1CE6900F1F681 /* Label.h in Headers */,
 				960097A60EBABB58007A7297 /* LabelScope.h in Headers */,
@@ -2941,7 +2934,6 @@
 				147F39D7107EC37600427A48 /* JSVariableObject.cpp in Sources */,
 				A7482B9411671147003B0712 /* JSWeakObjectMapRefPrivate.cpp in Sources */,
 				14280870107EC1340013E7B2 /* JSWrapperObject.cpp in Sources */,
-				BC01D4F111A8F1FF00A54B2A /* JSZombie.cpp in Sources */,
 				BCFD8C920EEB2EE700283848 /* JumpTable.cpp in Sources */,
 				148F21B0107EC5410042EC2C /* Lexer.cpp in Sources */,
 				A7E2EA6C0FB460CF00601F06 /* LiteralParser.cpp in Sources */,

Modified: trunk/Source/_javascript_Core/heap/Handle.h (92045 => 92046)


--- trunk/Source/_javascript_Core/heap/Handle.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/heap/Handle.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -80,31 +80,19 @@
 template <typename Base, typename T> struct HandleConverter {
     T* operator->()
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!static_cast<const Base*>(this)->get() || !static_cast<const Base*>(this)->get()->isZombie());
-#endif
         return static_cast<Base*>(this)->get();
     }
     const T* operator->() const
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!static_cast<const Base*>(this)->get() || !static_cast<const Base*>(this)->get()->isZombie());
-#endif
         return static_cast<const Base*>(this)->get();
     }
 
     T* operator*()
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!static_cast<const Base*>(this)->get() || !static_cast<const Base*>(this)->get()->isZombie());
-#endif
         return static_cast<Base*>(this)->get();
     }
     const T* operator*() const
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!static_cast<const Base*>(this)->get() || !static_cast<const Base*>(this)->get()->isZombie());
-#endif
         return static_cast<const Base*>(this)->get();
     }
 };
@@ -119,9 +107,6 @@
 private:
     JSValue jsValue() const
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!static_cast<const Base*>(this)->get() || !static_cast<const Base*>(this)->get().isZombie());
-#endif
         return static_cast<const Base*>(this)->get();
     }
 };

Modified: trunk/Source/_javascript_Core/heap/HandleHeap.cpp (92045 => 92046)


--- trunk/Source/_javascript_Core/heap/HandleHeap.cpp	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/heap/HandleHeap.cpp	2011-07-30 02:49:45 UTC (rev 92046)
@@ -163,11 +163,6 @@
     if (!cell || !cell->structure())
         return false;
 
-#if ENABLE(JSC_ZOMBIES)
-    if (cell->isZombie())
-        return false;
-#endif
-
     return true;
 }
 #endif

Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (92045 => 92046)


--- trunk/Source/_javascript_Core/heap/Heap.cpp	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp	2011-07-30 02:49:45 UTC (rev 92046)
@@ -277,10 +277,8 @@
     m_handleHeap.finalizeWeakHandles();
     m_globalData->smallStrings.finalizeSmallStrings();
 
-#if !ENABLE(JSC_ZOMBIES)
     shrink();
     ASSERT(!size());
-#endif
 
     m_globalData = 0;
 }
@@ -561,10 +559,6 @@
     
     resetAllocator();
 
-#if ENABLE(JSC_ZOMBIES)
-    sweepToggle = DoSweep;
-#endif
-
     if (sweepToggle == DoSweep) {
         sweep();
         shrink();

Modified: trunk/Source/_javascript_Core/heap/MarkedBlock.cpp (92045 => 92046)


--- trunk/Source/_javascript_Core/heap/MarkedBlock.cpp	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/heap/MarkedBlock.cpp	2011-07-30 02:49:45 UTC (rev 92046)
@@ -28,7 +28,6 @@
 
 #include "JSCell.h"
 #include "JSObject.h"
-#include "JSZombie.h"
 #include "ScopeChain.h"
 
 namespace JSC {
@@ -66,17 +65,8 @@
             continue;
 
         JSCell* cell = reinterpret_cast<JSCell*>(&atoms()[i]);
-#if ENABLE(JSC_ZOMBIES)
-        if (cell->structure() && cell->structure() != dummyMarkableCellStructure && !cell->isZombie()) {
-            const ClassInfo* info = cell->classInfo();
-            cell->~JSCell();
-            new (cell) JSZombie(*m_heap->globalData(), info, m_heap->globalData()->zombieStructure.get());
-            m_marks.set(i);
-        }
-#else
         cell->~JSCell();
         new (cell) JSCell(*m_heap->globalData(), dummyMarkableCellStructure);
-#endif
     }
 }
 
@@ -144,19 +134,4 @@
     }
 }
 
-#if ENABLE(JSC_ZOMBIES)
-void MarkedBlock::clearMarks()
-{
-    /* Keep our precious zombies! */
-    for (size_t i = firstAtom(); i < m_endAtom; i += m_atomsPerCell) {
-        if (m_marks.get(i))
-            continue;
-
-        JSCell* cell = reinterpret_cast<JSCell*>(&atoms()[i]);
-        if (!cell->isZombie())
-            m_marks.clear(i);
-    }
-}
-#endif
-
 } // namespace JSC

Modified: trunk/Source/_javascript_Core/heap/MarkedBlock.h (92045 => 92046)


--- trunk/Source/_javascript_Core/heap/MarkedBlock.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/heap/MarkedBlock.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -186,12 +186,10 @@
         return m_marks.isEmpty();
     }
 
-#if !ENABLE(JSC_ZOMBIES)
     inline void MarkedBlock::clearMarks()
     {
         m_marks.clearAll();
     }
-#endif
     
     inline size_t MarkedBlock::markCount()
     {

Modified: trunk/Source/_javascript_Core/interpreter/Register.h (92045 => 92046)


--- trunk/Source/_javascript_Core/interpreter/Register.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/interpreter/Register.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -96,17 +96,11 @@
 
     ALWAYS_INLINE Register::Register(const JSValue& v)
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!v.isZombie());
-#endif
         u.value = JSValue::encode(v);
     }
 
     ALWAYS_INLINE Register& Register::operator=(const JSValue& v)
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!v.isZombie());
-#endif
         u.value = JSValue::encode(v);
         return *this;
     }

Modified: trunk/Source/_javascript_Core/runtime/ArgList.h (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/ArgList.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/ArgList.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -107,10 +107,6 @@
         {
             ASSERT(!m_isReadOnly);
 
-#if ENABLE(JSC_ZOMBIES)
-            ASSERT(!v.isZombie());
-#endif
-
             if (m_isUsingInlineBuffer && m_size < inlineCapacity) {
                 m_vector.uncheckedAppend(v);
                 ++m_size;
@@ -199,10 +195,6 @@
             : m_args(args)
             , m_argCount(argCount)
         {
-#if ENABLE(JSC_ZOMBIES)
-            for (size_t i = 0; i < argCount; i++)
-                ASSERT(!m_args[i].isZombie());
-#endif
         }
         
         ArgList(Register* args, int argCount)

Modified: trunk/Source/_javascript_Core/runtime/JSCell.cpp (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/JSCell.cpp	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/JSCell.cpp	2011-07-30 02:49:45 UTC (rev 92046)
@@ -167,12 +167,8 @@
 
 bool isZombie(const JSCell* cell)
 {
-#if ENABLE(JSC_ZOMBIES)
-    return cell && cell->isZombie();
-#else
     UNUSED_PARAM(cell);
     return false;
-#endif
 }
 
 void slowValidateCell(JSCell* cell)

Modified: trunk/Source/_javascript_Core/runtime/JSCell.h (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/JSCell.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/JSCell.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -64,7 +64,6 @@
         friend class JSString;
         friend class JSValue;
         friend class JSAPIValueWrapper;
-        friend class JSZombie;
         friend class JSGlobalData;
         friend class NewSpace;
         friend class MarkedBlock;
@@ -124,9 +123,6 @@
         void* operator new(size_t, void* placementNewDestination) { return placementNewDestination; }
 
         virtual void visitChildren(SlotVisitor&);
-#if ENABLE(JSC_ZOMBIES)
-        virtual bool isZombie() const { return false; }
-#endif
 
         // Object operations, with the toObject operation included.
         const ClassInfo* classInfo() const;
@@ -354,13 +350,6 @@
         return isCell() ? asCell()->toThisObject(exec) : toThisObjectSlowCase(exec);
     }
 
-#if ENABLE(JSC_ZOMBIES)
-    inline bool JSValue::isZombie() const
-    {
-        return isCell() && asCell()->isZombie();
-    }
-#endif
-
     inline void destructor(JSCell* cell)
     {
         cell->~JSCell();

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp	2011-07-30 02:49:45 UTC (rev 92046)
@@ -46,7 +46,6 @@
 #include "JSNotAnObject.h"
 #include "JSPropertyNameIterator.h"
 #include "JSStaticScopeObject.h"
-#include "JSZombie.h"
 #include "Lexer.h"
 #include "Lookup.h"
 #include "Nodes.h"
@@ -232,10 +231,6 @@
     regExpStructure.set(*this, RegExp::createStructure(*this, jsNull()));
     structureChainStructure.set(*this, StructureChain::createStructure(*this, jsNull()));
 
-#if ENABLE(JSC_ZOMBIES)
-    zombieStructure.set(*this, JSZombie::createStructure(*this, jsNull()));
-#endif
-
     wtfThreadData().setCurrentIdentifierTable(existingEntryIdentifierTable);
 
 #if PLATFORM(MAC)
@@ -294,10 +289,6 @@
     dummyMarkableCellStructure.clear();
     regExpStructure.clear();
     structureChainStructure.clear();
-
-#if ENABLE(JSC_ZOMBIES)
-    zombieStructure.clear();
-#endif
 }
 
 JSGlobalData::~JSGlobalData()

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.h (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/JSGlobalData.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -177,10 +177,6 @@
         Strong<Structure> regExpStructure;
         Strong<Structure> structureChainStructure;
 
-#if ENABLE(JSC_ZOMBIES)
-        Strong<Structure> zombieStructure;
-#endif
-
         static void storeVPtrs();
         static JS_EXPORTDATA void* jsFinalObjectVPtr;
         static JS_EXPORTDATA void* jsArrayVPtr;

Modified: trunk/Source/_javascript_Core/runtime/JSValue.h (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/JSValue.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/JSValue.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -190,10 +190,6 @@
         int32_t toInt32(ExecState*) const;
         uint32_t toUInt32(ExecState*) const;
 
-#if ENABLE(JSC_ZOMBIES)
-        bool isZombie() const;
-#endif
-
         // Floating point conversions (this is a convenience method for webcore;
         // signle precision float is not a representation used in JS or JSC).
         float toFloat(ExecState* exec) const { return static_cast<float>(toNumber(exec)); }

Modified: trunk/Source/_javascript_Core/runtime/JSValueInlineMethods.h (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/JSValueInlineMethods.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/JSValueInlineMethods.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -228,9 +228,6 @@
         else
             u.asBits.tag = EmptyValueTag;
         u.asBits.payload = reinterpret_cast<int32_t>(ptr);
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!isZombie());
-#endif
     }
 
     inline JSValue::JSValue(const JSCell* ptr)
@@ -240,9 +237,6 @@
         else
             u.asBits.tag = EmptyValueTag;
         u.asBits.payload = reinterpret_cast<int32_t>(const_cast<JSCell*>(ptr));
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!isZombie());
-#endif
     }
 
     inline JSValue::operator bool() const
@@ -384,17 +378,11 @@
     inline JSValue::JSValue(JSCell* ptr)
     {
         u.ptr = ptr;
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!isZombie());
-#endif
     }
 
     inline JSValue::JSValue(const JSCell* ptr)
     {
         u.ptr = const_cast<JSCell*>(ptr);
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!isZombie());
-#endif
     }
 
     inline JSValue::operator bool() const

Deleted: trunk/Source/_javascript_Core/runtime/JSZombie.cpp (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/JSZombie.cpp	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/JSZombie.cpp	2011-07-30 02:49:45 UTC (rev 92046)
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#include "config.h"
-#include "JSZombie.h"
-#include "ClassInfo.h"
-#include "JSObject.h"
-#include "ScopeChain.h"
-
-#if ENABLE(JSC_ZOMBIES)
-
-namespace JSC {
-
-const ClassInfo JSZombie::s_info = { "Zombie", 0, 0, 0 };
-
-}
-
-#endif // ENABLE(JSC_ZOMBIES)

Deleted: trunk/Source/_javascript_Core/runtime/JSZombie.h (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/JSZombie.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/JSZombie.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifndef JSZombie_h
-#define JSZombie_h
-
-#include "JSCell.h"
-#include "Structure.h"
-
-#if ENABLE(JSC_ZOMBIES)
-namespace JSC {
-
-class JSZombie : public JSCell {
-public:
-    JSZombie(JSGlobalData& globalData, const ClassInfo* oldInfo, Structure* structure)
-        : JSCell(globalData, structure)
-        , m_oldInfo(oldInfo)
-    {
-        ASSERT(inherits(&s_info));
-    }
-
-    ~JSZombie()
-    {
-        /* Zombie cells should never been reused. */
-        ASSERT_NOT_REACHED();
-    }
-
-    virtual bool isZombie() const { return true; }
-
-    virtual bool isGetterSetter() const { ASSERT_NOT_REACHED(); return false; }
-    virtual bool isAPIValueWrapper() const { ASSERT_NOT_REACHED(); return false; }
-    virtual bool isPropertyNameIterator() const { ASSERT_NOT_REACHED(); return false; }
-    virtual CallType getCallData(CallData&) { ASSERT_NOT_REACHED(); return CallTypeNone; }
-    virtual ConstructType getConstructData(ConstructData&) { ASSERT_NOT_REACHED(); return ConstructTypeNone; }
-    virtual bool getUInt32(uint32_t&) const { ASSERT_NOT_REACHED(); return false; }
-    virtual JSValue toPrimitive(ExecState*, PreferredPrimitiveType) const { ASSERT_NOT_REACHED(); return jsNull(); }
-    virtual bool getPrimitiveNumber(ExecState*, double&, JSValue&) { ASSERT_NOT_REACHED(); return false; }
-    virtual bool toBoolean(ExecState*) const { ASSERT_NOT_REACHED(); return false; }
-    virtual double toNumber(ExecState*) const { ASSERT_NOT_REACHED(); return 0.0; }
-    virtual UString toString(ExecState*) const { ASSERT_NOT_REACHED(); return ""; }
-    virtual JSObject* toObject(ExecState*) const { ASSERT_NOT_REACHED(); return 0; }
-    virtual void visitChildren(SlotVisitor&) { ASSERT_NOT_REACHED(); }
-    virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&) { ASSERT_NOT_REACHED(); }
-    virtual void put(ExecState*, unsigned, JSValue) { ASSERT_NOT_REACHED(); }
-    virtual bool deleteProperty(ExecState*, const Identifier&) { ASSERT_NOT_REACHED(); return false; }
-    virtual bool deleteProperty(ExecState*, unsigned) { ASSERT_NOT_REACHED(); return false; }
-    virtual JSObject* toThisObject(ExecState*) const { ASSERT_NOT_REACHED(); return 0; }
-    virtual JSValue toStrictThisObject(ExecState*) const { ASSERT_NOT_REACHED(); return JSValue(); }
-    virtual JSValue getJSNumber() { ASSERT_NOT_REACHED(); return jsNull(); }
-    virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&) { ASSERT_NOT_REACHED(); return false; }
-    virtual bool getOwnPropertySlot(ExecState*, unsigned, PropertySlot&) { ASSERT_NOT_REACHED(); return false; }
-    
-    static Structure* createStructure(JSGlobalData& globalData, JSValue prototype)
-    {
-        return Structure::create(globalData, prototype, TypeInfo(LeafType, 0), AnonymousSlotCount, &s_info);
-    }
-
-    static const ClassInfo s_info;
-
-private:
-    const ClassInfo* m_oldInfo;
-};
-
-}
-
-#endif // ENABLE(JSC_ZOMBIES)
-
-#endif // JSZombie_h

Modified: trunk/Source/_javascript_Core/runtime/WriteBarrier.h (92045 => 92046)


--- trunk/Source/_javascript_Core/runtime/WriteBarrier.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/runtime/WriteBarrier.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -86,10 +86,6 @@
     {
         this->m_cell = reinterpret_cast<JSCell*>(value);
         Heap::writeBarrier(owner, this->m_cell);
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!isZombie(owner));
-        ASSERT(!isZombie(m_cell));
-#endif
     }
     
     T* get() const
@@ -102,9 +98,6 @@
     T* operator*() const
     {
         ASSERT(m_cell);
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!isZombie(m_cell));
-#endif
         validateCell<T>(static_cast<T*>(m_cell));
         return static_cast<T*>(m_cell);
     }
@@ -128,9 +121,6 @@
     void setWithoutWriteBarrier(T* value)
     {
         this->m_cell = reinterpret_cast<JSCell*>(value);
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!m_cell || value == reinterpret_cast<T*>(1) || !isZombie(m_cell));
-#endif
     }
 
 #if ENABLE(GC_VALIDATION)
@@ -145,19 +135,12 @@
 public:
     void set(JSGlobalData&, const JSCell* owner, JSValue value)
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!isZombie(owner));
-        ASSERT(!value.isZombie());
-#endif
         m_value = JSValue::encode(value);
         Heap::writeBarrier(owner, value);
     }
 
     void setWithoutWriteBarrier(JSValue value)
     {
-#if ENABLE(JSC_ZOMBIES)
-        ASSERT(!value.isZombie());
-#endif
         m_value = JSValue::encode(value);
     }
 

Modified: trunk/Source/_javascript_Core/wtf/Platform.h (92045 => 92046)


--- trunk/Source/_javascript_Core/wtf/Platform.h	2011-07-30 02:26:49 UTC (rev 92045)
+++ trunk/Source/_javascript_Core/wtf/Platform.h	2011-07-30 02:49:45 UTC (rev 92046)
@@ -1163,8 +1163,6 @@
 /* Set up a define for a common error that is intended to cause a build error -- thus the space after Error. */
 #define WTF_PLATFORM_CFNETWORK Error USE_macro_should_be_used_with_CFNETWORK
 
-#define ENABLE_JSC_ZOMBIES 0
-
 /* FIXME: Eventually we should enable this for all platforms and get rid of the define. */
 #if PLATFORM(MAC) || PLATFORM(WIN) || PLATFORM(QT)
 #define WTF_USE_PLATFORM_STRATEGIES 1
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to