1. 25 May, 2011 3 commits
    • oliver@apple.com's avatar
      6e00d03d
    • oliver@apple.com's avatar
      2011-05-25 Oliver Hunt <oliver@apple.com> · 4872d097
      oliver@apple.com authored
              Reviewed by Geoffrey Garen.
      
              Make RegExp GC allocated
              https://bugs.webkit.org/show_bug.cgi?id=61490
      
              Make RegExp GC allocated.  Basically mechanical change to replace
              most use of [Pass]RefPtr<RegExp> with RegExp* or WriteBarrier<RegExp>
              where actual ownership happens.
      
              Made the RegExpCache use Strong<> references currently to avoid any
              changes in behaviour.
      
              * JavaScriptCore.exp:
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::visitAggregate):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::addRegExp):
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::addRegExp):
              (JSC::BytecodeGenerator::emitNewRegExp):
              * bytecompiler/BytecodeGenerator.h:
              * runtime/JSCell.h:
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              (JSC::JSGlobalData::clearBuiltinStructures):
              (JSC::JSGlobalData::addRegExpToTrace):
              * runtime/JSGlobalData.h:
              * runtime/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::reset):
              * runtime/RegExp.cpp:
              (JSC::RegExp::RegExp):
              (JSC::RegExp::create):
              (JSC::RegExp::invalidateCode):
              * runtime/RegExp.h:
              (JSC::RegExp::createStructure):
              * runtime/RegExpCache.cpp:
              (JSC::RegExpCache::lookupOrCreate):
              (JSC::RegExpCache::create):
              * runtime/RegExpCache.h:
              * runtime/RegExpConstructor.cpp:
              (JSC::constructRegExp):
              * runtime/RegExpObject.cpp:
              (JSC::RegExpObject::RegExpObject):
              (JSC::RegExpObject::visitChildren):
              * runtime/RegExpObject.h:
              (JSC::RegExpObject::setRegExp):
              (JSC::RegExpObject::RegExpObjectData::RegExpObjectData):
              * runtime/RegExpPrototype.cpp:
              (JSC::RegExpPrototype::RegExpPrototype):
              (JSC::regExpProtoFuncCompile):
              * runtime/RegExpPrototype.h:
              * runtime/StringPrototype.cpp:
              (JSC::stringProtoFuncMatch):
              (JSC::stringProtoFuncSearch):
      2011-05-25  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              Make RegExp GC allocated
              https://bugs.webkit.org/show_bug.cgi?id=61490
      
              RegExp is GC'd so we don't need the RefPtr shenanigans anymore.
      
              * bindings/js/SerializedScriptValue.cpp:
              (WebCore::CloneDeserializer::readTerminal):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4872d097
    • caio.oliveira@openbossa.org's avatar
      2011-05-25 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> · 32c83b25
      caio.oliveira@openbossa.org authored
              Reviewed by Andreas Kling.
      
              [Qt] JSC bridge: implement __qt_sender__ without using Scope Chain
              https://bugs.webkit.org/show_bug.cgi?id=61343
      
              Create a stack to keep track of the sender objects. This is simpler than
              the similar mechanism in QObject (C++ API), that keeps a stack per-object.
      
              Since we do not support multiple threads, one static stack will be enough for
              handling the behavior.
      
              This behavior is covered by the tst_QWebFrame::connectAndDisconnect() auto test.
      
              * bridge/qt/qt_instance.cpp:
              (JSC::Bindings::QtInstance::qtSenderStack):
              We have one static stack of QObject*. The top of the stack contains the
              last object that emitted signal that called a JavaScript function.
      
              * bridge/qt/qt_instance.h:
              (JSC::Bindings::QtInstance::QtSenderStack::top):
              (JSC::Bindings::QtInstance::QtSenderStack::push):
              (JSC::Bindings::QtInstance::QtSenderStack::pop):
              Minimal functionality to manipulate the sender stack.
      
              * bridge/qt/qt_runtime.cpp:
              (JSC::Bindings::QtConnectionObject::execute):
              Remove the previous code that modified the scope chain. Push the sender object
              to the stack before calling the JavaScript function (the "slot" in Qt-speak) and
              pop it afterwards.
      2011-05-25  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
      
              Reviewed by Andreas Kling.
      
              [Qt] JSC bridge: implement __qt_sender__ without using Scope Chain
              https://bugs.webkit.org/show_bug.cgi?id=61343
      
              Create a '__qt_sender__' property in the global object, that returns the top of
              the qtSenderStack. This is an alternative implementation for the feature of
              providing a way for a function (acting as a Qt 'slot') discover which object
              emitted the signal that caused it to be executed.
      
              This reduces the coupling of the Qt bridge and JSC internal implementation. The
              patch tries to use as much JSC public API as possible.
      
              This behavior is covered by the tst_QWebFrame::connectAndDisconnect() auto test.
      
              * WebCoreSupport/FrameLoaderClientQt.cpp:
              (WebCore::FrameLoaderClientQt::dispatchDidClearWindowObjectInWorld):
              Instead of emitting the QWebPage::javaScriptWindowObjectCleared() directly, calls
              a QWebPagePrivate function to do it.
      
              * Api/qwebframe_p.h:
              * Api/qwebframe.cpp:
              (QWebFramePrivate::didClearedWindowObject):
              Before emitting the signal mentioned, adds the '__qt_sender__' to the fresh
              global object.
      
              (qtSenderCallback):
              Returns the JSObjectRef corresponding to the top of qtSenderStack.
      
              (QWebFramePrivate::addQtSenderToGlobalObject):
              Create a property with a qtSenderCallback as getter function in the global object.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      32c83b25
  2. 24 May, 2011 4 commits
    • leandro@webkit.org's avatar
      2011-05-24 Leandro Pereira <leandro@profusion.mobi> · d01d2031
      leandro@webkit.org authored
              [EFL] Build fix.
      
              * bridge/runtime_root.cpp: Include <heap/Weak.h> instead of
              <JavaScriptCore/Weak.h>.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87192 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d01d2031
    • ggaren@apple.com's avatar
      Try to fix some builds: #include Weak.h for Weak<T>. · 6b0bbaad
      ggaren@apple.com authored
      * bridge/runtime_root.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87188 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6b0bbaad
    • aroben@apple.com's avatar
      Leopard build fix · 1a31fda6
      aroben@apple.com authored
      * bridge/runtime_root.cpp: Added a missing #include.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1a31fda6
    • aroben@apple.com's avatar
      Invalidate JS wrappers for NPObjects when they are finalized · 87e2ac32
      aroben@apple.com authored
      This will cause the underlying NPObject to be released at finalization time, rather than at
      destruction time (which is unpredictable and could occur after the plugin has been
      unloaded).
      
      Test: plugins/npobject-js-wrapper-destroyed-after-plugin-unload.html
      
      Fixes <http://webkit.org/b/61316> <rdar://problem/9489824> Crash in deallocateNPObject when
      reloading yahoo.com webarchive in WebKit2
      
      and
      
      <http://webkit.org/b/61317> <rdar://problem/9489829> Crash in _NPN_DeallocateObject when
      reloading yahoo.com webarchive in WebKit1
      
      Reviewed by Oliver Hunt.
      
      Source/WebCore:
      
      * bridge/runtime_object.cpp:
      (JSC::Bindings::RuntimeObject::~RuntimeObject): Assert that we've already been invalidated.
      
      * bridge/runtime_root.cpp:
      (JSC::Bindings::RootObject::invalidate):
      (JSC::Bindings::RootObject::addRuntimeObject):
      Updated for m_runtimeObjects type change.
      
      (JSC::Bindings::RootObject::finalize): Added. Invalidates the RuntimeObject and removes it
      from the map.
      
      * bridge/runtime_root.h: Now inherits from WeakHandleOwner.
      Changed m_runtimeObjects from a WeakGCMap to a HashMap of JSC::Weak objects so that we will
      be notified when the RuntimeObjects are finalized.
      
      Source/WebKit2:
      
      * WebProcess/Plugins/Netscape/JSNPObject.cpp:
      (WebKit::JSNPObject::~JSNPObject): Assert that we've already been invalidated, rather than
      trying to perform invalidation now (when the plugin might already be unloaded).
      
      * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
      (WebKit::NPRuntimeObjectMap::getOrCreateJSObject):
      (WebKit::NPRuntimeObjectMap::invalidate):
      Updated for m_jsNPObjects type change.
      
      (WebKit::NPRuntimeObjectMap::finalize): Added. Invalidates the JSNPObject and removes it
      from the map.
      
      * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h: Now inherits from WeakHandleOwner.
      Changed m_jsNPObjects from a WeakGCMap to a HashMap of JSC::Weak objects so that we will be
      notified when the JSNPObjects are finalized.
      
      LayoutTests:
      
      Test that we don't crash when a JS wrapper for an NPObject is destroyed after its plugin is unloaded
      
      * plugins/npobject-js-wrapper-destroyed-after-plugin-unload-expected.txt: Added.
      * plugins/npobject-js-wrapper-destroyed-after-plugin-unload.html: Added.
      (startTest): Gets a JS wrapper for an NPObject from the plugin, allocate a bunch of memory
      so the JS wrapper will be finalized, then destroy the plugin and wait for a little bit
      before calling finishTest.
      (finishTest): Force a GC so the JS wrapper will be destroyed. If we didn't crash, we passed!
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87179 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      87e2ac32
  3. 22 May, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-05-22 Andrew Wason <rectalogic@rectalogic.com> · cf346c86
      commit-queue@webkit.org authored
              Reviewed by Benjamin Poulain.
      
              [Qt] Implement toImageData() in QtWebKit Bridge
              https://bugs.webkit.org/show_bug.cgi?id=60897
      
              Tests are in WebKit/qt/tests/hybridPixmap
      
              * bridge/qt/qt_pixmapruntime.cpp:
              (JSC::Bindings::QtPixmapToImageDataMethod::name):
              (JSC::Bindings::QtPixmapToImageDataMethod::invoke):
              (JSC::Bindings::QtPixmapToImageDataMethod::copyPixels):
              (JSC::Bindings::QtPixmapClass::methodsNamed):
              (JSC::Bindings::QtPixmapInstance::getPropertyNames):
               Add toImageData() to Qt Bridge, alternative to
               assignToHTMLImageElement().
      2011-05-22  Andrew Wason  <rectalogic@rectalogic.com>
      
              Reviewed by Benjamin Poulain.
      
              [Qt] Implement toImageData() in QtWebKit Bridge
              https://bugs.webkit.org/show_bug.cgi?id=60897
      
              * docs/qtwebkit-bridge.qdoc:
              * docs/webkitsnippets/qtwebkit_bridge_snippets.cpp:
              (wrapInFunction):
               Document Qt bridge toImageData() feature.
              * tests/hybridPixmap/test.html:
              * tests/hybridPixmap/widget.cpp:
              (Widget::Widget):
              (Widget::abcImage):
              * tests/hybridPixmap/widget.h:
               Add tests for Qt bridge toImageData() feature.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cf346c86
  4. 18 May, 2011 2 commits
    • oliver@apple.com's avatar
      2011-05-18 Oliver Hunt <oliver@apple.com> · 8f520f11
      oliver@apple.com authored
              Reviewed by Geoffrey Garen.
      
              +[WebScriptObject throwException:] doesn't work when invoked from obj-c field access
              https://bugs.webkit.org/show_bug.cgi?id=61100
      
              The objc bindings were written to assume exceptions would
              come from obj-c style exceptions, rather than throwException:
              This code simply calls the global ObjcInstance mechanism for
              transferring the reported exception.
      
              * bridge/objc/objc_instance.h:
              * bridge/objc/objc_runtime.mm:
              (JSC::Bindings::ObjcField::valueFromInstance):
              (JSC::Bindings::ObjcField::setValueToInstance):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8f520f11
    • caio.oliveira@openbossa.org's avatar
      2011-05-18 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> · e7d16a30
      caio.oliveira@openbossa.org authored
              Reviewed by Andreas Kling.
      
              [Qt] Fix tst_QWebFrame::getSetStaticProperty() autotest
              https://bugs.webkit.org/show_bug.cgi?id=60984
      
              The code for converting objects to QVariantMap was causing exception,
              that was "leaking" to the next evaluation. One situation was reading
              the property 'localStorage' when we do not have a proper security
              origin, which throws a SECURITY_ERR.
      
              Now, we will simply not include on the QVariantMap those properties,
              and make sure that we clean the exception if necessary.
      
              * bridge/qt/qt_runtime.cpp:
              (JSC::Bindings::convertValueToQVariantMap):
              Extracted function that performs conversion from JSObject to a QVariantMap. This
              functions makes sure that exception is clean after its execution.
      
              (JSC::Bindings::convertValueToQVariant):
              Use the previous function. Add a comment explaining the choice of distance value.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e7d16a30
  5. 14 May, 2011 1 commit
  6. 27 Apr, 2011 1 commit
  7. 25 Apr, 2011 2 commits
  8. 21 Apr, 2011 1 commit
    • oliver@apple.com's avatar
      2011-04-21 Oliver Hunt <oliver@apple.com> · 433d02f9
      oliver@apple.com authored
              Reviewed by Geoffrey Garen.
      
              Start moving to a general visitor pattern for GC traversal
              https://bugs.webkit.org/show_bug.cgi?id=59141
      
              This is just a rename:
                  markChildren -> visitChildren
                  markAggregate -> visitAggregate
                  markStack -> visitor
                  MarkStack -> typedef'd to SlotVisitor
      
              * API/JSCallbackObject.h:
              (JSC::JSCallbackObjectData::visitChildren):
              (JSC::JSCallbackObjectData::JSPrivatePropertyMap::visitChildren):
              (JSC::JSCallbackObject::visitChildren):
              * JavaScriptCore.exp:
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::visitStructures):
              (JSC::EvalCodeCache::visitAggregate):
              (JSC::CodeBlock::visitAggregate):
              * bytecode/CodeBlock.h:
              * bytecode/EvalCodeCache.h:
              * bytecode/Instruction.h:
              (JSC::PolymorphicAccessStructureList::visitAggregate):
              * bytecode/StructureStubInfo.cpp:
              (JSC::StructureStubInfo::visitAggregate):
              * bytecode/StructureStubInfo.h:
              * debugger/DebuggerActivation.cpp:
              (JSC::DebuggerActivation::visitChildren):
              * debugger/DebuggerActivation.h:
              * heap/HandleHeap.cpp:
              (JSC::WeakHandleOwner::isReachableFromOpaqueRoots):
              (JSC::HandleHeap::markStrongHandles):
              (JSC::HandleHeap::markWeakHandles):
              * heap/HandleHeap.h:
              * heap/HandleStack.cpp:
              (JSC::HandleStack::mark):
              * heap/HandleStack.h:
              * heap/Heap.cpp:
              (JSC::Heap::markProtectedObjects):
              (JSC::Heap::markTempSortVectors):
              (JSC::Heap::markRoots):
              * heap/Heap.h:
              * heap/MarkStack.cpp:
              (JSC::MarkStack::visitChildren):
              (JSC::MarkStack::drain):
              * heap/MarkStack.h:
              (JSC::HeapRootVisitor::HeapRootVisitor):
              (JSC::HeapRootVisitor::mark):
              (JSC::HeapRootVisitor::visitor):
              * heap/MarkedSpace.h:
              * runtime/ArgList.cpp:
              (JSC::MarkedArgumentBuffer::markLists):
              * runtime/ArgList.h:
              * runtime/Arguments.cpp:
              (JSC::Arguments::visitChildren):
              * runtime/Arguments.h:
              * runtime/Executable.cpp:
              (JSC::EvalExecutable::visitChildren):
              (JSC::ProgramExecutable::visitChildren):
              (JSC::FunctionExecutable::visitChildren):
              * runtime/Executable.h:
              * runtime/GetterSetter.cpp:
              (JSC::GetterSetter::visitChildren):
              * runtime/GetterSetter.h:
              (JSC::GetterSetter::createStructure):
              * runtime/JSAPIValueWrapper.h:
              (JSC::JSAPIValueWrapper::createStructure):
              * runtime/JSActivation.cpp:
              (JSC::JSActivation::visitChildren):
              * runtime/JSActivation.h:
              * runtime/JSArray.cpp:
              (JSC::JSArray::visitChildren):
              * runtime/JSArray.h:
              (JSC::JSArray::visitDirect):
              * runtime/JSCell.h:
              (JSC::JSCell::JSCell::visitChildren):
              * runtime/JSFunction.cpp:
              (JSC::JSFunction::visitChildren):
              * runtime/JSFunction.h:
              * runtime/JSGlobalObject.cpp:
              (JSC::visitIfNeeded):
              (JSC::JSGlobalObject::visitChildren):
              * runtime/JSGlobalObject.h:
              * runtime/JSONObject.cpp:
              * runtime/JSObject.cpp:
              (JSC::JSObject::visitChildren):
              * runtime/JSObject.h:
              (JSC::JSObject::visitDirect):
              * runtime/JSPropertyNameIterator.cpp:
              (JSC::JSPropertyNameIterator::visitChildren):
              * runtime/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::createStructure):
              * runtime/JSStaticScopeObject.cpp:
              (JSC::JSStaticScopeObject::visitChildren):
              * runtime/JSStaticScopeObject.h:
              * runtime/JSTypeInfo.h:
              (JSC::TypeInfo::TypeInfo):
              (JSC::TypeInfo::overridesVisitChildren):
              * runtime/JSWrapperObject.cpp:
              (JSC::JSWrapperObject::visitChildren):
              * runtime/JSWrapperObject.h:
              * runtime/JSZombie.h:
              (JSC::JSZombie::visitChildren):
              * runtime/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::visitChildren):
              * runtime/NativeErrorConstructor.h:
              * runtime/RegExpObject.cpp:
              (JSC::RegExpObject::visitChildren):
              * runtime/RegExpObject.h:
              * runtime/ScopeChain.cpp:
              (JSC::ScopeChainNode::visitChildren):
              * runtime/ScopeChain.h:
              * runtime/SmallStrings.cpp:
              (JSC::SmallStrings::visitChildren):
              * runtime/SmallStrings.h:
              * runtime/Structure.cpp:
              (JSC::Structure::Structure):
              (JSC::Structure::visitChildren):
              * runtime/Structure.h:
              * runtime/StructureChain.cpp:
              (JSC::StructureChain::visitChildren):
              * runtime/StructureChain.h:
              (JSC::StructureChain::createStructure):
      2011-04-21  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              Start moving to a general visitor pattern for GC traversal
              https://bugs.webkit.org/show_bug.cgi?id=59141
      
              This is just a rename:
                  markChildren -> visitChildren
                  markAggregate -> visitAggregate
                  markStack -> visitor
                  MarkStack -> typedef'd to SlotVisitor
      
              * UserObjectImp.cpp:
              (UserObjectImp::visitChildren):
      2011-04-21  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              Start moving to a general visitor pattern for GC traversal
              https://bugs.webkit.org/show_bug.cgi?id=59141
      
              This is just a rename:
                  markChildren -> visitChildren
                  markAggregate -> visitAggregate
                  markStack -> visitor
                  MarkStack -> typedef'd to SlotVisitor
      
              * bindings/js/JSAttrCustom.cpp:
              (WebCore::JSAttr::visitChildren):
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::constructAudio):
              * bindings/js/JSCSSRuleCustom.cpp:
              (WebCore::JSCSSRule::visitChildren):
              * bindings/js/JSCSSStyleDeclarationCustom.cpp:
              (WebCore::JSCSSStyleDeclaration::visitChildren):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::visitActiveObjectsForContext):
              (WebCore::markDOMObjectWrapper):
              * bindings/js/JSDOMBinding.h:
              * bindings/js/JSDOMGlobalObject.cpp:
              (WebCore::JSDOMGlobalObject::visitChildren):
              * bindings/js/JSDOMGlobalObject.h:
              * bindings/js/JSDOMImplementationCustom.cpp:
              (WebCore::JSDOMImplementation::visitChildren):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::visitChildren):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::visitChildren):
              * bindings/js/JSDOMWindowShell.h:
              * bindings/js/JSDocumentCustom.cpp:
              (WebCore::JSDocument::visitChildren):
              * bindings/js/JSElementCustom.cpp:
              (WebCore::JSElement::visitChildren):
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSEventListener::markJSFunction):
              * bindings/js/JSEventListener.h:
              * bindings/js/JSHTMLCanvasElementCustom.cpp:
              (WebCore::JSHTMLCanvasElement::visitChildren):
              * bindings/js/JSHTMLLinkElementCustom.cpp:
              (WebCore::JSHTMLLinkElement::visitChildren):
              * bindings/js/JSHTMLStyleElementCustom.cpp:
              (WebCore::JSHTMLStyleElement::visitChildren):
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::constructImage):
              * bindings/js/JSJavaScriptAudioNodeCustom.cpp:
              (WebCore::JSJavaScriptAudioNode::visitChildren):
              * bindings/js/JSMessageChannelCustom.cpp:
              (WebCore::JSMessageChannel::visitChildren):
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::visitChildren):
              * bindings/js/JSNamedNodeMapCustom.cpp:
              (WebCore::JSNamedNodeMapOwner::isReachableFromOpaqueRoots):
              (WebCore::JSNamedNodeMap::visitChildren):
              * bindings/js/JSNavigatorCustom.cpp:
              (WebCore::JSNavigator::visitChildren):
              * bindings/js/JSNodeCustom.cpp:
              (WebCore::isObservable):
              (WebCore::isReachableFromDOM):
              (WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
              (WebCore::JSNode::visitChildren):
              * bindings/js/JSNodeCustom.h:
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots):
              * bindings/js/JSNodeFilterCondition.h:
              * bindings/js/JSNodeFilterCustom.cpp:
              (WebCore::JSNodeFilter::visitChildren):
              * bindings/js/JSNodeIteratorCustom.cpp:
              (WebCore::JSNodeIterator::visitChildren):
              * bindings/js/JSNodeListCustom.cpp:
              (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
              * bindings/js/JSProcessingInstructionCustom.cpp:
              (WebCore::JSProcessingInstruction::visitChildren):
              * bindings/js/JSSVGElementInstanceCustom.cpp:
              (WebCore::JSSVGElementInstance::visitChildren):
              * bindings/js/JSSharedWorkerCustom.cpp:
              (WebCore::JSSharedWorker::visitChildren):
              * bindings/js/JSStyleSheetCustom.cpp:
              (WebCore::JSStyleSheet::visitChildren):
              * bindings/js/JSTreeWalkerCustom.cpp:
              (WebCore::JSTreeWalker::visitChildren):
              * bindings/js/JSWebGLRenderingContextCustom.cpp:
              (WebCore::JSWebGLRenderingContext::visitChildren):
              * bindings/js/JSWebKitAnimationListCustom.cpp:
              (WebCore::JSWebKitAnimationList::visitChildren):
              * bindings/js/JSWorkerContextCustom.cpp:
              (WebCore::JSWorkerContext::visitChildren):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              (WebCore::JSXMLHttpRequest::visitChildren):
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              (WebCore::JSXMLHttpRequestUpload::visitChildren):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/qt/qt_instance.cpp:
              (JSC::Bindings::QtRuntimeObject::visitChildren):
              (JSC::Bindings::QtInstance::markAggregate):
              * bridge/qt/qt_instance.h:
              * bridge/qt/qt_pixmapruntime.cpp:
              * bridge/qt/qt_runtime.cpp:
              (JSC::Bindings::QtRuntimeMetaMethod::visitChildren):
              * bridge/qt/qt_runtime.h:
              * dom/EventListener.h:
              (WebCore::EventListener::visitJSFunction):
              * dom/EventTarget.h:
              (WebCore::EventTarget::visitJSEventListeners):
              * dom/Node.h:
              * dom/NodeFilterCondition.h:
              (WebCore::NodeFilterCondition::visitAggregate):
              * page/DOMWindow.h:
              * workers/WorkerContext.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@84556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      433d02f9
  9. 19 Apr, 2011 2 commits
  10. 18 Apr, 2011 2 commits
  11. 15 Apr, 2011 2 commits
  12. 13 Apr, 2011 1 commit
    • oliver@apple.com's avatar
      2011-04-13 Oliver Hunt <oliver@apple.com> · bb8da910
      oliver@apple.com authored
              Reviewed by Geoff Garen.
      
              GC allocate Structure
              https://bugs.webkit.org/show_bug.cgi?id=58483
      
              Additional structures are allocated beyond the expected threshold
              so we preflight the test to get them allocated.
      
              * fast/dom/gc-10.html:
      2011-04-13  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoff Garen.
      
              GC allocate Structure
              https://bugs.webkit.org/show_bug.cgi?id=58483
      
              Turn Structure into a GC allocated object.  Most of this patch
              is the mechanical change of replacing variations on RefPtr<Structure>
              with either Structure* (for arguments and locals), WriteBarrier<Structure>
              for the few cases where Structures are held by GC allocated objects
              and Strong<Structure> for the root structure objects in GlobalData.
      
              * API/JSCallbackConstructor.cpp:
              (JSC::JSCallbackConstructor::JSCallbackConstructor):
              * API/JSCallbackConstructor.h:
              (JSC::JSCallbackConstructor::createStructure):
              * API/JSCallbackFunction.h:
              (JSC::JSCallbackFunction::createStructure):
              * API/JSCallbackObject.h:
              (JSC::JSCallbackObject::createStructure):
              * API/JSCallbackObjectFunctions.h:
              (JSC::::JSCallbackObject):
              * API/JSContextRef.cpp:
              * JavaScriptCore.JSVALUE32_64only.exp:
              * JavaScriptCore.JSVALUE64only.exp:
              * JavaScriptCore.exp:
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::~CodeBlock):
              (JSC::CodeBlock::markStructures):
              (JSC::CodeBlock::markAggregate):
              * bytecode/CodeBlock.h:
              (JSC::MethodCallLinkInfo::setSeen):
              (JSC::GlobalResolveInfo::GlobalResolveInfo):
              * bytecode/Instruction.h:
              (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
              (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
              (JSC::PolymorphicAccessStructureList::markAggregate):
              (JSC::Instruction::Instruction):
              * bytecode/StructureStubInfo.cpp:
              (JSC::StructureStubInfo::deref):
              (JSC::StructureStubInfo::markAggregate):
              * bytecode/StructureStubInfo.h:
              (JSC::StructureStubInfo::initGetByIdSelf):
              (JSC::StructureStubInfo::initGetByIdProto):
              (JSC::StructureStubInfo::initGetByIdChain):
              (JSC::StructureStubInfo::initPutByIdTransition):
              (JSC::StructureStubInfo::initPutByIdReplace):
              * debugger/DebuggerActivation.cpp:
              (JSC::DebuggerActivation::DebuggerActivation):
              * debugger/DebuggerActivation.h:
              (JSC::DebuggerActivation::createStructure):
              * heap/Handle.h:
              * heap/MarkStack.cpp:
              (JSC::MarkStack::markChildren):
              (JSC::MarkStack::drain):
              * heap/MarkedBlock.cpp:
              (JSC::MarkedBlock::MarkedBlock):
              (JSC::MarkedBlock::sweep):
              * heap/Strong.h:
              (JSC::Strong::Strong):
              (JSC::Strong::set):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::resolveGlobal):
              (JSC::Interpreter::resolveGlobalDynamic):
              (JSC::Interpreter::tryCachePutByID):
              (JSC::Interpreter::uncachePutByID):
              (JSC::Interpreter::tryCacheGetByID):
              (JSC::Interpreter::uncacheGetByID):
              (JSC::Interpreter::privateExecute):
              * jit/JIT.h:
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::patchMethodCallProto):
              (JSC::JIT::privateCompileGetByIdProto):
              (JSC::JIT::privateCompileGetByIdSelfList):
              (JSC::JIT::privateCompileGetByIdProtoList):
              (JSC::JIT::privateCompileGetByIdChainList):
              (JSC::JIT::privateCompileGetByIdChain):
              * jit/JITPropertyAccess32_64.cpp:
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::patchMethodCallProto):
              (JSC::JIT::privateCompileGetByIdProto):
              (JSC::JIT::privateCompileGetByIdSelfList):
              (JSC::JIT::privateCompileGetByIdProtoList):
              (JSC::JIT::privateCompileGetByIdChainList):
              (JSC::JIT::privateCompileGetByIdChain):
              * jit/JITStubs.cpp:
              (JSC::JITThunks::tryCachePutByID):
              (JSC::JITThunks::tryCacheGetByID):
              (JSC::DEFINE_STUB_FUNCTION):
              (JSC::getPolymorphicAccessStructureListSlot):
              * jit/JSInterfaceJIT.h:
              (JSC::JSInterfaceJIT::storePtrWithWriteBarrier):
              * jsc.cpp:
              (cleanupGlobalData):
              * runtime/Arguments.h:
              (JSC::Arguments::createStructure):
              (JSC::Arguments::Arguments):
              (JSC::JSActivation::copyRegisters):
              * runtime/ArrayConstructor.cpp:
              (JSC::ArrayConstructor::ArrayConstructor):
              (JSC::constructArrayWithSizeQuirk):
              * runtime/ArrayConstructor.h:
              * runtime/ArrayPrototype.cpp:
              (JSC::ArrayPrototype::ArrayPrototype):
              (JSC::arrayProtoFuncSplice):
              * runtime/ArrayPrototype.h:
              (JSC::ArrayPrototype::createStructure):
              * runtime/BatchedTransitionOptimizer.h:
              (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
              * runtime/BooleanConstructor.cpp:
              (JSC::BooleanConstructor::BooleanConstructor):
              * runtime/BooleanConstructor.h:
              * runtime/BooleanObject.cpp:
              (JSC::BooleanObject::BooleanObject):
              * runtime/BooleanObject.h:
              (JSC::BooleanObject::createStructure):
              * runtime/BooleanPrototype.cpp:
              (JSC::BooleanPrototype::BooleanPrototype):
              * runtime/BooleanPrototype.h:
              * runtime/DateConstructor.cpp:
              (JSC::DateConstructor::DateConstructor):
              * runtime/DateConstructor.h:
              * runtime/DateInstance.cpp:
              (JSC::DateInstance::DateInstance):
              * runtime/DateInstance.h:
              (JSC::DateInstance::createStructure):
              * runtime/DatePrototype.cpp:
              (JSC::DatePrototype::DatePrototype):
              * runtime/DatePrototype.h:
              (JSC::DatePrototype::createStructure):
              * runtime/Error.cpp:
              (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
              * runtime/ErrorConstructor.cpp:
              (JSC::ErrorConstructor::ErrorConstructor):
              * runtime/ErrorConstructor.h:
              * runtime/ErrorInstance.cpp:
              (JSC::ErrorInstance::ErrorInstance):
              (JSC::ErrorInstance::create):
              * runtime/ErrorInstance.h:
              (JSC::ErrorInstance::createStructure):
              * runtime/ErrorPrototype.cpp:
              (JSC::ErrorPrototype::ErrorPrototype):
              * runtime/ErrorPrototype.h:
              * runtime/ExceptionHelpers.cpp:
              (JSC::InterruptedExecutionError::InterruptedExecutionError):
              (JSC::TerminatedExecutionError::TerminatedExecutionError):
              * runtime/Executable.cpp:
              * runtime/Executable.h:
              (JSC::ExecutableBase::ExecutableBase):
              (JSC::ExecutableBase::createStructure):
              (JSC::NativeExecutable::createStructure):
              (JSC::NativeExecutable::NativeExecutable):
              (JSC::ScriptExecutable::ScriptExecutable):
              (JSC::EvalExecutable::createStructure):
              (JSC::ProgramExecutable::createStructure):
              (JSC::FunctionExecutable::createStructure):
              * runtime/FunctionConstructor.cpp:
              (JSC::FunctionConstructor::FunctionConstructor):
              * runtime/FunctionConstructor.h:
              * runtime/FunctionPrototype.cpp:
              (JSC::FunctionPrototype::FunctionPrototype):
              * runtime/FunctionPrototype.h:
              (JSC::FunctionPrototype::createStructure):
              * runtime/GetterSetter.h:
              (JSC::GetterSetter::GetterSetter):
              (JSC::GetterSetter::createStructure):
              * runtime/InitializeThreading.cpp:
              (JSC::initializeThreadingOnce):
              * runtime/InternalFunction.cpp:
              (JSC::InternalFunction::InternalFunction):
              * runtime/InternalFunction.h:
              (JSC::InternalFunction::createStructure):
              * runtime/JSAPIValueWrapper.h:
              (JSC::JSAPIValueWrapper::createStructure):
              (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
              * runtime/JSActivation.cpp:
              (JSC::JSActivation::JSActivation):
              * runtime/JSActivation.h:
              (JSC::JSActivation::createStructure):
              * runtime/JSArray.cpp:
              (JSC::JSArray::JSArray):
              * runtime/JSArray.h:
              (JSC::JSArray::createStructure):
              * runtime/JSByteArray.cpp:
              (JSC::JSByteArray::JSByteArray):
              (JSC::JSByteArray::createStructure):
              * runtime/JSByteArray.h:
              (JSC::JSByteArray::JSByteArray):
              * runtime/JSCell.cpp:
              (JSC::isZombie):
              * runtime/JSCell.h:
              (JSC::JSCell::JSCell::JSCell):
              (JSC::JSCell::JSCell::addressOfStructure):
              (JSC::JSCell::JSCell::structure):
              (JSC::JSCell::JSCell::markChildren):
              (JSC::JSCell::JSValue::isZombie):
              * runtime/JSFunction.cpp:
              (JSC::JSFunction::JSFunction):
              * runtime/JSFunction.h:
              (JSC::JSFunction::createStructure):
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::storeVPtrs):
              (JSC::JSGlobalData::JSGlobalData):
              (JSC::JSGlobalData::clearBuiltinStructures):
              (JSC::JSGlobalData::createLeaked):
              * runtime/JSGlobalData.h:
              (JSC::allocateGlobalHandle):
              * runtime/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::reset):
              (JSC::JSGlobalObject::markChildren):
              (JSC::JSGlobalObject::copyGlobalsFrom):
              * runtime/JSGlobalObject.h:
              (JSC::JSGlobalObject::JSGlobalObject):
              (JSC::JSGlobalObject::createStructure):
              (JSC::Structure::prototypeChain):
              (JSC::Structure::isValid):
              (JSC::constructEmptyArray):
              * runtime/JSNotAnObject.h:
              (JSC::JSNotAnObject::JSNotAnObject):
              (JSC::JSNotAnObject::createStructure):
              * runtime/JSONObject.cpp:
              (JSC::JSONObject::JSONObject):
              * runtime/JSONObject.h:
              (JSC::JSONObject::createStructure):
              * runtime/JSObject.cpp:
              (JSC::JSObject::defineGetter):
              (JSC::JSObject::defineSetter):
              (JSC::JSObject::seal):
              (JSC::JSObject::freeze):
              (JSC::JSObject::preventExtensions):
              (JSC::JSObject::removeDirect):
              (JSC::JSObject::createInheritorID):
              * runtime/JSObject.h:
              (JSC::JSObject::createStructure):
              (JSC::JSObject::JSObject):
              (JSC::JSNonFinalObject::createStructure):
              (JSC::JSNonFinalObject::JSNonFinalObject):
              (JSC::JSFinalObject::create):
              (JSC::JSFinalObject::createStructure):
              (JSC::JSFinalObject::JSFinalObject):
              (JSC::constructEmptyObject):
              (JSC::createEmptyObjectStructure):
              (JSC::JSObject::~JSObject):
              (JSC::JSObject::setPrototype):
              (JSC::JSObject::setStructure):
              (JSC::JSObject::inheritorID):
              (JSC::JSObject::putDirectInternal):
              (JSC::JSObject::transitionTo):
              (JSC::JSObject::markChildrenDirect):
              * runtime/JSObjectWithGlobalObject.cpp:
              (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
              * runtime/JSObjectWithGlobalObject.h:
              (JSC::JSObjectWithGlobalObject::createStructure):
              (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
              * runtime/JSPropertyNameIterator.cpp:
              (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
              (JSC::JSPropertyNameIterator::create):
              (JSC::JSPropertyNameIterator::get):
              * runtime/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::createStructure):
              (JSC::JSPropertyNameIterator::setCachedStructure):
              (JSC::Structure::setEnumerationCache):
              * runtime/JSStaticScopeObject.h:
              (JSC::JSStaticScopeObject::JSStaticScopeObject):
              (JSC::JSStaticScopeObject::createStructure):
              * runtime/JSString.h:
              (JSC::RopeBuilder::JSString):
              (JSC::RopeBuilder::createStructure):
              * runtime/JSType.h:
              * runtime/JSTypeInfo.h:
              (JSC::TypeInfo::TypeInfo):
              * runtime/JSValue.h:
              * runtime/JSVariableObject.h:
              (JSC::JSVariableObject::createStructure):
              (JSC::JSVariableObject::JSVariableObject):
              (JSC::JSVariableObject::copyRegisterArray):
              * runtime/JSWrapperObject.h:
              (JSC::JSWrapperObject::createStructure):
              (JSC::JSWrapperObject::JSWrapperObject):
              * runtime/JSZombie.cpp:
              * runtime/JSZombie.h:
              (JSC::JSZombie::JSZombie):
              (JSC::JSZombie::createStructure):
              * runtime/MathObject.cpp:
              (JSC::MathObject::MathObject):
              * runtime/MathObject.h:
              (JSC::MathObject::createStructure):
              * runtime/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::NativeErrorConstructor):
              (JSC::NativeErrorConstructor::markChildren):
              * runtime/NativeErrorConstructor.h:
              (JSC::NativeErrorConstructor::createStructure):
              * runtime/NativeErrorPrototype.cpp:
              (JSC::NativeErrorPrototype::NativeErrorPrototype):
              * runtime/NativeErrorPrototype.h:
              * runtime/NumberConstructor.cpp:
              (JSC::NumberConstructor::NumberConstructor):
              * runtime/NumberConstructor.h:
              (JSC::NumberConstructor::createStructure):
              * runtime/NumberObject.cpp:
              (JSC::NumberObject::NumberObject):
              * runtime/NumberObject.h:
              (JSC::NumberObject::createStructure):
              * runtime/NumberPrototype.cpp:
              (JSC::NumberPrototype::NumberPrototype):
              * runtime/NumberPrototype.h:
              * runtime/ObjectConstructor.cpp:
              (JSC::ObjectConstructor::ObjectConstructor):
              * runtime/ObjectConstructor.h:
              (JSC::ObjectConstructor::createStructure):
              * runtime/ObjectPrototype.cpp:
              (JSC::ObjectPrototype::ObjectPrototype):
              * runtime/ObjectPrototype.h:
              * runtime/PropertyMapHashTable.h:
              (JSC::PropertyTable::PropertyTable):
              * runtime/RegExpConstructor.cpp:
              (JSC::RegExpConstructor::RegExpConstructor):
              (JSC::RegExpMatchesArray::RegExpMatchesArray):
              * runtime/RegExpConstructor.h:
              (JSC::RegExpConstructor::createStructure):
              * runtime/RegExpObject.cpp:
              (JSC::RegExpObject::RegExpObject):
              * runtime/RegExpObject.h:
              (JSC::RegExpObject::createStructure):
              * runtime/RegExpPrototype.cpp:
              (JSC::RegExpPrototype::RegExpPrototype):
              * runtime/RegExpPrototype.h:
              * runtime/ScopeChain.h:
              (JSC::ScopeChainNode::ScopeChainNode):
              (JSC::ScopeChainNode::createStructure):
              * runtime/StrictEvalActivation.cpp:
              (JSC::StrictEvalActivation::StrictEvalActivation):
              * runtime/StringConstructor.cpp:
              (JSC::StringConstructor::StringConstructor):
              * runtime/StringConstructor.h:
              * runtime/StringObject.cpp:
              (JSC::StringObject::StringObject):
              * runtime/StringObject.h:
              (JSC::StringObject::createStructure):
              * runtime/StringObjectThatMasqueradesAsUndefined.h:
              (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
              (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
              * runtime/StringPrototype.cpp:
              (JSC::StringPrototype::StringPrototype):
              * runtime/StringPrototype.h:
              (JSC::StringPrototype::createStructure):
              * runtime/Structure.cpp:
              (JSC::StructureTransitionTable::remove):
              (JSC::StructureTransitionTable::add):
              (JSC::Structure::Structure):
              (JSC::Structure::~Structure):
              (JSC::Structure::materializePropertyMap):
              (JSC::Structure::addPropertyTransitionToExistingStructure):
              (JSC::Structure::addPropertyTransition):
              (JSC::Structure::removePropertyTransition):
              (JSC::Structure::changePrototypeTransition):
              (JSC::Structure::despecifyFunctionTransition):
              (JSC::Structure::getterSetterTransition):
              (JSC::Structure::toDictionaryTransition):
              (JSC::Structure::toCacheableDictionaryTransition):
              (JSC::Structure::toUncacheableDictionaryTransition):
              (JSC::Structure::sealTransition):
              (JSC::Structure::freezeTransition):
              (JSC::Structure::preventExtensionsTransition):
              (JSC::Structure::flattenDictionaryStructure):
              (JSC::Structure::copyPropertyTable):
              (JSC::Structure::put):
              (JSC::Structure::markChildren):
              * runtime/Structure.h:
              (JSC::Structure::create):
              (JSC::Structure::setPrototypeWithoutTransition):
              (JSC::Structure::createStructure):
              (JSC::JSCell::createDummyStructure):
              (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::keyForFinalizer):
              * runtime/StructureChain.cpp:
              (JSC::StructureChain::StructureChain):
              (JSC::StructureChain::markChildren):
              * runtime/StructureChain.h:
              (JSC::StructureChain::create):
              (JSC::StructureChain::head):
              (JSC::StructureChain::createStructure):
              * runtime/StructureTransitionTable.h:
              (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::finalizerContextFor):
              (JSC::StructureTransitionTable::~StructureTransitionTable):
              (JSC::StructureTransitionTable::slot):
              (JSC::StructureTransitionTable::setMap):
              (JSC::StructureTransitionTable::singleTransition):
              (JSC::StructureTransitionTable::clearSingleTransition):
              (JSC::StructureTransitionTable::setSingleTransition):
              * runtime/WeakGCMap.h:
              (JSC::DefaultWeakGCMapFinalizerCallback::finalizerContextFor):
              (JSC::DefaultWeakGCMapFinalizerCallback::keyForFinalizer):
              (JSC::WeakGCMap::contains):
              (JSC::WeakGCMap::find):
              (JSC::WeakGCMap::remove):
              (JSC::WeakGCMap::add):
              (JSC::WeakGCMap::set):
              (JSC::WeakGCMap::finalize):
              * runtime/WriteBarrier.h:
              (JSC::writeBarrier):
              (JSC::WriteBarrierBase::set):
              (JSC::WriteBarrierBase::operator*):
              (JSC::WriteBarrierBase::operator->):
              (JSC::WriteBarrierBase::setWithoutWriteBarrier):
      2011-04-13  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoff Garen.
      
              GC allocate Structure
              https://bugs.webkit.org/show_bug.cgi?id=58483
      
              Fix up JSG to correctly mark Structure, et al.
      
              * JSRun.cpp:
              (JSGlueGlobalObject::JSGlueGlobalObject):
              * JSRun.h:
              * JSUtils.cpp:
              (JSObjectKJSValue):
              * UserObjectImp.cpp:
              (UserObjectImp::UserObjectImp):
              * UserObjectImp.h:
              (UserObjectImp::createStructure):
      2011-04-13  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoff Garen.
      
              GC allocate Structure
              https://bugs.webkit.org/show_bug.cgi?id=58483
      
              Update WebCore for Structure being a GC allocated object
      
              * WebCore.exp.in:
              * bindings/js/JSAudioConstructor.h:
              (WebCore::JSAudioConstructor::createStructure):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::cacheDOMStructure):
              * bindings/js/JSDOMBinding.h:
              (WebCore::DOMObjectWithGlobalPointer::createStructure):
              (WebCore::DOMObjectWithGlobalPointer::DOMObjectWithGlobalPointer):
              (WebCore::DOMConstructorObject::createStructure):
              (WebCore::DOMConstructorObject::DOMConstructorObject):
              (WebCore::DOMConstructorWithDocument::DOMConstructorWithDocument):
              * bindings/js/JSDOMGlobalObject.cpp:
              (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
              (WebCore::JSDOMGlobalObject::markChildren):
              * bindings/js/JSDOMGlobalObject.h:
              (WebCore::JSDOMGlobalObject::createStructure):
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::JSDOMWindowBase):
              * bindings/js/JSDOMWindowBase.h:
              (WebCore::JSDOMWindowBase::createStructure):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::JSDOMWindowShell):
              (WebCore::JSDOMWindowShell::setWindow):
              * bindings/js/JSDOMWindowShell.h:
              (WebCore::JSDOMWindowShell::createStructure):
              * bindings/js/JSDOMWrapper.h:
              (WebCore::DOMObject::DOMObject):
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSEventListener::JSEventListener):
              * bindings/js/JSImageConstructor.h:
              (WebCore::JSImageConstructor::createStructure):
              * bindings/js/JSImageDataCustom.cpp:
              (WebCore::toJS):
              * bindings/js/JSOptionConstructor.h:
              (WebCore::JSOptionConstructor::createStructure):
              * bindings/js/JSWorkerContextBase.cpp:
              (WebCore::JSWorkerContextBase::JSWorkerContextBase):
              * bindings/js/JSWorkerContextBase.h:
              (WebCore::JSWorkerContextBase::createStructure):
              * bindings/js/ScriptCachedFrameData.h:
              * bindings/js/SerializedScriptValue.h:
              * bindings/js/WorkerScriptController.cpp:
              (WebCore::WorkerScriptController::initScript):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/c/CRuntimeObject.h:
              (JSC::Bindings::CRuntimeObject::createStructure):
              * bridge/c/c_instance.cpp:
              (JSC::Bindings::CRuntimeMethod::createStructure):
              * bridge/jni/jsc/JavaInstanceJSC.cpp:
              (JavaRuntimeMethod::createStructure):
              * bridge/jni/jsc/JavaRuntimeObject.h:
              (JSC::Bindings::JavaRuntimeObject::createStructure):
              * bridge/objc/ObjCRuntimeObject.h:
              (JSC::Bindings::ObjCRuntimeObject::createStructure):
              * bridge/objc/objc_instance.mm:
              (ObjCRuntimeMethod::createStructure):
              * bridge/objc/objc_runtime.h:
              (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
              * bridge/runtime_array.cpp:
              (JSC::RuntimeArray::RuntimeArray):
              * bridge/runtime_array.h:
              (JSC::RuntimeArray::createStructure):
              * bridge/runtime_method.cpp:
              (JSC::RuntimeMethod::RuntimeMethod):
              * bridge/runtime_method.h:
              (JSC::RuntimeMethod::createStructure):
              * bridge/runtime_object.cpp:
              (JSC::Bindings::RuntimeObject::RuntimeObject):
              * bridge/runtime_object.h:
              (JSC::Bindings::RuntimeObject::createStructure):
              * history/HistoryItem.h:
      2011-04-13  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoff Garen.
      
              GC allocate Structure
              https://bugs.webkit.org/show_bug.cgi?id=58483
      
              Update WebKit for the world of GC allocated Structure
      
              * Plugins/Hosted/NetscapePluginInstanceProxy.h:
              * Plugins/Hosted/ProxyInstance.mm:
              (WebKit::ProxyRuntimeMethod::createStructure):
              * Plugins/Hosted/ProxyRuntimeObject.h:
              (WebKit::ProxyRuntimeObject::createStructure):
      2011-04-13  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoff Garen.
      
              GC allocate Structure
              https://bugs.webkit.org/show_bug.cgi?id=58483
      
              Update WK2 for the world of GC allocated Structure
      
              * WebProcess/Plugins/Netscape/JSNPMethod.h:
              (WebKit::JSNPMethod::createStructure):
              * WebProcess/Plugins/Netscape/JSNPObject.h:
              (WebKit::JSNPObject::createStructure):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb8da910
  13. 11 Apr, 2011 1 commit
    • barraclough@apple.com's avatar
      Bug 58198 - Clean up JSValue implementation for JSVALUE64 · c6441e68
      barraclough@apple.com authored
      Reviewed by Sam Weinig.
      
      Source/JavaScriptCore: 
      
      Remove JSNumberCell, JSImmediate, unify some methods between JSVALUE32_64/JSVALUE64
      
      JSNumberCell.h largely just contained the constructors for JSValue on JSVALUE64,
      which should not have been here.  JSImmediate mostly contained uncalled methods,
      along with the internal implementation of the JSValue constructors split unnecessarily
      across a number of layers of function calls. These could largely be merged back
      together. Many methods and constructors from JSVALUE32_64 and JSVALUE64 can by unified.
      
      The .cpp files were empty.
      
      Moving all these methods into JSValue.h seems to be a repro measurable regression, so
      I have kept these methods in a separate JSValueInlineMethods.h. Adding the 64-bit tag
      values as static const members of JSValue also measures as a repro regression, so I
      have made these #defines.
      
      * Android.mk:
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.exp:
      * JavaScriptCore.gypi:
      * JavaScriptCore.pro:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
          - Removed JSImmediate.h, JSNumberCell.h.
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::emitLoad):
          - Removed class JSImmediate.
      * dfg/DFGNonSpeculativeJIT.cpp:
      (JSC::DFG::NonSpeculativeJIT::compile):
          - Removed class JSImmediate.
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
          - Removed class JSImmediate.
      * jit/JITArithmetic.cpp:
      (JSC::JIT::compileBinaryArithOpSlowCase):
          - Removed class JSImmediate.
      * jit/JITInlineMethods.h:
      (JSC::JIT::emitJumpIfJSCell):
      (JSC::JIT::emitJumpIfNotJSCell):
      (JSC::JIT::emitJumpIfImmediateInteger):
      (JSC::JIT::emitJumpIfNotImmediateInteger):
      (JSC::JIT::emitFastArithDeTagImmediate):
      (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
      (JSC::JIT::emitFastArithReTagImmediate):
      (JSC::JIT::emitTagAsBoolImmediate):
          - Removed class JSImmediate.
      * jit/JITOpcodes.cpp:
      (JSC::JIT::emit_op_not):
      (JSC::JIT::emit_op_jeq_null):
      (JSC::JIT::emit_op_jneq_null):
      (JSC::JIT::emit_op_get_pnames):
      (JSC::JIT::emit_op_eq_null):
      (JSC::JIT::emit_op_neq_null):
      (JSC::JIT::emitSlow_op_not):
          - Removed class JSImmediate.
      * jit/JSInterfaceJIT.h:
          - Removed class JSImmediate.
      * runtime/JSCell.h:
          - Removed JSImmediate.h, JSNumberCell.h.
      * runtime/JSImmediate.cpp: Removed.
      * runtime/JSImmediate.h: Removed.
      * runtime/JSNumberCell.cpp: Removed.
      * runtime/JSNumberCell.h: Removed.
          - Removed.
      * runtime/JSObject.h:
          - Removed JSImmediate.h, JSNumberCell.h.
      * runtime/JSString.h:
          - Removed JSImmediate.h, JSNumberCell.h.
      * runtime/JSValue.h:
          - Added tags for JSVALUE64, moved out some JSVALUE32_64 methods, unified with JSVALUE64.
      * runtime/JSValueInlineMethods.h: Added.
      (JSC::JSValue::toInt32):
      (JSC::JSValue::toUInt32):
      (JSC::JSValue::isUInt32):
      (JSC::JSValue::asUInt32):
      (JSC::JSValue::uncheckedGetNumber):
      (JSC::JSValue::toJSNumber):
      (JSC::jsNaN):
      (JSC::JSValue::getNumber):
      (JSC::JSValue::getBoolean):
      (JSC::JSValue::JSValue):
      (JSC::JSValue::encode):
      (JSC::JSValue::decode):
      (JSC::JSValue::operator bool):
      (JSC::JSValue::operator==):
      (JSC::JSValue::operator!=):
      (JSC::JSValue::isUndefined):
      (JSC::JSValue::isNull):
      (JSC::JSValue::isUndefinedOrNull):
      (JSC::JSValue::isCell):
      (JSC::JSValue::isInt32):
      (JSC::JSValue::isDouble):
      (JSC::JSValue::isTrue):
      (JSC::JSValue::isFalse):
      (JSC::JSValue::tag):
      (JSC::JSValue::payload):
      (JSC::JSValue::asInt32):
      (JSC::JSValue::asDouble):
      (JSC::JSValue::asCell):
      (JSC::JSValue::isNumber):
      (JSC::JSValue::isBoolean):
      (JSC::JSValue::makeImmediate):
      (JSC::JSValue::immediateValue):
      (JSC::reinterpretDoubleToIntptr):
      (JSC::reinterpretIntptrToDouble):
          - Methods moved here from JSImmediate.h/JSNumberCell.h/JSValue.h.
      * runtime/Operations.h:
          - Removed JSImmediate.h, JSNumberCell.h.
      * wtf/StdLibExtras.h:
          - Export bitwise_cast.
      
      Source/WebCore: 
      
      JSNumberCell.h has been deprecated.
      
      * ForwardingHeaders/runtime/JSNumberCell.h: Removed.
      * bindings/scripts/CodeGeneratorJS.pm:
      * bridge/c/c_instance.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83459 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c6441e68
  14. 09 Apr, 2011 2 commits
    • ggaren@apple.com's avatar
      Not reviewed. · ec86f475
      ggaren@apple.com authored
      Try recommitting some things svn left out of my last commit.
      
      * bridge/qt/qt_runtime.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec86f475
    • ggaren@apple.com's avatar
      2011-04-08 Geoffrey Garen <ggaren@apple.com> · f03cbce4
      ggaren@apple.com authored
              Reviewed by Oliver Hunt.
      
              A few heap-related renames and file moves.
              
              WeakGCPtr<T> => Weak<T>
              Global<T> => Strong<T>
              collector/ => heap/
              collector/* => heap/*
              runtime/WeakGCPtr.h => heap/Weak.h
              
              (Eventually, even more files should move into the heap directory. Like
              Heap.h and Heap.cpp, for example.)
      
              * API/JSClassRef.h:
              * CMakeLists.txt:
              * GNUmakefile.am:
              * GNUmakefile.list.am:
              * JavaScriptCore.gypi:
              * JavaScriptCore.pri:
              * JavaScriptCore.pro:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
              * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd:
              * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * bytecode/SamplingTool.h:
              * bytecompiler/BytecodeGenerator.h:
              * collector: Removed.
              * collector/handles: Removed.
              * collector/handles/Global.h: Removed.
              * collector/handles/Handle.h: Removed.
              * collector/handles/HandleHeap.cpp: Removed.
              * collector/handles/HandleHeap.h: Removed.
              * collector/handles/HandleStack.cpp: Removed.
              * collector/handles/HandleStack.h: Removed.
              * collector/handles/Local.h: Removed.
              * collector/handles/LocalScope.h: Removed.
              * heap: Copied from collector.
              * heap/Handle.h: Copied from collector/handles/Handle.h.
              * heap/HandleHeap.cpp: Copied from collector/handles/HandleHeap.cpp.
              * heap/HandleHeap.h: Copied from collector/handles/HandleHeap.h.
              * heap/HandleStack.cpp: Copied from collector/handles/HandleStack.cpp.
              * heap/HandleStack.h: Copied from collector/handles/HandleStack.h.
              * heap/Local.h: Copied from collector/handles/Local.h.
              * heap/LocalScope.h: Copied from collector/handles/LocalScope.h.
              * heap/Strong.h: Copied from collector/handles/Global.h.
              (JSC::Strong::Strong):
              (JSC::Strong::~Strong):
              (JSC::Strong::operator=):
              * heap/Weak.h: Copied from runtime/WeakGCPtr.h.
              (JSC::Weak::Weak):
              (JSC::Weak::~Weak):
              * heap/handles: Removed.
              * interpreter/RegisterFile.h:
              * jit/JITStubs.cpp:
              (JSC::JITThunks::hostFunctionStub):
              * jit/JITStubs.h:
              * runtime/Structure.h:
              * runtime/WeakGCPtr.h: Removed.
      2011-04-08  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Oliver Hunt.
      
              A few heap-related renames and file moves.
              
              WeakGCPtr<T> => Weak<T>
              Global<T> => Strong<T>
              collector/ => heap/
              collector/* => heap/*
              runtime/WeakGCPtr.h => heap/Weak.h
              
              (Eventually, even more files should move into the heap directory. Like
              Heap.h and Heap.cpp, for example.)
      
              * JSRun.h:
              * JSValueWrapper.h:
      2011-04-08  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Oliver Hunt.
      
              A few heap-related renames and file moves.
              
              WeakGCPtr<T> => Weak<T>
              Global<T> => Strong<T>
              collector/ => heap/
              collector/* => heap/*
              runtime/WeakGCPtr.h => heap/Weak.h
              
              (Eventually, even more files should move into the heap directory. Like
              Heap.h and Heap.cpp, for example.)
      
              * CMakeLists.txt:
      2011-04-08  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Oliver Hunt.
      
              A few heap-related renames and file moves.
              
              WeakGCPtr<T> => Weak<T>
              Global<T> => Strong<T>
              collector/ => heap/
              collector/* => heap/*
              runtime/WeakGCPtr.h => heap/Weak.h
              
              (Eventually, even more files should move into the heap directory. Like
              Heap.h and Heap.cpp, for example.)
      
              * Plugins/Hosted/NetscapePluginInstanceProxy.h:
              * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
              (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject):
              (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget):
              (WebKit::NetscapePluginInstanceProxy::evaluate):
              * WebView/WebScriptDebugger.h:
      2011-04-08  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Oliver Hunt.
      
              A few heap-related renames and file moves.
              
              WeakGCPtr<T> => Weak<T>
              Global<T> => Strong<T>
              collector/ => heap/
              collector/* => heap/*
              runtime/WeakGCPtr.h => heap/Weak.h
              
              (Eventually, even more files should move into the heap directory. Like
              Heap.h and Heap.cpp, for example.)
      
              * CMakeLists.txt:
              * ForwardingHeaders/collector: Removed.
              * ForwardingHeaders/heap: Copied from ForwardingHeaders/collector.
              * ForwardingHeaders/heap/Strong.h: Copied from ForwardingHeaders/collector/handles/Global.h.
              * ForwardingHeaders/heap/Weak.h: Copied from ForwardingHeaders/runtime/WeakGCPtr.h.
              * ForwardingHeaders/runtime/WeakGCPtr.h: Removed.
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.vcproj/copyForwardingHeaders.cmd:
              * bindings/js/JSCallbackData.h:
              * bindings/js/JSCustomVoidCallback.h:
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::setWindow):
              * bindings/js/JSDataGridDataSource.h:
              * bindings/js/JSEventListener.h:
              * bindings/js/ScheduledAction.cpp:
              (WebCore::ScheduledAction::ScheduledAction):
              * bindings/js/ScheduledAction.h:
              * bindings/js/ScriptCachedFrameData.cpp:
              (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
              * bindings/js/ScriptCachedFrameData.h:
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::createWindowShell):
              * bindings/js/ScriptController.h:
              * bindings/js/ScriptObject.h:
              * bindings/js/ScriptState.h:
              * bindings/js/ScriptValue.cpp:
              * bindings/js/ScriptValue.h:
              * bindings/js/ScriptWrappable.h:
              * bindings/js/WorkerScriptController.cpp:
              (WebCore::WorkerScriptController::initScript):
              * bindings/js/WorkerScriptController.h:
              * bridge/jsc/BridgeJSC.h:
              * bridge/qt/qt_runtime.h:
              * bridge/runtime_root.h:
              * xml/XMLHttpRequest.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f03cbce4
  15. 05 Apr, 2011 1 commit
    • steveblock@google.com's avatar
      2011-04-04 Steve Block <steveblock@google.com> · 2c1e2a94
      steveblock@google.com authored
              Reviewed by Dimitri Glazkov.
      
              JavaInstance should be a pure interface
              https://bugs.webkit.org/show_bug.cgi?id=55383
      
              This patch fixes JavaInstance for V8 only.
      
              It factors out a JavaInstance interface which does not use JNI
              types. This will allow the Java bridge to be used with objects
              that don't use JNI directly. The existing jobject-backed
              implementation is moved to a new JavaInstanceJobject class which
              implements the interface.
      
              No new tests, refactoring only.
      
              * Android.v8bindings.mk:
              * WebCore.gypi:
              * bridge/jni/JobjectWrapper.h:
              * bridge/jni/v8/JNIUtilityPrivate.cpp:
              (JSC::Bindings::jvalueToJavaValue):
              (JSC::Bindings::javaValueToJvalue):
              * bridge/jni/v8/JavaInstanceJobjectV8.cpp:
              (JavaInstanceJobject::JavaInstanceJobject):
              (JavaInstanceJobject::~JavaInstanceJobject):
              (JavaInstanceJobject::begin):
              (JavaInstanceJobject::end):
              (JavaInstanceJobject::getClass):
              (JavaInstanceJobject::invokeMethod):
              (JavaInstanceJobject::getField):
              * bridge/jni/v8/JavaInstanceJobjectV8.h: Copied from Source/WebCore/bridge/jni/v8/JavaInstanceV8.h.
              (JSC::Bindings::JavaInstanceJobject::javaInstance):
              * bridge/jni/v8/JavaInstanceV8.h:
              (JSC::Bindings::JavaInstance::~JavaInstance):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@82950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2c1e2a94
  16. 01 Apr, 2011 1 commit
    • steveblock@google.com's avatar
      2011-04-01 Steve Block <steveblock@google.com> · 1eb84027
      steveblock@google.com authored
              Reviewed by Jeremy Orlow.
      
              JavaClass should be an interface and free of JNI types
              https://bugs.webkit.org/show_bug.cgi?id=57533
      
              This patch fixes JavaClass for V8 only.
      
              It factors out a JavaClass interface which does not use JNI types.
              This will allow the Java bridge to be used with objects that
              don't use JNI directly. The existing jobject-backed
              implementation is moved to a new JavaClassJobject class which
              implements the interface.
      
              No new tests, refactoring only.
      
              * Android.v8bindings.mk:
              * WebCore.gypi:
              * bridge/jni/v8/JavaClassJobjectV8.cpp:
              (JavaClassJobject::JavaClassJobject):
              (JavaClassJobject::~JavaClassJobject):
              (JavaClassJobject::methodsNamed):
              (JavaClassJobject::fieldNamed):
              * bridge/jni/v8/JavaClassJobjectV8.h: Copied from Source/WebCore/bridge/jni/v8/JavaClassV8.h.
              * bridge/jni/v8/JavaClassV8.h:
              (JSC::Bindings::JavaClass::~JavaClass):
              * bridge/jni/v8/JavaInstanceV8.cpp:
              (JavaInstance::getClass):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@82702 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1eb84027
  17. 31 Mar, 2011 1 commit
    • steveblock@google.com's avatar
      2011-03-30 Steve Block <steveblock@google.com> · e1b2b392
      steveblock@google.com authored
              Reviewed by Jeremy Orlow.
      
              JavaField should not expose JavaString in its API
              https://bugs.webkit.org/show_bug.cgi?id=55766
      
              This patch fixes JavaField for V8 only.
              - Factors out a JavaField interface which does not use JNI types.
                This will allow the Java bridge to be used with objects that
                don't use JNI directly. The existing jobject-backed
                implementation is moved to a new JavaFieldJobject class which
                implements the interface.
              - Use WTF::String in place of JavaString in the API, as JavaString
                exposes JNI types in its interface.
      
              No new tests, refactoring only.
      
              * Android.v8bindings.mk:
              * WebCore.gypi:
              * bridge/jni/JavaMethod.h:
              (JSC::Bindings::JavaMethod::~JavaMethod):
              * bridge/jni/JobjectWrapper.h:
              * bridge/jni/v8/JavaClassV8.cpp:
              (JavaClass::JavaClass):
              * bridge/jni/v8/JavaFieldJobjectV8.cpp:
              (JavaFieldJobject::JavaFieldJobject):
              * bridge/jni/v8/JavaFieldJobjectV8.h:
              (JSC::Bindings::JavaFieldJobject::name):
              (JSC::Bindings::JavaFieldJobject::typeClassName):
              (JSC::Bindings::JavaFieldJobject::type):
              * bridge/jni/v8/JavaFieldV8.h:
              (JSC::Bindings::JavaField::~JavaField):
              * bridge/jni/v8/JavaInstanceV8.cpp:
              (JavaInstance::getField):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@82554 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e1b2b392
  18. 30 Mar, 2011 1 commit
    • steveblock@google.com's avatar
      2011-03-30 Steve Block <steveblock@google.com> · 0ed861d0
      steveblock@google.com authored
              Reviewed by Jeremy Orlow.
      
              JavaMethod should not expose JavaString in its API
              https://bugs.webkit.org/show_bug.cgi?id=55765
      
              - Factors out a JavaMethod interface which does not use JNI types.
                This will allow the Java bridge to be used with objects that
                don't use JNI directly. The existing jobject-backed
                implementation is moved to a new JavaMethodJobject class which
                implements the interface.
              - Use WTF::String in place of JavaString in the API, as JavaString
                exposes JNI types in its interface.
              - Remove the method ID as it uses JNI types.
      
              No new tests, refactoring only.
      
              * Android.jscbindings.mk:
              * Android.v8bindings.mk:
              * GNUmakefile.am:
              * WebCore.gypi:
              * WebCore.xcodeproj/project.pbxproj:
              * bridge/jni/JavaMethod.h:
              * bridge/jni/JavaMethodJobject.cpp:
              (JavaMethodJobject::JavaMethodJobject):
              (JavaMethodJobject::~JavaMethodJobject):
              (appendClassName):
              (JavaMethodJobject::signature):
              * bridge/jni/JavaMethodJobject.h: Copied from Source/WebCore/bridge/jni/JavaMethod.h.
              (JSC::Bindings::JavaMethodJobject::name):
              (JSC::Bindings::JavaMethodJobject::returnTypeClassName):
              (JSC::Bindings::JavaMethodJobject::parameterAt):
              (JSC::Bindings::JavaMethodJobject::returnType):
              (JSC::Bindings::JavaMethodJobject::isStatic):
              (JSC::Bindings::JavaMethodJobject::numParameters):
              * bridge/jni/jsc/JavaClassJSC.cpp:
              (JavaClass::JavaClass):
              * bridge/jni/jsc/JavaInstanceJSC.cpp:
              (JavaInstance::invokeMethod):
              * bridge/jni/v8/JavaClassV8.cpp:
              (JavaClass::JavaClass):
              * bridge/jni/v8/JavaInstanceV8.cpp:
              (JavaInstance::invokeMethod):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@82423 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0ed861d0
  19. 29 Mar, 2011 2 commits
  20. 28 Mar, 2011 2 commits
    • steveblock@google.com's avatar
      2011-03-28 Steve Block <steveblock@google.com> · bcd58425
      steveblock@google.com authored
              Reviewed by Jeremy Orlow.
      
              Add a new JavaValue to type to represent a Java value in the Java bridge
              https://bugs.webkit.org/show_bug.cgi?id=57022
      
              This change introduces a new JavaValue type and uses it in place of jvalue
              in the conversions to and from JavaNPObject used in the V8 Java bridge.
      
              Refactoring only, no new tests.
      
              * WebCore.gypi:
              * bridge/jni/JNIUtility.cpp:
              (JSC::Bindings::javaTypeFromClassName):
              (JSC::Bindings::signatureFromJavaType):
              (JSC::Bindings::getJNIField):
              (JSC::Bindings::callJNIMethod):
              * bridge/jni/JavaType.h:
              * bridge/jni/v8/JNIUtilityPrivate.cpp:
              (JSC::Bindings::convertNPVariantToJavaValue):
              (JSC::Bindings::convertJavaValueToNPVariant):
              (JSC::Bindings::jvalueToJavaValue):
              (JSC::Bindings::javaValueToJvalue):
              * bridge/jni/v8/JNIUtilityPrivate.h:
              * bridge/jni/v8/JavaNPObjectV8.cpp:
              (JSC::Bindings::JavaNPObjectInvoke):
              (JSC::Bindings::JavaNPObjectGetProperty):
              * bridge/jni/v8/JavaValueV8.h: Added.
              (JSC::Bindings::JavaValue::JavaValue):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@82194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bcd58425
    • oliver@apple.com's avatar
      2011-03-28 Oliver Hunt <oliver@apple.com> · 3b6dc575
      oliver@apple.com authored
              Reviewed by Geoffrey Garen.
      
              instanceof Array test fails when using iframes
              https://bugs.webkit.org/show_bug.cgi?id=17250
      
              Add test cases for correct behaviour
      
              * fast/js/js-constructors-use-correct-global-expected.txt: Added.
              * fast/js/js-constructors-use-correct-global.html: Added.
              * fast/js/resources/js-constructors-use-correct-global.js: Added.
      2011-03-28  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              instanceof Array test fails when using iframes
              https://bugs.webkit.org/show_bug.cgi?id=17250
      
              This is a problem with all built in constructors, the use of
              lexicalGlobalObject rather than the constructors own
              global object reference means that a builtin will always use
              the prototype from the lexical global object rather than that
              of the constructors origin.
      
              * API/JSObjectRef.cpp:
              (JSObjectMakeFunction):
              (JSObjectMakeRegExp):
              * JavaScriptCore.exp:
              * runtime/ArrayConstructor.cpp:
              (JSC::constructArrayWithSizeQuirk):
              * runtime/BooleanConstructor.cpp:
              (JSC::constructBoolean):
              (JSC::constructBooleanFromImmediateBoolean):
              * runtime/BooleanConstructor.h:
              * runtime/DateConstructor.cpp:
              (JSC::constructDate):
              * runtime/DateInstance.cpp:
              * runtime/DateInstance.h:
              * runtime/ErrorConstructor.cpp:
              (JSC::constructWithErrorConstructor):
              (JSC::callErrorConstructor):
              * runtime/FunctionConstructor.cpp:
              (JSC::constructWithFunctionConstructor):
              (JSC::callFunctionConstructor):
              (JSC::constructFunction):
              * runtime/FunctionConstructor.h:
              * runtime/JSCell.cpp:
              (JSC::JSCell::getOwnPropertySlot):
              (JSC::JSCell::put):
              (JSC::JSCell::deleteProperty):
              (JSC::JSCell::toThisObject):
              (JSC::JSCell::toObject):
              * runtime/JSCell.h:
              (JSC::JSCell::JSValue::toObject):
              * runtime/JSNotAnObject.cpp:
              (JSC::JSNotAnObject::toObject):
              * runtime/JSNotAnObject.h:
              * runtime/JSObject.cpp:
              (JSC::JSObject::toObject):
              * runtime/JSObject.h:
              * runtime/JSString.cpp:
              (JSC::StringObject::create):
              (JSC::JSString::toObject):
              (JSC::JSString::toThisObject):
              * runtime/JSString.h:
              * runtime/JSValue.cpp:
              (JSC::JSValue::toObjectSlowCase):
              (JSC::JSValue::toThisObjectSlowCase):
              (JSC::JSValue::synthesizeObject):
              * runtime/JSValue.h:
              * runtime/NumberConstructor.cpp:
              (JSC::constructWithNumberConstructor):
              * runtime/NumberObject.cpp:
              (JSC::constructNumber):
              * runtime/NumberObject.h:
              * runtime/ObjectConstructor.cpp:
              (JSC::constructObject):
              (JSC::constructWithObjectConstructor):
              (JSC::callObjectConstructor):
              * runtime/RegExpConstructor.cpp:
              (JSC::constructRegExp):
              (JSC::constructWithRegExpConstructor):
              (JSC::callRegExpConstructor):
              * runtime/RegExpConstructor.h:
              * runtime/StringConstructor.cpp:
              (JSC::constructWithStringConstructor):
              * runtime/StringObject.h:
      2011-03-25  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              instanceof Array test fails when using iframes
              https://bugs.webkit.org/show_bug.cgi?id=17250
      
              Up date for new toObject api
      
              * UserObjectImp.cpp:
              (UserObjectImp::toPrimitive):
              (UserObjectImp::toBoolean):
              (UserObjectImp::toNumber):
              (UserObjectImp::toString):
      2011-03-28  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              instanceof Array test fails when using iframes
              https://bugs.webkit.org/show_bug.cgi?id=17250
      
              Update for new function and date apis
      
              Test: fast/js/js-constructors-use-correct-global.html
      
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::jsDateOrNull):
              * bindings/js/JSLazyEventListener.cpp:
              (WebCore::JSLazyEventListener::initializeJSFunction):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@82173 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3b6dc575
  21. 25 Mar, 2011 1 commit
  22. 24 Mar, 2011 1 commit
    • steveblock@google.com's avatar
      2011-03-11 Steve Block <steveblock@google.com> · 6c7e8883
      steveblock@google.com authored
              Reviewed by Jeremy Orlow.
      
              JNIType is not specific to JNI so should be renamed
              https://bugs.webkit.org/show_bug.cgi?id=56197
      
              This patch renames JNIType to JavaType, renames the values of
              the enum, and moves it out of JNIUtility.h to its own file.
              Also renames the corresponding JavaField and JavaMethod getters.
      
              No new tests, refactoring only.
      
              * GNUmakefile.am:
              * WebCore.gypi:
              * WebCore.xcodeproj/project.pbxproj:
              * bridge/jni/JNIUtility.cpp:
              (JSC::Bindings::javaTypeFromClassName):
              (JSC::Bindings::signatureFromJavaType):
              (JSC::Bindings::javaTypeFromPrimitiveType):
              (JSC::Bindings::getJNIField):
              (JSC::Bindings::callJNIMethod):
              * bridge/jni/JNIUtility.h:
              * bridge/jni/JavaMethod.cpp:
              (JavaMethod::JavaMethod):
              (JavaMethod::signature):
              * bridge/jni/JavaMethod.h:
              (JSC::Bindings::JavaMethod::returnTypeClassName):
              (JSC::Bindings::JavaMethod::returnType):
              * bridge/jni/JavaType.h: Copied from Source/WebCore/bridge/jni/JavaMethod.h.
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::toString):
              * bridge/jni/jni_objc.mm:
              (JSC::Bindings::dispatchJNICall):
              * bridge/jni/jsc/JNIUtilityPrivate.cpp:
              (JSC::Bindings::convertArrayInstanceToJavaArray):
              (JSC::Bindings::convertValueToJValue):
              * bridge/jni/jsc/JNIUtilityPrivate.h:
              * bridge/jni/jsc/JavaArrayJSC.cpp:
              (JavaArray::setValueAt):
              (JavaArray::valueAt):
              * bridge/jni/jsc/JavaClassJSC.cpp:
              * bridge/jni/jsc/JavaFieldJSC.cpp:
              (JavaField::JavaField):
              (JavaField::dispatchValueFromInstance):
              (JavaField::valueFromInstance):
              (JavaField::dispatchSetValueToInstance):
              (JavaField::setValueToInstance):
              * bridge/jni/jsc/JavaFieldJSC.h:
              (JSC::Bindings::JavaField::typeClassName):
              (JSC::Bindings::JavaField::type):
              * bridge/jni/jsc/JavaInstanceJSC.cpp:
              (JavaInstance::invokeMethod):
              * bridge/jni/v8/JNIUtilityPrivate.cpp:
              (JSC::Bindings::convertNPVariantToJValue):
              (JSC::Bindings::convertJValueToNPVariant):
              * bridge/jni/v8/JNIUtilityPrivate.h:
              * bridge/jni/v8/JavaFieldV8.cpp:
              (JavaField::JavaField):
              * bridge/jni/v8/JavaFieldV8.h:
              (JSC::Bindings::JavaField::typeClassName):
              (JSC::Bindings::JavaField::type):
              * bridge/jni/v8/JavaInstanceV8.cpp:
              (JavaInstance::invokeMethod):
              (JavaInstance::getField):
              * bridge/jni/v8/JavaNPObjectV8.cpp:
              (JSC::Bindings::JavaNPObjectInvoke):
              (JSC::Bindings::JavaNPObjectGetProperty):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@81860 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6c7e8883
  23. 16 Mar, 2011 1 commit
    • oliver@apple.com's avatar
      2011-03-15 Oliver Hunt <oliver@apple.com> · 90cf7d51
      oliver@apple.com authored
              Reviewed by Geoffrey Garen.
      
              Make Structure creation require a JSGlobalData
              https://bugs.webkit.org/show_bug.cgi?id=56438
      
              Mechanical change to make Structure::create require JSGlobalData&, and
              require all users to provide the globalData.
      
              * API/JSCallbackConstructor.h:
              (JSC::JSCallbackConstructor::createStructure):
              * API/JSCallbackFunction.h:
              (JSC::JSCallbackFunction::createStructure):
              * API/JSCallbackObject.h:
              (JSC::JSCallbackObject::createStructure):
              * API/JSContextRef.cpp:
              * JavaScriptCore.exp:
              * debugger/DebuggerActivation.cpp:
              (JSC::DebuggerActivation::DebuggerActivation):
              * debugger/DebuggerActivation.h:
              (JSC::DebuggerActivation::createStructure):
              * jit/JITStubs.cpp:
              (JSC::DEFINE_STUB_FUNCTION):
              * jsc.cpp:
              (GlobalObject::GlobalObject):
              (functionRun):
              (jscmain):
              * runtime/Arguments.h:
              (JSC::Arguments::createStructure):
              * runtime/ArrayPrototype.h:
              (JSC::ArrayPrototype::createStructure):
              * runtime/BooleanObject.h:
              (JSC::BooleanObject::createStructure):
              * runtime/DateInstance.h:
              (JSC::DateInstance::createStructure):
              * runtime/DatePrototype.h:
              (JSC::DatePrototype::createStructure):
              * runtime/ErrorInstance.h:
              (JSC::ErrorInstance::createStructure):
              * runtime/Executable.h:
              (JSC::ExecutableBase::createStructure):
              (JSC::EvalExecutable::createStructure):
              (JSC::ProgramExecutable::createStructure):
              (JSC::FunctionExecutable::createStructure):
              * runtime/FunctionPrototype.h:
              (JSC::FunctionPrototype::createStructure):
              * runtime/GetterSetter.h:
              (JSC::GetterSetter::createStructure):
              * runtime/InternalFunction.h:
              (JSC::InternalFunction::createStructure):
              * runtime/JSAPIValueWrapper.h:
              (JSC::JSAPIValueWrapper::createStructure):
              * runtime/JSActivation.h:
              (JSC::JSActivation::createStructure):
              * runtime/JSArray.cpp:
              (JSC::JSArray::JSArray):
              * runtime/JSArray.h:
              (JSC::JSArray::createStructure):
              * runtime/JSByteArray.cpp:
              (JSC::JSByteArray::createStructure):
              * runtime/JSByteArray.h:
              (JSC::JSByteArray::JSByteArray):
              * runtime/JSCell.h:
              (JSC::JSCell::JSCell::createDummyStructure):
              * runtime/JSFunction.h:
              (JSC::JSFunction::createStructure):
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::storeVPtrs):
              (JSC::JSGlobalData::JSGlobalData):
              * runtime/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::reset):
              * runtime/JSGlobalObject.h:
              (JSC::JSGlobalObject::JSGlobalObject):
              (JSC::JSGlobalObject::createStructure):
              * runtime/JSNotAnObject.h:
              (JSC::JSNotAnObject::createStructure):
              * runtime/JSONObject.h:
              (JSC::JSONObject::createStructure):
              * runtime/JSObject.cpp:
              (JSC::JSObject::createInheritorID):
              * runtime/JSObject.h:
              (JSC::JSObject::createStructure):
              (JSC::JSNonFinalObject::createStructure):
              (JSC::JSFinalObject::createStructure):
              (JSC::createEmptyObjectStructure):
              (JSC::JSObject::inheritorID):
              * runtime/JSObjectWithGlobalObject.h:
              (JSC::JSObjectWithGlobalObject::createStructure):
              * runtime/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::createStructure):
              * runtime/JSStaticScopeObject.h:
              (JSC::JSStaticScopeObject::createStructure):
              * runtime/JSString.h:
              (JSC::RopeBuilder::createStructure):
              * runtime/JSVariableObject.h:
              (JSC::JSVariableObject::createStructure):
              * runtime/JSWrapperObject.h:
              (JSC::JSWrapperObject::createStructure):
              * runtime/JSZombie.h:
              (JSC::JSZombie::createStructure):
              * runtime/MathObject.h:
              (JSC::MathObject::createStructure):
              * runtime/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::NativeErrorConstructor):
              * runtime/NativeErrorConstructor.h:
              (JSC::NativeErrorConstructor::createStructure):
              * runtime/NumberConstructor.h:
              (JSC::NumberConstructor::createStructure):
              * runtime/NumberObject.h:
              (JSC::NumberObject::createStructure):
              * runtime/ObjectConstructor.h:
              (JSC::ObjectConstructor::createStructure):
              * runtime/RegExpConstructor.h:
              (JSC::RegExpConstructor::createStructure):
              * runtime/RegExpObject.h:
              (JSC::RegExpObject::createStructure):
              * runtime/ScopeChain.h:
              (JSC::ScopeChainNode::createStructure):
              * runtime/StringObject.h:
              (JSC::StringObject::createStructure):
              * runtime/StringObjectThatMasqueradesAsUndefined.h:
              (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
              * runtime/StringPrototype.h:
              (JSC::StringPrototype::createStructure):
              * runtime/Structure.h:
              (JSC::Structure::create):
      2011-03-15  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              Make Structure creation require a JSGlobalData
              https://bugs.webkit.org/show_bug.cgi?id=56438
      
              Mechanical change to make all structure creation pass a JSGlobalData&.
      
              * JSRun.cpp:
              (JSGlueGlobalObject::JSGlueGlobalObject):
              (JSRun::JSRun):
              * JSRun.h:
              * JSUtils.cpp:
              (getThreadGlobalObject):
              * UserObjectImp.h:
              (UserObjectImp::createStructure):
      2011-03-15  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              Make Structure creation require a JSGlobalData
              https://bugs.webkit.org/show_bug.cgi?id=56438
      
              Mechanical change to make all structure creation use GlobalData
      
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::JSAudioConstructor::JSAudioConstructor):
              * bindings/js/JSAudioConstructor.h:
              (WebCore::JSAudioConstructor::createStructure):
              * bindings/js/JSDOMBinding.h:
              (WebCore::DOMObjectWithGlobalPointer::createStructure):
              (WebCore::DOMConstructorObject::createStructure):
              (WebCore::getDOMStructure):
              * bindings/js/JSDOMGlobalObject.h:
              (WebCore::JSDOMGlobalObject::createStructure):
              * bindings/js/JSDOMWindowBase.h:
              (WebCore::JSDOMWindowBase::createStructure):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::JSDOMWindowShell):
              (WebCore::JSDOMWindowShell::setWindow):
              * bindings/js/JSDOMWindowShell.h:
              (WebCore::JSDOMWindowShell::createStructure):
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::JSImageConstructor::JSImageConstructor):
              * bindings/js/JSImageConstructor.h:
              (WebCore::JSImageConstructor::createStructure):
              * bindings/js/JSImageDataCustom.cpp:
              (WebCore::toJS):
              * bindings/js/JSOptionConstructor.cpp:
              (WebCore::JSOptionConstructor::JSOptionConstructor):
              * bindings/js/JSOptionConstructor.h:
              (WebCore::JSOptionConstructor::createStructure):
              * bindings/js/JSWorkerContextBase.h:
              (WebCore::JSWorkerContextBase::createStructure):
              * bindings/js/WorkerScriptController.cpp:
              (WebCore::WorkerScriptController::initScript):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/c/CRuntimeObject.h:
              (JSC::Bindings::CRuntimeObject::createStructure):
              * bridge/c/c_instance.cpp:
              (JSC::Bindings::CRuntimeMethod::createStructure):
              * bridge/jni/jsc/JavaInstanceJSC.cpp:
              (JavaRuntimeMethod::createStructure):
              * bridge/jni/jsc/JavaRuntimeObject.h:
              (JSC::Bindings::JavaRuntimeObject::createStructure):
              * bridge/objc/ObjCRuntimeObject.h:
              (JSC::Bindings::ObjCRuntimeObject::createStructure):
              * bridge/objc/objc_instance.mm:
              (ObjCRuntimeMethod::createStructure):
              * bridge/objc/objc_runtime.h:
              (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
              * bridge/runtime_array.h:
              (JSC::RuntimeArray::createStructure):
              * bridge/runtime_method.h:
              (JSC::RuntimeMethod::createStructure):
              * bridge/runtime_object.h:
              (JSC::Bindings::RuntimeObject::createStructure):
      2011-03-15  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              Make Structure creation require a JSGlobalData
              https://bugs.webkit.org/show_bug.cgi?id=56438
      
              Mechanical change to make all Structure creation use a JSGlobalData&
      
              * Plugins/Hosted/ProxyInstance.mm:
              (WebKit::ProxyRuntimeMethod::createStructure):
              * Plugins/Hosted/ProxyRuntimeObject.h:
              (WebKit::ProxyRuntimeObject::createStructure):
      2011-03-15  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Geoffrey Garen.
      
              Make Structure creation require a JSGlobalData
              https://bugs.webkit.org/show_bug.cgi?id=56438
      
              Mechanical change to make all Structure creation use a JSGlobalData&.
      
              * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
              (WebKit::JSNPMethod::JSNPMethod):
              * WebProcess/Plugins/Netscape/JSNPMethod.h:
              (WebKit::JSNPMethod::createStructure):
              * WebProcess/Plugins/Netscape/JSNPObject.cpp:
              (WebKit::JSNPObject::JSNPObject):
              * WebProcess/Plugins/Netscape/JSNPObject.h:
              (WebKit::JSNPObject::createStructure):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@81272 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      90cf7d51
  24. 15 Mar, 2011 1 commit
  25. 14 Mar, 2011 2 commits
    • oliver@apple.com's avatar
      2011-03-11 Oliver Hunt <oliver@apple.com> · 9d4f0eca
      oliver@apple.com authored
              Reviewed by Gavin Barraclough.
      
              Ensure all values are correctly tagged in the registerfile
              https://bugs.webkit.org/show_bug.cgi?id=56214
      
              This patch makes sure that all JSCell pointers written to
              the registerfile are correctly tagged as JSCells, and replaces
              raw int usage with the immediate representation.
      
              For performance, register pressure, and general saneness reasons
              I've added abstractions for reading and writing the tag
              and payload of integer registers directly for the JSVALUE64
              encoding.
      
              * interpreter/Register.h:
              (JSC::Register::withInt):
              (JSC::Register::withCallee):
              (JSC::Register::operator=):
              (JSC::Register::i):
              (JSC::Register::activation):
              (JSC::Register::function):
              (JSC::Register::propertyNameIterator):
              (JSC::Register::scopeChain):
              * jit/JIT.h:
              * jit/JITCall.cpp:
              (JSC::JIT::compileOpCallInitializeCallFrame):
              (JSC::JIT::compileOpCallVarargs):
              (JSC::JIT::compileOpCall):
              * jit/JITCall32_64.cpp:
              (JSC::JIT::compileOpCallInitializeCallFrame):
              (JSC::JIT::compileOpCallVarargs):
              (JSC::JIT::compileOpCall):
              (JSC::JIT::compileOpCallSlowCase):
              * jit/JITInlineMethods.h:
              (JSC::JIT::emitPutToCallFrameHeader):
              (JSC::JIT::emitPutCellToCallFrameHeader):
              (JSC::JIT::emitPutIntToCallFrameHeader):
              * jit/JITOpcodes.cpp:
              (JSC::JIT::privateCompileCTINativeCall):
              (JSC::JIT::emit_op_get_pnames):
              (JSC::JIT::emit_op_next_pname):
              (JSC::JIT::emit_op_load_varargs):
              (JSC::JIT::emitSlow_op_load_varargs):
              * jit/JITOpcodes32_64.cpp:
              (JSC::JIT::privateCompileCTINativeCall):
              (JSC::JIT::emit_op_get_pnames):
              (JSC::JIT::emit_op_next_pname):
              * jit/JSInterfaceJIT.h:
              (JSC::JSInterfaceJIT::intPayloadFor):
              (JSC::JSInterfaceJIT::intTagFor):
              * jit/SpecializedThunkJIT.h:
              (JSC::SpecializedThunkJIT::returnJSValue):
              (JSC::SpecializedThunkJIT::returnDouble):
              (JSC::SpecializedThunkJIT::returnInt32):
              (JSC::SpecializedThunkJIT::returnJSCell):
      2011-03-11  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Gavin Barraclough.
      
              Ensure all values are correctly tagged in the registerfile
              https://bugs.webkit.org/show_bug.cgi?id=56214
      
              Make sure everything builds still.
      
              * bridge/c/c_class.cpp:
              * bridge/c/c_runtime.cpp:
              * bridge/jni/JavaMethod.cpp:
              * plugins/PluginViewNone.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@81040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9d4f0eca
    • steveblock@google.com's avatar
      2011-03-14 Steve Block <steveblock@google.com> · 7b928d24
      steveblock@google.com authored
              Reviewed by Oliver Hunt.
      
              JavaMethod.cpp does not compile with V8
              https://bugs.webkit.org/show_bug.cgi?id=56306
      
              Moved the ScopeChain.h include to JavaStringJSC.
      
              No new tests, build fix only.
      
              * bridge/jni/JavaMethod.cpp:
              * bridge/jni/jsc/JavaStringJSC.h
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@81036 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7b928d24
  26. 12 Mar, 2011 1 commit
    • loislo@chromium.org's avatar
      2011-03-12 Sheriff Bot <webkit.review.bot@gmail.com> · 03e7251c
      loislo@chromium.org authored
              Unreviewed, rolling out r80919.
              http://trac.webkit.org/changeset/80919
              https://bugs.webkit.org/show_bug.cgi?id=56251
      
              all windows bots failed to compile this change (Requested by
              loislo on #webkit).
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * bytecode/StructureStubInfo.cpp:
              * interpreter/Register.h:
              (JSC::Register::withInt):
              (JSC::Register::withCallee):
              (JSC::Register::operator=):
              (JSC::Register::i):
              (JSC::Register::activation):
              (JSC::Register::function):
              (JSC::Register::propertyNameIterator):
              (JSC::Register::scopeChain):
              * jit/JIT.h:
              * jit/JITCall.cpp:
              (JSC::JIT::compileOpCallInitializeCallFrame):
              (JSC::JIT::compileOpCallVarargs):
              (JSC::JIT::compileOpCall):
              * jit/JITCall32_64.cpp:
              (JSC::JIT::compileOpCallInitializeCallFrame):
              (JSC::JIT::compileOpCallVarargs):
              (JSC::JIT::compileOpCall):
              (JSC::JIT::compileOpCallSlowCase):
              * jit/JITInlineMethods.h:
              (JSC::JIT::emitPutToCallFrameHeader):
              * jit/JITOpcodes.cpp:
              (JSC::JIT::privateCompileCTINativeCall):
              (JSC::JIT::emit_op_get_pnames):
              (JSC::JIT::emit_op_next_pname):
              (JSC::JIT::emit_op_load_varargs):
              (JSC::JIT::emitSlow_op_load_varargs):
              * jit/JITOpcodes32_64.cpp:
              (JSC::JIT::privateCompileCTINativeCall):
              (JSC::JIT::emit_op_get_pnames):
              (JSC::JIT::emit_op_next_pname):
              * jit/JSInterfaceJIT.h:
              (JSC::JSInterfaceJIT::payloadFor):
              * jit/SpecializedThunkJIT.h:
              (JSC::SpecializedThunkJIT::returnJSValue):
              (JSC::SpecializedThunkJIT::returnDouble):
              (JSC::SpecializedThunkJIT::returnInt32):
              (JSC::SpecializedThunkJIT::returnJSCell):
              * runtime/ArgList.cpp:
              * runtime/DateConversion.cpp:
              * runtime/GCActivityCallbackCF.cpp:
              * runtime/Identifier.cpp:
              * runtime/JSActivation.h:
              (JSC::asActivation):
              * runtime/JSLock.cpp:
              * runtime/JSNumberCell.cpp:
              * runtime/JSObject.h:
              * runtime/JSPropertyNameIterator.h:
              * runtime/JSValue.h:
              * runtime/JSZombie.cpp:
              * runtime/MarkedBlock.cpp:
              * runtime/MarkedSpace.cpp:
              * runtime/PropertyNameArray.cpp:
              * runtime/ScopeChain.h:
              (JSC::ExecState::globalThisValue):
              * wtf/DateMath.cpp:
      2011-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
      
              Unreviewed, rolling out r80919.
              http://trac.webkit.org/changeset/80919
              https://bugs.webkit.org/show_bug.cgi?id=56251
      
              all windows bots failed to compile this change (Requested by
              loislo on #webkit).
      
              * bridge/c/c_class.cpp:
              * bridge/c/c_runtime.cpp:
              * bridge/jni/JavaMethod.cpp:
              * plugins/PluginViewNone.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@80938 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      03e7251c