Commit 8d85705e authored by oliver@apple.com's avatar oliver@apple.com

2011-02-14 Oliver Hunt <oliver@apple.com>

        Reviewed by Gavin Barraclough and Geoff Garen.

        Refactor handles and weak pointers to become nicer and more automatic
        https://bugs.webkit.org/show_bug.cgi?id=54415

        Move to a true handle based mechanism for GC value protection.  This
        also allows us to switch to a more sensible behaviour for weak pointers
        in which weak pointers are automatically updated.

        This allows us to remove the old (and convoluted) that required all
        objects that may be held by a weak reference to be aware of the reference
        and manually clear them in their destructors.

        This also adds a few new data types to JSC that we use to efficiently
        allocate and return the underlying handle storage.

        This patch is largely renaming and removing now unnecessary destructors
        from objects.

        * API/JSClassRef.cpp:
        (OpaqueJSClass::create):
        (OpaqueJSClassContextData::OpaqueJSClassContextData):
        (OpaqueJSClass::contextData):
        (OpaqueJSClass::prototype):
        * API/JSClassRef.h:
        * CMakeLists.txt:
        * GNUmakefile.am:
        * JavaScriptCore.exp:
        * JavaScriptCore.gypi:
        * JavaScriptCore.pro:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
        * JavaScriptCore.vcproj/WTF/WTF.vcproj:
        * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
        * JavaScriptCore.xcodeproj/project.pbxproj:
        * collector/handles/Global.h: Added.
            New Global handle type used to keep gc objects live, even if they're not
            marked.
        (JSC::Global::Global):
        (JSC::Global::~Global):
        (JSC::Global::set):
            We can only assign directly to a global from another global.
            In all other cases we need the JSGlobalData to be provided
            explicitly so we use a set function.
        (JSC::Global::operator=):
        (JSC::Global::clear):
        (JSC::Global::isHashTableDeletedValue):
        (JSC::Global::internalSet):
        * collector/handles/Handle.h: Added.
            Root "Handle" type used for immutable handles and to provide the basic
            APIs needed for pointer-like behaviour.
        (JSC::HandleBase::operator!):
        (JSC::HandleBase::operator UnspecifiedBoolType*):
        (JSC::HandleBase::isEmpty):
        (JSC::HandleBase::HandleBase):
        (JSC::HandleBase::slot):
        (JSC::HandleBase::invalidate):
        (JSC::HandleBase::setSlot):
        (JSC::HandleTypes::getFromSlot):
        (JSC::HandleTypes::toJSValue):
        (JSC::HandleTypes::validateUpcast):
        (JSC::HandleConverter::operator->):
        (JSC::HandleConverter::operator*):
        (JSC::Handle::Handle):
        (JSC::Handle::get):
        (JSC::Handle::wrapSlot):
        (JSC::operator==):
        (JSC::operator!=):
        * collector/handles/HandleHeap.cpp: Added.
            New heap for global handles.
        (JSC::HandleHeap::HandleHeap):
        (JSC::HandleHeap::grow):
        (JSC::HandleHeap::markStrongHandles):
        (JSC::HandleHeap::updateAfterMark):
        (JSC::HandleHeap::clearWeakPointers):
        (JSC::HandleHeap::writeBarrier):
        * collector/handles/HandleHeap.h: Added.
        (JSC::HandleHeap::heapFor):
        (JSC::HandleHeap::toHandle):
        (JSC::HandleHeap::toNode):
        (JSC::HandleHeap::allocate):
        (JSC::HandleHeap::deallocate):
        (JSC::HandleHeap::makeWeak):
            Convert a hard handle into weak handle that does not
            protect the object it points to.
        (JSC::HandleHeap::makeSelfDestroying):
            Converts a handle to a weak handle that will be returned
            to the free list when the referenced object dies.
        (JSC::HandleHeap::Node::Node):
        (JSC::HandleHeap::Node::slot):
        (JSC::HandleHeap::Node::handleHeap):
        (JSC::HandleHeap::Node::setFinalizer):
        (JSC::HandleHeap::Node::makeWeak):
        (JSC::HandleHeap::Node::isWeak):
        (JSC::HandleHeap::Node::makeSelfDestroying):
        (JSC::HandleHeap::Node::isSelfDestroying):
        (JSC::HandleHeap::Node::finalizer):
        (JSC::HandleHeap::Node::setPrev):
        (JSC::HandleHeap::Node::prev):
        (JSC::HandleHeap::Node::setNext):
        (JSC::HandleHeap::Node::next):
        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::Interpreter):
        * interpreter/Interpreter.h:
        * interpreter/RegisterFile.cpp:
        (JSC::RegisterFile::globalObjectCollected):
        * interpreter/RegisterFile.h:
        (JSC::RegisterFile::RegisterFile):
        * runtime/GCHandle.cpp: Removed.
        * runtime/GCHandle.h: Removed.
        * runtime/Heap.cpp:
        (JSC::Heap::Heap):
        (JSC::Heap::destroy):
        (JSC::Heap::markRoots):
        * runtime/Heap.h:
        (JSC::Heap::allocateGlobalHandle):
        (JSC::Heap::reportExtraMemoryCost):
        * runtime/JSGlobalData.cpp:
        (JSC::JSGlobalData::JSGlobalData):
        * runtime/JSGlobalData.h:
        (JSC::JSGlobalData::allocateGlobalHandle):
        * runtime/JSGlobalObject.cpp:
        (JSC::JSGlobalObject::~JSGlobalObject):
        * runtime/JSPropertyNameIterator.cpp:
        (JSC::JSPropertyNameIterator::create):
        (JSC::JSPropertyNameIterator::~JSPropertyNameIterator):
        * runtime/JSPropertyNameIterator.h:
        (JSC::JSPropertyNameIterator::createStructure):
        (JSC::Structure::setEnumerationCache):
        (JSC::Structure::clearEnumerationCache):
        * runtime/Protect.h:
        * runtime/Structure.cpp:
        (JSC::Structure::~Structure):
        * runtime/Structure.h:
        * runtime/WeakGCPtr.h:
        (JSC::WeakGCPtrBase::get):
        (JSC::WeakGCPtrBase::clear):
        (JSC::WeakGCPtrBase::operator!):
        (JSC::WeakGCPtrBase::operator UnspecifiedBoolType*):
        (JSC::WeakGCPtrBase::~WeakGCPtrBase):
        (JSC::WeakGCPtrBase::WeakGCPtrBase):
        (JSC::WeakGCPtrBase::internalSet):
        (JSC::LazyWeakGCPtr::LazyWeakGCPtr):
        (JSC::LazyWeakGCPtr::set):
        (JSC::WeakGCPtr::WeakGCPtr):
        (JSC::WeakGCPtr::operator=):
        * runtime/WriteBarrier.h:
        * wtf/BlockStack.h: Added.
        (WTF::::BlockStack):
        (WTF::::~BlockStack):
        (WTF::::blocks):
        (WTF::::grow):
        (WTF::::shrink):
        * wtf/SentinelLinkedList.h: Added.
        (WTF::::SentinelLinkedList):
        (WTF::::begin):
        (WTF::::end):
        (WTF::::push):
        (WTF::::remove):
        * wtf/SinglyLinkedList.h: Added.
        (WTF::::SinglyLinkedList):
        (WTF::::isEmpty):
        (WTF::::push):
        (WTF::::pop):
2011-02-14  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough and Geoff Garen.

        Refactor handles and weak pointers to become nicer and more automatic
        https://bugs.webkit.org/show_bug.cgi?id=54415

        Update to use new Global<> type

        * JSRun.cpp:
        (JSRun::JSRun):
        (JSRun::GlobalObject):
        * JSRun.h:
        * JSValueWrapper.cpp:
        (JSValueWrapper::JSValueWrapper):
        * JSValueWrapper.h:
2011-02-14  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough and Geoff Garen.

        Refactor handles and weak pointers to become nicer and more automatic
        https://bugs.webkit.org/show_bug.cgi?id=54415

        Update WebCore to use the new Global<> type rather than ProtectedJSValue
        and gc[Un]Protect.  Also update to use new WeakGCPtr APIs, and remove now
        unnecessary destructors.

        * ForwardingHeaders/collector/handles/Global.h: Added.
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.vcproj/copyForwardingHeaders.cmd:
        * bindings/js/JSCallbackData.h:
        (WebCore::JSCallbackData::JSCallbackData):
        * bindings/js/JSCustomVoidCallback.h:
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::forgetDOMNode):
        (WebCore::cacheDOMNodeWrapper):
        * bindings/js/JSDOMWindowBase.h:
        * bindings/js/JSDOMWindowShell.cpp:
        (WebCore::JSDOMWindowShell::setWindow):
        * bindings/js/JSDataGridDataSource.h:
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::JSEventListener):
        * bindings/js/JSEventListener.h:
        (WebCore::JSEventListener::setWrapper):
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::initializeJSFunction):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::ScheduledAction):
        (WebCore::ScheduledAction::executeFunctionInContext):
        * bindings/js/ScheduledAction.h:
        (WebCore::ScheduledAction::ScheduledAction):
        * bindings/js/ScriptCachedFrameData.cpp:
        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
        (WebCore::ScriptCachedFrameData::restore):
        * bindings/js/ScriptCachedFrameData.h:
        * bindings/js/ScriptCallStackFactory.cpp:
        (WebCore::createScriptArguments):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::createWindowShell):
        (WebCore::ScriptController::evaluateInWorld):
        (WebCore::ScriptController::clearWindowShell):
        (WebCore::ScriptController::attachDebugger):
        * bindings/js/ScriptController.h:
        * bindings/js/ScriptFunctionCall.cpp:
        (WebCore::ScriptFunctionCall::call):
        (WebCore::ScriptCallback::call):
        * bindings/js/ScriptObject.cpp:
        (WebCore::ScriptObject::ScriptObject):
        * bindings/js/ScriptObject.h:
        * bindings/js/ScriptState.cpp:
        (WebCore::ScriptStateProtectedPtr::ScriptStateProtectedPtr):
        (WebCore::ScriptStateProtectedPtr::get):
        * bindings/js/ScriptState.h:
        * bindings/js/ScriptValue.cpp:
        (WebCore::ScriptValue::isFunction):
        (WebCore::ScriptValue::deserialize):
        * bindings/js/ScriptValue.h:
        (WebCore::ScriptValue::ScriptValue):
        (WebCore::ScriptValue::hasNoValue):
        * bindings/js/ScriptWrappable.h:
        (WebCore::ScriptWrappable::ScriptWrappable):
        (WebCore::ScriptWrappable::setWrapper):
        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::WorkerScriptController):
        (WebCore::WorkerScriptController::~WorkerScriptController):
        (WebCore::WorkerScriptController::initScript):
        (WebCore::WorkerScriptController::evaluate):
        * bindings/js/WorkerScriptController.h:
        (WebCore::WorkerScriptController::workerContextWrapper):
        * bindings/scripts/CodeGeneratorJS.pm:
        * bridge/NP_jsobject.cpp:
        (_NPN_InvokeDefault):
        (_NPN_Invoke):
        (_NPN_Evaluate):
        (_NPN_Construct):
        * bridge/jsc/BridgeJSC.cpp:
        (JSC::Bindings::Instance::Instance):
        (JSC::Bindings::Instance::~Instance):
        (JSC::Bindings::Instance::willDestroyRuntimeObject):
        (JSC::Bindings::Instance::willInvalidateRuntimeObject):
        * bridge/jsc/BridgeJSC.h:
        * bridge/runtime_object.cpp:
        (JSC::Bindings::RuntimeObject::invalidate):
        * bridge/runtime_root.cpp:
        (JSC::Bindings::RootObject::RootObject):
        (JSC::Bindings::RootObject::invalidate):
        (JSC::Bindings::RootObject::globalObject):
        (JSC::Bindings::RootObject::updateGlobalObject):
        * bridge/runtime_root.h:
        * dom/EventListener.h:
        * dom/EventTarget.h:
        (WebCore::EventTarget::markJSEventListeners):
        * xml/XMLHttpRequest.cpp:

        Qt bindings courtesy of Csaba Osztrogonác
        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::QtRuntimeConnectionMethod::call):
        (JSC::Bindings::QtConnectionObject::QtConnectionObject):
        (JSC::Bindings::QtConnectionObject::execute):
        (JSC::Bindings::QtConnectionObject::match):
        * bridge/qt/qt_runtime.h:
2011-02-14  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough and Geoff Garen.

        Refactor handles and weak pointers to become nicer and more automatic
        https://bugs.webkit.org/show_bug.cgi?id=54415

        Update to use Global<> instead of ProtectedPtr, and refactored slightly
        to get global data to places it's needed for when we're assigning to
        Global<>s

        * ForwardingHeaders/collector/handles/Global.h: Added.
        * Plugins/Hosted/NetscapePluginInstanceProxy.h:
        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
        (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::get):
        (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject):
        (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget):
        (WebKit::NetscapePluginInstanceProxy::getWindowNPObject):
        (WebKit::NetscapePluginInstanceProxy::getPluginElementNPObject):
        (WebKit::NetscapePluginInstanceProxy::evaluate):
        (WebKit::NetscapePluginInstanceProxy::invoke):
        (WebKit::NetscapePluginInstanceProxy::invokeDefault):
        (WebKit::NetscapePluginInstanceProxy::construct):
        (WebKit::NetscapePluginInstanceProxy::addValueToArray):
        * WebView/WebScriptDebugger.h:
        * WebView/WebScriptDebugger.mm:
        (WebScriptDebugger::WebScriptDebugger):
2011-02-14  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough and Geoff Garen.

        Refactor handles and weak pointers to become nicer and more automatic
        https://bugs.webkit.org/show_bug.cgi?id=54415

        Update code to new Global<> API, and refactor to get global data to
        necessary points.

        * WebProcess/Plugins/Netscape/NPJSObject.cpp:
        (WebKit::NPJSObject::create):
        (WebKit::NPJSObject::NPJSObject):
        (WebKit::NPJSObject::initialize):
        (WebKit::NPJSObject::invokeDefault):
        (WebKit::NPJSObject::construct):
        (WebKit::NPJSObject::invoke):
        * WebProcess/Plugins/Netscape/NPJSObject.h:
        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
        (WebKit::NPRuntimeObjectMap::getOrCreateNPObject):
        (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
        (WebKit::NPRuntimeObjectMap::evaluate):
        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::windowScriptNPObject):
        (WebKit::PluginView::pluginElementNPObject):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@78634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent a69cc8a1
......@@ -142,19 +142,12 @@ PassRefPtr<OpaqueJSClass> OpaqueJSClass::createNoAutomaticPrototype(const JSClas
return adoptRef(new OpaqueJSClass(definition, 0));
}
static void clearReferenceToPrototype(JSObjectRef prototype)
{
OpaqueJSClassContextData* jsClassData = static_cast<OpaqueJSClassContextData*>(JSObjectGetPrivate(prototype));
ASSERT(jsClassData);
jsClassData->cachedPrototype.clear(toJS(prototype));
}
PassRefPtr<OpaqueJSClass> OpaqueJSClass::create(const JSClassDefinition* clientDefinition)
{
JSClassDefinition definition = *clientDefinition; // Avoid modifying client copy.
JSClassDefinition protoDefinition = kJSClassDefinitionEmpty;
protoDefinition.finalize = clearReferenceToPrototype;
protoDefinition.finalize = 0;
swap(definition.staticFunctions, protoDefinition.staticFunctions); // Move static functions to the prototype.
// We are supposed to use JSClassRetain/Release but since we know that we currently have
......@@ -163,7 +156,7 @@ PassRefPtr<OpaqueJSClass> OpaqueJSClass::create(const JSClassDefinition* clientD
return adoptRef(new OpaqueJSClass(&definition, protoClass.get()));
}
OpaqueJSClassContextData::OpaqueJSClassContextData(OpaqueJSClass* jsClass)
OpaqueJSClassContextData::OpaqueJSClassContextData(JSC::JSGlobalData&, OpaqueJSClass* jsClass)
: m_class(jsClass)
{
if (jsClass->m_staticValues) {
......@@ -209,7 +202,7 @@ OpaqueJSClassContextData& OpaqueJSClass::contextData(ExecState* exec)
{
OpaqueJSClassContextData*& contextData = exec->globalData().opaqueJSClassData.add(this, 0).first->second;
if (!contextData)
contextData = new OpaqueJSClassContextData(this);
contextData = new OpaqueJSClassContextData(exec->globalData(), this);
return *contextData;
}
......@@ -256,7 +249,7 @@ JSObject* OpaqueJSClass::prototype(ExecState* exec)
if (!jsClassData.cachedPrototype) {
// Recursive, but should be good enough for our purposes
jsClassData.cachedPrototype = new (exec) JSCallbackObject<JSObjectWithGlobalObject>(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), prototypeClass, &jsClassData); // set jsClassData as the object's private data, so it can clear our reference on destruction
jsClassData.cachedPrototype.set(exec->globalData(), new (exec) JSCallbackObject<JSObjectWithGlobalObject>(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), prototypeClass, &jsClassData), 0); // set jsClassData as the object's private data, so it can clear our reference on destruction
if (parentClass) {
if (JSObject* prototype = parentClass->prototype(exec))
jsClassData.cachedPrototype->setPrototype(prototype);
......
......@@ -69,7 +69,7 @@ struct OpaqueJSClass;
struct OpaqueJSClassContextData {
WTF_MAKE_NONCOPYABLE(OpaqueJSClassContextData); WTF_MAKE_FAST_ALLOCATED;
public:
OpaqueJSClassContextData(OpaqueJSClass*);
OpaqueJSClassContextData(JSC::JSGlobalData&, OpaqueJSClass*);
~OpaqueJSClassContextData();
// It is necessary to keep OpaqueJSClass alive because of the following rare scenario:
......
......@@ -40,6 +40,8 @@ SET(JavaScriptCore_SOURCES
bytecompiler/BytecodeGenerator.cpp
bytecompiler/NodesCodegen.cpp
collector/handles/HandleHeap.cpp
debugger/Debugger.cpp
debugger/DebuggerActivation.cpp
debugger/DebuggerCallFrame.cpp
......@@ -100,7 +102,6 @@ SET(JavaScriptCore_SOURCES
runtime/FunctionConstructor.cpp
runtime/FunctionPrototype.cpp
runtime/GCActivityCallback.cpp
runtime/GCHandle.cpp
runtime/GetterSetter.cpp
runtime/GlobalEvalFunction.cpp
runtime/Identifier.cpp
......
2011-02-14 Oliver Hunt <oliver@apple.com>
Reviewed by Gavin Barraclough and Geoff Garen.
Refactor handles and weak pointers to become nicer and more automatic
https://bugs.webkit.org/show_bug.cgi?id=54415
Move to a true handle based mechanism for GC value protection. This
also allows us to switch to a more sensible behaviour for weak pointers
in which weak pointers are automatically updated.
This allows us to remove the old (and convoluted) that required all
objects that may be held by a weak reference to be aware of the reference
and manually clear them in their destructors.
This also adds a few new data types to JSC that we use to efficiently
allocate and return the underlying handle storage.
This patch is largely renaming and removing now unnecessary destructors
from objects.
* API/JSClassRef.cpp:
(OpaqueJSClass::create):
(OpaqueJSClassContextData::OpaqueJSClassContextData):
(OpaqueJSClass::contextData):
(OpaqueJSClass::prototype):
* API/JSClassRef.h:
* CMakeLists.txt:
* GNUmakefile.am:
* JavaScriptCore.exp:
* JavaScriptCore.gypi:
* JavaScriptCore.pro:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
* JavaScriptCore.vcproj/WTF/WTF.vcproj:
* JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
* JavaScriptCore.xcodeproj/project.pbxproj:
* collector/handles/Global.h: Added.
New Global handle type used to keep gc objects live, even if they're not
marked.
(JSC::Global::Global):
(JSC::Global::~Global):
(JSC::Global::set):
We can only assign directly to a global from another global.
In all other cases we need the JSGlobalData to be provided
explicitly so we use a set function.
(JSC::Global::operator=):
(JSC::Global::clear):
(JSC::Global::isHashTableDeletedValue):
(JSC::Global::internalSet):
* collector/handles/Handle.h: Added.
Root "Handle" type used for immutable handles and to provide the basic
APIs needed for pointer-like behaviour.
(JSC::HandleBase::operator!):
(JSC::HandleBase::operator UnspecifiedBoolType*):
(JSC::HandleBase::isEmpty):
(JSC::HandleBase::HandleBase):
(JSC::HandleBase::slot):
(JSC::HandleBase::invalidate):
(JSC::HandleBase::setSlot):
(JSC::HandleTypes::getFromSlot):
(JSC::HandleTypes::toJSValue):
(JSC::HandleTypes::validateUpcast):
(JSC::HandleConverter::operator->):
(JSC::HandleConverter::operator*):
(JSC::Handle::Handle):
(JSC::Handle::get):
(JSC::Handle::wrapSlot):
(JSC::operator==):
(JSC::operator!=):
* collector/handles/HandleHeap.cpp: Added.
New heap for global handles.
(JSC::HandleHeap::HandleHeap):
(JSC::HandleHeap::grow):
(JSC::HandleHeap::markStrongHandles):
(JSC::HandleHeap::updateAfterMark):
(JSC::HandleHeap::clearWeakPointers):
(JSC::HandleHeap::writeBarrier):
* collector/handles/HandleHeap.h: Added.
(JSC::HandleHeap::heapFor):
(JSC::HandleHeap::toHandle):
(JSC::HandleHeap::toNode):
(JSC::HandleHeap::allocate):
(JSC::HandleHeap::deallocate):
(JSC::HandleHeap::makeWeak):
Convert a hard handle into weak handle that does not
protect the object it points to.
(JSC::HandleHeap::makeSelfDestroying):
Converts a handle to a weak handle that will be returned
to the free list when the referenced object dies.
(JSC::HandleHeap::Node::Node):
(JSC::HandleHeap::Node::slot):
(JSC::HandleHeap::Node::handleHeap):
(JSC::HandleHeap::Node::setFinalizer):
(JSC::HandleHeap::Node::makeWeak):
(JSC::HandleHeap::Node::isWeak):
(JSC::HandleHeap::Node::makeSelfDestroying):
(JSC::HandleHeap::Node::isSelfDestroying):
(JSC::HandleHeap::Node::finalizer):
(JSC::HandleHeap::Node::setPrev):
(JSC::HandleHeap::Node::prev):
(JSC::HandleHeap::Node::setNext):
(JSC::HandleHeap::Node::next):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::Interpreter):
* interpreter/Interpreter.h:
* interpreter/RegisterFile.cpp:
(JSC::RegisterFile::globalObjectCollected):
* interpreter/RegisterFile.h:
(JSC::RegisterFile::RegisterFile):
* runtime/GCHandle.cpp: Removed.
* runtime/GCHandle.h: Removed.
* runtime/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::destroy):
(JSC::Heap::markRoots):
* runtime/Heap.h:
(JSC::Heap::allocateGlobalHandle):
(JSC::Heap::reportExtraMemoryCost):
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
* runtime/JSGlobalData.h:
(JSC::JSGlobalData::allocateGlobalHandle):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::~JSGlobalObject):
* runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::create):
(JSC::JSPropertyNameIterator::~JSPropertyNameIterator):
* runtime/JSPropertyNameIterator.h:
(JSC::JSPropertyNameIterator::createStructure):
(JSC::Structure::setEnumerationCache):
(JSC::Structure::clearEnumerationCache):
* runtime/Protect.h:
* runtime/Structure.cpp:
(JSC::Structure::~Structure):
* runtime/Structure.h:
* runtime/WeakGCPtr.h:
(JSC::WeakGCPtrBase::get):
(JSC::WeakGCPtrBase::clear):
(JSC::WeakGCPtrBase::operator!):
(JSC::WeakGCPtrBase::operator UnspecifiedBoolType*):
(JSC::WeakGCPtrBase::~WeakGCPtrBase):
(JSC::WeakGCPtrBase::WeakGCPtrBase):
(JSC::WeakGCPtrBase::internalSet):
(JSC::LazyWeakGCPtr::LazyWeakGCPtr):
(JSC::LazyWeakGCPtr::set):
(JSC::WeakGCPtr::WeakGCPtr):
(JSC::WeakGCPtr::operator=):
* runtime/WriteBarrier.h:
* wtf/BlockStack.h: Added.
(WTF::::BlockStack):
(WTF::::~BlockStack):
(WTF::::blocks):
(WTF::::grow):
(WTF::::shrink):
* wtf/SentinelLinkedList.h: Added.
(WTF::::SentinelLinkedList):
(WTF::::begin):
(WTF::::end):
(WTF::::push):
(WTF::::remove):
* wtf/SinglyLinkedList.h: Added.
(WTF::::SinglyLinkedList):
(WTF::::isEmpty):
(WTF::::push):
(WTF::::pop):
2011-02-15 Pratik Solanki <psolanki@apple.com>
Move WTF_USE_CFNETWORK to Platform.h
......
......@@ -5,6 +5,7 @@ javascriptcore_cppflags += \
-I$(srcdir)/Source/JavaScriptCore/assembler \
-I$(srcdir)/Source/JavaScriptCore/bytecode \
-I$(srcdir)/Source/JavaScriptCore/bytecompiler \
-I$(srcdir)/Source/JavaScriptCore/collector/handles \
-I$(srcdir)/Source/JavaScriptCore/debugger \
-I$(srcdir)/Source/JavaScriptCore/ForwardingHeaders \
-I$(srcdir)/Source/JavaScriptCore/interpreter \
......@@ -109,6 +110,10 @@ javascriptcore_sources += \
Source/JavaScriptCore/bytecompiler/LabelScope.h \
Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp \
Source/JavaScriptCore/bytecompiler/RegisterID.h \
Source/JavaScriptCore/collector/handles/Global.h \
Source/JavaScriptCore/collector/handles/Handle.h \
Source/JavaScriptCore/collector/handles/HandleHeap.cpp \
Source/JavaScriptCore/collector/handles/HandleHeap.h \
Source/JavaScriptCore/config.h \
Source/JavaScriptCore/debugger/DebuggerActivation.cpp \
Source/JavaScriptCore/debugger/DebuggerActivation.h \
......@@ -270,8 +275,6 @@ javascriptcore_sources += \
Source/JavaScriptCore/runtime/FunctionPrototype.h \
Source/JavaScriptCore/runtime/GCActivityCallback.cpp \
Source/JavaScriptCore/runtime/GCActivityCallback.h \
Source/JavaScriptCore/runtime/GCHandle.cpp \
Source/JavaScriptCore/runtime/GCHandle.h \
Source/JavaScriptCore/runtime/GetterSetter.cpp \
Source/JavaScriptCore/runtime/GetterSetter.h \
Source/JavaScriptCore/runtime/GlobalEvalFunction.cpp \
......@@ -426,6 +429,7 @@ javascriptcore_sources += \
Source/JavaScriptCore/wtf/Atomics.h \
Source/JavaScriptCore/wtf/AVLTree.h \
Source/JavaScriptCore/wtf/Bitmap.h \
Source/JavaScriptCore/wtf/BlockStack.h \
Source/JavaScriptCore/wtf/BloomFilter.h \
Source/JavaScriptCore/wtf/BumpPointerAllocator.h \
Source/JavaScriptCore/wtf/ByteArray.cpp \
......@@ -508,6 +512,8 @@ javascriptcore_sources += \
Source/JavaScriptCore/wtf/RefPtrHashMap.h \
Source/JavaScriptCore/wtf/RetainPtr.h \
Source/JavaScriptCore/wtf/SegmentedVector.h \
Source/JavaScriptCore/wtf/SentinelLinkedList.h \
Source/JavaScriptCore/wtf/SinglyLinkedList.h \
Source/JavaScriptCore/wtf/StackBounds.cpp \
Source/JavaScriptCore/wtf/StackBounds.h \
Source/JavaScriptCore/wtf/StaticConstructors.h \
......
......@@ -97,6 +97,8 @@ _WTFReportBacktrace
_WTFReportError
_WTFReportFatalError
__ZN14OpaqueJSString6createERKN3JSC7UStringE
__ZN3JSC10HandleHeap12writeBarrierEPNS_7JSValueERKS1_
__ZN3JSC10HandleHeap4growEv
__ZN3JSC10Identifier11addSlowCaseEPNS_12JSGlobalDataEPN3WTF10StringImplE
__ZN3JSC10Identifier11addSlowCaseEPNS_9ExecStateEPN3WTF10StringImplE
__ZN3JSC10Identifier27checkCurrentIdentifierTableEPNS_12JSGlobalDataE
......@@ -143,7 +145,6 @@ __ZN3JSC12StringObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10Identifie
__ZN3JSC12StringObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
__ZN3JSC12StringObject4infoE
__ZN3JSC12StringObjectC2EPNS_9ExecStateEN3WTF17NonNullPassRefPtrINS_9StructureEEERKNS_7UStringE
__ZN3JSC12WeakGCHandle4poolEv
__ZN3JSC12jsNumberCellEPNS_9ExecStateEd
__ZN3JSC12nonInlineNaNEv
__ZN3JSC13SamplingFlags4stopEv
......@@ -173,7 +174,6 @@ __ZN3JSC16InternalFunctionC2EPNS_12JSGlobalDataEPNS_14JSGlobalObjectEN3WTF17NonN
__ZN3JSC16JSVariableObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
__ZN3JSC16JSVariableObject14symbolTableGetERKNS_10IdentifierERNS_18PropertyDescriptorE
__ZN3JSC16JSVariableObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE
__ZN3JSC16WeakGCHandlePool4freeEPNS_12WeakGCHandleE
__ZN3JSC16createRangeErrorEPNS_9ExecStateERKNS_7UStringE
__ZN3JSC16throwSyntaxErrorEPNS_9ExecStateE
__ZN3JSC17BytecodeGenerator21setDumpsGeneratedCodeEb
......@@ -206,7 +206,6 @@ __ZN3JSC24createStackOverflowErrorEPNS_9ExecStateE
__ZN3JSC25evaluateInGlobalCallFrameERKNS_7UStringERNS_7JSValueEPNS_14JSGlobalObjectE
__ZN3JSC35createInterruptedExecutionExceptionEPNS_12JSGlobalDataE
__ZN3JSC3NaNE
__ZN3JSC4Heap15addWeakGCHandleEPNS_6JSCellE
__ZN3JSC4Heap16objectTypeCountsEv
__ZN3JSC4Heap17collectAllGarbageEv
__ZN3JSC4Heap17globalObjectCountEv
......
......@@ -68,6 +68,10 @@
'bytecompiler/Label.h',
'bytecompiler/LabelScope.h',
'bytecompiler/RegisterID.h',
'collector/handles/Global.h',
'collector/handles/Handle.h',
'collector/handles/HandleHeap.cpp',
'collector/handles/HandleHeap.h',
'config.h',
'debugger/Debugger.cpp',
'debugger/Debugger.h',
......@@ -213,8 +217,6 @@
'runtime/FunctionPrototype.h',
'runtime/GCActivityCallback.cpp',
'runtime/GCActivityCallback.h',
'runtime/GCHandle.cpp',
'runtime/GCHandle.h',
'runtime/GetterSetter.cpp',
'runtime/GetterSetter.h',
'runtime/GlobalEvalFunction.cpp',
......@@ -358,6 +360,7 @@
'wtf/Atomics.h',
'wtf/AVLTree.h',
'wtf/Bitmap.h',
'wtf/BlockStack.h',
'wtf/BloomFilter.h',
'wtf/ByteArray.cpp',
'wtf/ByteArray.h',
......@@ -433,6 +436,8 @@
'wtf/RefPtrHashMap.h',
'wtf/RetainPtr.h',
'wtf/SegmentedVector.h',
'wtf/SentinelLinkedList.h',
'wtf/SinglyLinkedList.h',
'wtf/SizeLimits.cpp',
'wtf/StackBounds.cpp',
'wtf/StackBounds.h',
......
......@@ -27,6 +27,7 @@ JAVASCRIPTCORE_INCLUDEPATH = \
$$PWD/assembler \
$$PWD/bytecode \
$$PWD/bytecompiler \
$$PWD/collector/handles \
$$PWD/debugger \
$$PWD/interpreter \
$$PWD/jit \
......
......@@ -94,6 +94,7 @@ SOURCES += \
debugger/DebuggerActivation.cpp \
debugger/DebuggerCallFrame.cpp \
debugger/Debugger.cpp \
collector/handles/HandleHeap.cpp \
interpreter/CallFrame.cpp \
interpreter/Interpreter.cpp \
interpreter/RegisterFile.cpp \
......@@ -147,7 +148,6 @@ SOURCES += \
runtime/FunctionConstructor.cpp \
runtime/FunctionPrototype.cpp \
runtime/GCActivityCallback.cpp \
runtime/GCHandle.cpp \
runtime/GetterSetter.cpp \
runtime/GlobalEvalFunction.cpp \
runtime/Identifier.cpp \
......
......@@ -52,7 +52,6 @@ EXPORTS
?addPropertyTransitionToExistingStructure@Structure@JSC@@SA?AV?$PassRefPtr@VStructure@JSC@@@WTF@@PAV12@ABVIdentifier@2@IPAVJSCell@2@AAI@Z
?addPropertyWithoutTransition@Structure@JSC@@QAEIABVIdentifier@2@IPAVJSCell@2@@Z
?addSlowCase@Identifier@JSC@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@WTF@@PAVExecState@2@PAVStringImpl@4@@Z
?addWeakGCHandle@Heap@JSC@@QAEPAVWeakGCHandle@2@PAVJSCell@2@@Z
?allocate@Heap@JSC@@QAEPAXI@Z
?allocatePropertyStorage@JSObject@JSC@@QAEXII@Z
?allocateStack@MarkStack@JSC@@CAPAXI@Z
......@@ -164,7 +163,6 @@ EXPORTS
?fastZeroedMalloc@WTF@@YAPAXI@Z
?fillGetterPropertySlot@JSObject@JSC@@QAEXAAVPropertySlot@2@PAV?$WriteBarrierBase@W4Unknown@JSC@@@2@@Z
?focus@Profile@JSC@@QAEXPBVProfileNode@2@@Z
?free@WeakGCHandlePool@JSC@@QAEXPAVWeakGCHandle@2@@Z
?from@Identifier@JSC@@SA?AV12@PAVExecState@2@H@Z
?from@Identifier@JSC@@SA?AV12@PAVExecState@2@I@Z
?functionGetter@PropertySlot@JSC@@ABE?AVJSValue@2@PAVExecState@2@@Z
......@@ -201,6 +199,7 @@ EXPORTS
?globalExec@JSGlobalObject@JSC@@UAEPAVExecState@2@XZ
?globalObject@JSObjectWithGlobalObject@JSC@@QBEPAVJSGlobalObject@2@XZ
?globalObjectCount@Heap@JSC@@QAEIXZ
?grow@HandleHeap@JSC@@AAEXXZ
?hasInstance@JSObject@JSC@@UAE_NPAVExecState@2@VJSValue@2@1@Z
?hasProperty@JSObject@JSC@@QBE_NPAVExecState@2@ABVIdentifier@2@@Z
?hasProperty@JSObject@JSC@@QBE_NPAVExecState@2@I@Z
......@@ -249,7 +248,6 @@ EXPORTS
?objectCount@Heap@JSC@@QBEIXZ
?objectProtoFuncToString@JSC@@YI_JPAVExecState@1@@Z
?parseDateFromNullTerminatedCharacters@WTF@@YANPBD@Z
?pool@WeakGCHandle@JSC@@QAEPAVWeakGCHandlePool@2@XZ
?profiler@Profiler@JSC@@SAPAV12@XZ
?protect@Heap@JSC@@QAEXVJSValue@2@@Z
?protectedGlobalObjectCount@Heap@JSC@@QAEIXZ
......@@ -360,6 +358,7 @@ EXPORTS
?wait@ThreadCondition@WTF@@QAEXAAVMutex@2@@Z
?waitForThreadCompletion@WTF@@YAHIPAPAX@Z
?writable@PropertyDescriptor@JSC@@QBE_NXZ
?writeBarrier@HandleHeap@JSC@@QAEXPAVJSValue@2@ABV32@@Z
?yield@WTF@@YAXXZ
WTFLog
WTFLogVerbose
......
......@@ -1974,6 +1974,30 @@
>
</File>
</Filter>
<Filter
Name="collector"
>
<Filter
Name="handles"
>
<File
RelativePath="..\..\collector\handles\Global.h"
>
</File>
<File
RelativePath="..\..\collector\handles\Handle.h"
>
</File>
<File
RelativePath="..\..\collector\handles\HandleHeap.cpp"
>
</File>
<File
RelativePath="..\..\collector\handles\HandleHeap.h"
>
</File>
</Filter>
</Filter>
<File
RelativePath="..\..\config.h"
>
......
......@@ -6,7 +6,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="&quot;$(ConfigurationBuildDir)\obj\JavaScriptCore\DerivedSources\&quot;;../../;../../API/;../../parser/;../../bytecompiler/;../../jit/;../../runtime/;../../bytecode/;../../interpreter/;../../wtf/;../../profiler;../../assembler/;../../debugger/;&quot;$(WebKitLibrariesDir)\include&quot;;&quot;$(WebKitLibrariesDir)\include\private&quot;;&quot;$(ConfigurationBuildDir)\include&quot;;&quot;$(ConfigurationBuildDir)\include\JavaScriptCore&quot;;&quot;$(ConfigurationBuildDir)\include\private&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;"
AdditionalIncludeDirectories="&quot;$(ConfigurationBuildDir)\obj\JavaScriptCore\DerivedSources\&quot;;../../;../../API/;../../parser/;../../bytecompiler/;../../jit/;../../runtime/;../../bytecode/;../../interpreter/;../../wtf/;../../profiler;../../assembler/;../../debugger/;../../collector/handles/;&quot;$(WebKitLibrariesDir)\include&quot;;&quot;$(WebKitLibrariesDir)\include\private&quot;;&quot;$(ConfigurationBuildDir)\include&quot;;&quot;$(ConfigurationBuildDir)\include\JavaScriptCore&quot;;&quot;$(ConfigurationBuildDir)\include\private&quot;;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;"
PreprocessorDefinitions="__STD_C"
ForcedIncludeFiles="ICUVersion.h"
/>
......
......@@ -36,6 +36,7 @@ all:
xcopy /y /d "..\..\interpreter\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore"
xcopy /y /d "..\..\assembler\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore"
xcopy /y /d "..\..\jit\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore"
xcopy /y /d "..\..\collector\handles\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore"
xcopy /y /d "..\..\debugger\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore"
xcopy /y /d "..\..\profiler\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore"
xcopy /y /d "..\..\create_hash_table" "%ConfigurationBuildDir%\include\private\JavaScriptCore"
......
......@@ -536,6 +536,10 @@
RelativePath="..\..\wtf\Bitmap.h"
>
</File>
<File
RelativePath="..\..\wtf\BlockStack.h"
>
</File>
<File
RelativePath="..\..\wtf\BloomFilter.h"
>
......@@ -868,6 +872,14 @@
RelativePath="..\..\wtf\SegmentedVector.h"
>
</File>
<File
RelativePath="..\..\wtf\SentinelLinkedList.h"
>
</File>
<File
RelativePath="..\..\wtf\SinglyLinkedList.h"
>
</File>
<File
RelativePath="..\..\wtf\SizeLimits.cpp"
>
......
......@@ -6,7 +6,7 @@
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="&quot;$(ConfigurationBuildDir)\include&quot;;&quot;$(ConfigurationBuildDir)\include\private&quot;;&quot;$(ConfigurationBuildDir)\obj\JavaScriptCore\DerivedSources\&quot;;../../;&quot;../../os-win32/&quot;;../../assembler/;../../API/;../../parser/;../../runtime/;../../VM/;../../bytecode/;../../interpreter/;../../wtf/;../../debugger/;../../bytecompiler/;../../profiler;../../jit/;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitLibrariesDir)\include&quot;"
AdditionalIncludeDirectories="&quot;$(ConfigurationBuildDir)\include&quot;;&quot;$(ConfigurationBuildDir)\include\private&quot;;&quot;$(ConfigurationBuildDir)\obj\JavaScriptCore\DerivedSources\&quot;;../../;&quot;../../os-win32/&quot;;../../assembler/;../../API/;../../parser/;../../collector/handles/;../../runtime/;../../VM/;../../bytecode/;../../interpreter/;../../wtf/;../../debugger/;../../bytecompiler/;../../profiler;../../jit/;&quot;$(WebKitLibrariesDir)\include\pthreads&quot;;&quot;$(WebKitLibrariesDir)\include&quot;"
PreprocessorDefinitions="__STD_C"
ForcedIncludeFiles="ICUVersion.h"
ForcedUsingFiles=""
......
......@@ -176,7 +176,6 @@
14BD5A320A3E91F600BAF59C /* JSValueRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 14BD5A2B0A3E91F600BAF59C /* JSValueRef.cpp */; };
14BFCE6910CDB1FC00364CCE /* WeakGCMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 14BFCE6810CDB1FC00364CCE /* WeakGCMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
14C5242B0F5355E900BA3D04 /* JITStubs.h in Headers */ = {isa = PBXBuildFile; fileRef = 14A6581A0F4E36F4000150FD /* JITStubs.h */; settings = {ATTRIBUTES = (Private, ); }; };
14C824AB12F7C77E008F35E0 /* MarkedBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 14C824AA12F7C77E008F35E0 /* MarkedBlock.cpp */; };
14C824AD12F7C785008F35E0 /* MarkedBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 14C824AC12F7C785008F35E0 /* MarkedBlock.h */; settings = {ATTRIBUTES = (Private, ); }; };
14E9D17B107EC469004DDA21 /* JSGlobalObjectFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC756FC60E2031B200DE7D12 /* JSGlobalObjectFunctions.cpp */; };
14F8BA3E107EC886009892DC /* FastMalloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65E217B908E7EECC0023E5F6 /* FastMalloc.cpp */; };
......@@ -287,7 +286,6 @@
93052C340FB792190048FDC3 /* ParserArena.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93052C320FB792190048FDC3 /* ParserArena.cpp */; };
93052C350FB792190048FDC3 /* ParserArena.h in Headers */ = {isa = PBXBuildFile; fileRef = 93052C330FB792190048FDC3 /* ParserArena.h */; settings = {ATTRIBUTES = (); }; };
932F5BD30822A1C700736975 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6560A4CF04B3B3E7008AE952 /* CoreFoundation.framework */; };
932F5BD50822A1C700736975 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EB6105C86C6B00E6DF1B /* Foundation.framework */; };
932F5BD60822A1C700736975 /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EC0705C86C9A00E6DF1B /* libobjc.dylib */; };
932F5BD70822A1C700736975 /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9322A00306C341D3009067BB /* libicucore.dylib */; };
932F5BDD0822A1C700736975 /* jsc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45E12D8806A49B0F00E9DF84 /* jsc.cpp */; };
......@@ -346,6 +344,7 @@
A7280A2811557E3000D56957 /* JSObjectRefPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A79EDB0811531CD60019E912 /* JSObjectRefPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
A730B6121250068F009D25B1 /* StrictEvalActivation.h in Headers */ = {isa = PBXBuildFile; fileRef = A730B6101250068F009D25B1 /* StrictEvalActivation.h */; };
A730B6131250068F009D25B1 /* StrictEvalActivation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A730B6111250068F009D25B1 /* StrictEvalActivation.cpp */; };
A731B25A130093880040A7FA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EB6105C86C6B00E6DF1B /* Foundation.framework */; };
A7386554118697B400540279 /* SpecializedThunkJIT.h in Headers */ = {isa = PBXBuildFile; fileRef = A7386551118697B400540279 /* SpecializedThunkJIT.h */; };
A7386555118697B400540279 /* ThunkGenerators.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7386552118697B400540279 /* ThunkGenerators.cpp */; };
A7386556118697B400540279 /* ThunkGenerators.h in Headers */ = {isa = PBXBuildFile; fileRef = A7386553118697B400540279 /* ThunkGenerators.h */; settings = {ATTRIBUTES = (Private, ); }; };
......@@ -369,13 +368,21 @@
A791EF290F11E07900AE1F68 /* JSByteArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A791EF270F11E07900AE1F68 /* JSByteArray.cpp */; };
A7A1F7AC0F252B3C00E184E2 /* ByteArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7A1F7AA0F252B3C00E184E2 /* ByteArray.cpp */; };
A7A1F7AD0F252B3C00E184E2 /* ByteArray.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A1F7AB0F252B3C00E184E2 /* ByteArray.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7AC25BD1304D146003396DE /* MarkedBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 14C824AA12F7C77E008F35E0 /* MarkedBlock.cpp */; };
A7B48F490EE8936F00DCBDB6 /* ExecutableAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7B48DB60EE74CFC00DCBDB6 /* ExecutableAllocator.cpp */; };
A7C1E8E4112E72EF00A37F98 /* JITPropertyAccess32_64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7C1E8C8112E701C00A37F98 /* JITPropertyAccess32_64.cpp */; };
A7C40C0A130B057D00D002A1 /* BlockStack.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C40C07130B057D00D002A1 /* BlockStack.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7C40C0B130B057D00D002A1 /* SentinelLinkedList.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C40C08130B057D00D002A1 /* SentinelLinkedList.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7C40C0C130B057D00D002A1 /* SinglyLinkedList.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C40C09130B057D00D002A1 /* SinglyLinkedList.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7C530E4102A3813005BC741 /* MarkStackPosix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7C530E3102A3813005BC741 /* MarkStackPosix.cpp */; };
A7D649AA1015224E009B2E1B /* PossiblyNull.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D649A91015224E009B2E1B /* PossiblyNull.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7DCB97312E5193F00911940 /* WriteBarrier.h in Headers */ = {isa = PBXBuildFile; fileRef = A7DCB77912E3D90500911940 /* WriteBarrier.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7E2EA6B0FB460CF00601F06 /* LiteralParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E2EA690FB460CF00601F06 /* LiteralParser.h */; };
A7E2EA6C0FB460CF00601F06 /* LiteralParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7E2EA6A0FB460CF00601F06 /* LiteralParser.cpp */; };
A7E4FC8F12F8E4CA00AF4CF4 /* Global.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E4FC8712F8E4CA00AF4CF4 /* Global.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7E4FC9012F8E4CA00AF4CF4 /* Handle.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E4FC8812F8E4CA00AF4CF4 /* Handle.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7E4FC9112F8E4CA00AF4CF4 /* HandleHeap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7E4FC8912F8E4CA00AF4CF4 /* HandleHeap.cpp */; };
A7E4FC9212F8E4CA00AF4CF4 /* HandleHeap.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E4FC8A12F8E4CA00AF4CF4 /* HandleHeap.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7F19ECE11DD490900931E70 /* FixedArray.h in Headers */ = {isa = PBXBuildFile; fileRef = A7F19ECD11DD490900931E70 /* FixedArray.h */; settings = {ATTRIBUTES = (Private, ); }; };
A7F9935F0FD7325100A0B2D0 /* JSONObject.h in Headers */ = {isa = PBXBuildFile; fileRef = A7F9935D0FD7325100A0B2D0 /* JSONObject.h */; };
A7F993600FD7325100A0B2D0 /* JSONObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7F9935E0FD7325100A0B2D0 /* JSONObject.cpp */; };
......@@ -551,12 +558,6 @@
BCFD8C930EEB2EE700283848 /* JumpTable.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFD8C910EEB2EE700283848 /* JumpTable.h */; };
C0A272630E50A06300E96E15 /* NotFound.h in Headers */ = {isa = PBXBuildFile; fileRef = C0A2723F0E509F1E00E96E15 /* NotFound.h */; settings = {ATTRIBUTES = (Private, ); }; };
DD377CBC12072C18006A2517 /* Bitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = DD377CBB12072C18006A2517 /* Bitmap.h */; settings = {ATTRIBUTES = (Private, ); }; };
DDE82AD31209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
DDE82AD41209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
DDE82AD51209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
DDE82AD61209D955005C1756 /* GCHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE82AD21209D955005C1756 /* GCHandle.h */; };
DDE82AD71209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
DDE82AD81209D955005C1756 /* GCHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE82AD21209D955005C1756 /* GCHandle.h */; settings = {ATTRIBUTES = (Private, ); }; };
DDF7ABD411F60ED200108E36 /* GCActivityCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF7ABD211F60ED200108E36 /* GCActivityCallback.h */; };
DDF7ABD511F60ED200108E36 /* GCActivityCallbackCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDF7ABD311F60ED200108E36 /* GCActivityCallbackCF.cpp */; };
E124A8F70E555775003091F1 /* OpaqueJSString.h in Headers */ = {isa = PBXBuildFile; fileRef = E124A8F50E555775003091F1 /* OpaqueJSString.h */; settings = {ATTRIBUTES = (Private, ); }; };
......@@ -1035,6 +1036,9 @@
A7B48DB50EE74CFC00DCBDB6 /* ExecutableAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExecutableAllocator.h; sourceTree = "<group>"; };
A7B48DB60EE74CFC00DCBDB6 /* ExecutableAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExecutableAllocator.cpp; sourceTree = "<group>"; };
A7C1E8C8112E701C00A37F98 /* JITPropertyAccess32_64.cpp */ = {isa = PBXFileReference; fileEncoding =