1. 07 Apr, 2013 2 commits
    • ddkilzer@apple.com's avatar
      Remove the rest of SVG_DOM_OBJC_BINDINGS · 0cd46787
      ddkilzer@apple.com authored
      <http://webkit.org/b/114112>
      
      Reviewed by Geoffrey Garen.
      
      .:
      
      * Source/autotools/SetupWebKitFeatures.m4:
      * Source/cmake/WebKitFeatures.cmake:
      * Source/cmakeconfig.h.cmake:
      - Remove references to ENABLE_SVG_DOM_OBJC_BINDINGS.
      
      Source/JavaScriptCore:
      
      * Configurations/FeatureDefines.xcconfig:
      - Remove ENABLE_SVG_DOM_OBJC_BINDINGS macro.
      
      Source/WebCore:
      
      * Configurations/WebCore.xcconfig:
      - Remove EXCLUDED_SOURCE_FILE_NAMES_SVG_DOM_OBJC_BINDINGS.  Note
        that DOMHTMLIFrameElementPrivate.h should not have been in
        this list because the class contained methods other than just
        -getSVGDocument.
      
      * WebCore.xcodeproj/project.pbxproj:
      - Remove DOMHTMLFrameElementPrivate.h since the only method it
        contained was -[DOMHTMLFrameElement getSVGDocument], which was
        part of the SVG DOM Objective-C bindings.
      
      * bindings/objc/DOM.mm:
      (kitClass):
      * bindings/objc/DOMEvents.mm:
      (kitClass):
      * bindings/objc/ExceptionHandlers.mm:
      (WebCore::raiseDOMException):
      - Remove code in ENABLE(SVG_DOM_OBJC_BINDINGS).
      
      Source/WebKit/blackberry:
      
      * WebCoreSupport/AboutDataEnableFeatures.in:
      - Remove reference to SVG_DOM_OBJC_BINDINGS.
      
      Source/WebKit2:
      
      * Configurations/FeatureDefines.xcconfig:
      - Remove ENABLE_SVG_DOM_OBJC_BINDINGS macro.
      
      Source/WTF:
      
      * wtf/FeatureDefines.h:
      - Remove ENABLE_SVG_DOM_OBJC_BINDINGS macro.
      
      Tools:
      
      * Scripts/webkitperl/FeatureList.pm:
      - Remove --svg-dom-objc-bindings switch.
      * qmake/mkspecs/features/features.pri:
      - Remove reference to ENABLE_SVG_DOM_OBJC_BINDINGS.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0cd46787
    • oliver@apple.com's avatar
      Inspector should display information about non-object exceptions · 5683d16e
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114123
      
      Reviewed by Adele Peterson.
      
      Source/JavaScriptCore:
      
      Make sure we store the right stack information, even when throwing
      a primitive.
      
      * interpreter/CallFrame.h:
      (JSC::ExecState::clearSupplementaryExceptionInfo):
      (ExecState):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::addStackTraceIfNecessary):
      (JSC::Interpreter::throwException):
      
      Source/WebCore:
      
      Make use of the stack trace for line information when we're reporting
      an exception
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::reportException):
      
      LayoutTests:
      
      All these tests throw primitives as exceptions, and now they have source
      and line number information
      
      * fast/dom/exception-getting-event-handler-expected.txt:
      * fast/dom/javascript-url-exception-isolation-expected.txt:
      * fast/dom/nested-script-exceptions-expected.txt:
      * fast/events/onerror-no-constructor-expected.txt:
      * fast/events/window-onerror13-expected.txt:
      * fast/events/window-onerror16-expected.txt:
      * fast/events/window-onerror2-expected.txt:
      * fast/events/window-onerror8-expected.txt:
      * fast/js/uncaught-exception-line-number-expected.txt:
      * fast/sub-pixel/inline-block-with-padding-expected.txt:
      * platform/mac/fast/AppleScript/001-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5683d16e
  2. 06 Apr, 2013 10 commits
    • oliver@apple.com's avatar
      Unify the many and varied stack trace mechanisms, and make the result sane. · e47f99da
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114072
      
      Reviewed by Filip Pizlo.
      
      Source/JavaScriptCore:
      
      Makes JSC::StackFrame record the bytecode offset and other necessary data
      rather than requiring us to perform eager evaluation of the line number, etc.
      Then remove most of the users of retrieveLastCaller, as most of them were
      using it to create a stack trace in a fairly incomplete and inefficient way.
      
      StackFrame now also has a couple of helpers to get the line and column info.
      
      * API/JSContextRef.cpp:
      (JSContextCreateBacktrace):
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::emitDebugHook):
      * interpreter/Interpreter.cpp:
      (JSC):
      (JSC::Interpreter::dumpRegisters):
      (JSC::Interpreter::unwindCallFrame):
      (JSC::getBytecodeOffsetForCallFrame):
      (JSC::getCallerInfo):
      (JSC::StackFrame::line):
      (JSC::StackFrame::column):
      (JSC::StackFrame::expressionInfo):
      (JSC::StackFrame::toString):
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::addStackTraceIfNecessary):
      (JSC::Interpreter::retrieveCallerFromVMCode):
      * interpreter/Interpreter.h:
      (StackFrame):
      (Interpreter):
      * runtime/Error.cpp:
      (JSC::throwError):
      * runtime/JSGlobalData.h:
      (JSC):
      (JSGlobalData):
      * runtime/JSGlobalObject.cpp:
      (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope):
      
      Source/WebCore:
      
      Now that we've fleshed out the StackFrames from Interpreter::getStackTrace
      WebCore can just ask us for a stack trace rather than implementing its own
      stack walking.
      
      * bindings/js/ScriptCallStackFactory.cpp:
      (WebCore::createScriptCallStack):
      * inspector/ScriptCallFrame.cpp:
      (WebCore::ScriptCallFrame::isEqual):
      * inspector/ScriptCallFrame.h:
      (ScriptCallFrame):
      (WebCore::ScriptCallFrame::columnNumber):
      
      Tools:
      
      The commandline jsc executable no longer requires arguments, so
      I've made run-jsc work without them.
      
      * Scripts/run-jsc:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147858 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e47f99da
    • weinig@apple.com's avatar
      Removed v8 bindings hooks from IDL files · 007c2427
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114091
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2013-04-06
      Reviewed by Anders Carlsson and Sam Weinig.
      
      Source/JavaScriptCore: 
      
      * heap/HeapStatistics.h:
      
      Source/WebCore: 
      
      * Modules/encryptedmedia/MediaKeySession.idl:
      * Modules/filesystem/DOMWindowFileSystem.idl:
      * Modules/filesystem/WorkerContextFileSystem.idl:
      * Modules/gamepad/NavigatorGamepad.idl:
      * Modules/geolocation/NavigatorGeolocation.idl:
      * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
      * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
      * Modules/mediastream/DOMWindowMediaStream.idl:
      * Modules/mediastream/NavigatorMediaStream.idl:
      * Modules/notifications/DOMWindowNotifications.idl:
      * Modules/notifications/NotificationCenter.idl:
      * Modules/notifications/WorkerContextNotifications.idl:
      * Modules/quota/DOMWindowQuota.idl:
      * Modules/speech/DOMWindowSpeech.idl:
      * Modules/webaudio/AudioBufferSourceNode.idl:
      * Modules/webaudio/AudioContext.idl:
      * Modules/webaudio/AudioParam.idl:
      * Modules/webaudio/DOMWindowWebAudio.idl:
      * Modules/webdatabase/DOMWindowWebDatabase.idl:
      * Modules/webdatabase/WorkerContextWebDatabase.idl:
      * Modules/websockets/DOMWindowWebSocket.idl:
      * Modules/websockets/WorkerContextWebSocket.idl:
      * bindings/js/JSDOMBinding.cpp:
      * bindings/js/ScriptController.h:
      (ScriptController):
      * bindings/scripts/test/TestNode.idl:
      * bindings/scripts/test/TestObj.idl:
      * css/CSSFontFaceLoadEvent.idl:
      * css/CSSHostRule.idl:
      * css/CSSRule.idl:
      * css/CSSRuleList.idl:
      * css/CSSStyleDeclaration.idl:
      * css/CSSStyleSheet.idl:
      * css/CSSValue.idl:
      * css/FontLoader.idl:
      * css/StyleSheet.idl:
      * css/WebKitCSSRegionRule.idl:
      * dom/Clipboard.idl:
      * dom/CustomElementConstructor.idl:
      * dom/CustomEvent.idl:
      * dom/DOMNamedFlowCollection.idl:
      * dom/DOMStringMap.idl:
      * dom/DataTransferItemList.idl:
      * dom/Document.idl:
      * dom/DocumentFragment.idl:
      * dom/Element.idl:
      * dom/Event.idl:
      * dom/EventTarget.idl:
      * dom/MessageChannel.idl:
      * dom/MouseEvent.idl:
      * dom/MutationRecord.idl:
      * dom/NamedNodeMap.idl:
      * dom/Node.idl:
      * dom/NodeList.idl:
      * dom/RequestAnimationFrameCallback.idl:
      * dom/ShadowRoot.idl:
      * dom/Text.idl:
      * history/HistoryItem.cpp:
      (WebCore::HistoryItem::encodeBackForwardTreeNode):
      (WebCore::HistoryItem::decodeBackForwardTree):
      * html/DOMSettableTokenList.idl:
      * html/DOMTokenList.idl:
      * html/HTMLAllCollection.idl:
      * html/HTMLAppletElement.idl:
      * html/HTMLCollection.idl:
      * html/HTMLDialogElement.idl:
      * html/HTMLDivElement.idl:
      * html/HTMLDocument.idl:
      * html/HTMLElement.idl:
      * html/HTMLEmbedElement.idl:
      * html/HTMLFormControlsCollection.idl:
      * html/HTMLFormElement.idl:
      * html/HTMLImageElement.idl:
      * html/HTMLInputElement.idl:
      * html/HTMLMediaElement.idl:
      * html/HTMLObjectElement.idl:
      * html/HTMLOptionsCollection.idl:
      * html/HTMLSelectElement.idl:
      * html/HTMLSpanElement.idl:
      * html/HTMLStyleElement.idl:
      * html/HTMLTemplateElement.idl:
      * html/HTMLTrackElement.idl:
      * html/HTMLUnknownElement.idl:
      * html/MediaKeyError.idl:
      * html/MediaKeyEvent.idl:
      * html/MicroDataItemValue.idl:
      * html/canvas/CanvasRenderingContext2D.idl:
      * html/canvas/DOMPath.idl:
      * html/shadow/HTMLContentElement.idl:
      * html/shadow/HTMLShadowElement.idl:
      * html/track/TextTrack.idl:
      * inspector/InjectedScriptHost.idl:
      * inspector/InspectorIndexedDBAgent.cpp:
      (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
      (WebCore::InspectorIndexedDBAgent::requestDatabase):
      (WebCore::InspectorIndexedDBAgent::requestData):
      (WebCore::InspectorIndexedDBAgent::clearObjectStore):
      (WebCore):
      * loader/EmptyClients.h:
      (EmptyFrameLoaderClient):
      * loader/FrameLoaderClient.h:
      (FrameLoaderClient):
      * page/Console.idl:
      * page/DOMWindow.idl:
      * page/DOMWindowPagePopup.idl:
      * page/History.idl:
      * page/Location.idl:
      * platform/graphics/skia/PatternSkia.cpp:
      (WebCore::Pattern::platformDestroy):
      (WebCore::Pattern::platformPattern):
      * testing/Internals.cpp:
      (WebCore::Internals::serializeObject):
      (WebCore::Internals::deserializeBuffer):
      
      Source/WTF: 
      
      * wtf/ArrayBuffer.h:
      (WTF):
      (WTF::ArrayBufferContents::ArrayBufferContents):
      (WTF::ArrayBufferContents::transfer):
      (ArrayBufferContents):
      (ArrayBuffer):
      (WTF::ArrayBufferContents::~ArrayBufferContents):
      * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147857 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      007c2427
    • roger_fong@apple.com's avatar
      Windows VS2010 build fix. · e14fa4ce
      roger_fong@apple.com authored
      * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147856 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e14fa4ce
    • zandobersek@gmail.com's avatar
      Remove the remaining PLATFORM(CHROMIUM) guard in JavaScriptCore · 13f1d56e
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114082
      
      Reviewed by Ryosuke Niwa.
      
      * runtime/JSExportMacros.h: Remove the remaining PLATFORM(CHROMIUM) guard.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147852 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      13f1d56e
    • commit-queue@webkit.org's avatar
      --minimal build fails with error: control reaches end of non-void function · 89f20020
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=114085
      
      Patch by Ed Bartosh <bartosh@gmail.com> on 2013-04-06
      Reviewed by Oliver Hunt.
      
      * interpreter/Interpreter.cpp: return 0 if JIT is not enabled
      (JSC::getBytecodeOffsetForCallFrame):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147851 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      89f20020
    • ggaren@apple.com's avatar
      Try to fix the Windows build. · 415db057
      ggaren@apple.com authored
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
      Added back a symbol that is exported.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147849 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      415db057
    • ggaren@apple.com's avatar
      Try to fix the Windows build. · 2959d550
      ggaren@apple.com authored
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
      Removed symbols that aren't exported.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2959d550
    • ggaren@apple.com's avatar
      Rolled out 147820 and 147818 because they caused plugins tests to ASSERT · 51a9926e
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114094
      
      Reviewed by Anders Carlsson.
      
      Source/JavaScriptCore: 
      
      * API/JSContextRef.cpp:
      (JSContextCreateBacktrace):
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::emitDebugHook):
      * interpreter/Interpreter.cpp:
      (JSC):
      (JSC::Interpreter::dumpRegisters):
      (JSC::Interpreter::unwindCallFrame):
      (JSC::getLineNumberForCallFrame):
      (JSC::getCallerInfo):
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::addStackTraceIfNecessary):
      (JSC::Interpreter::retrieveCallerFromVMCode):
      * interpreter/Interpreter.h:
      (StackFrame):
      (JSC::StackFrame::toString):
      (JSC::StackFrame::friendlyLineNumber):
      (Interpreter):
      * runtime/Error.cpp:
      (JSC::throwError):
      * runtime/JSGlobalData.h:
      (JSC):
      (JSGlobalData):
      * runtime/JSGlobalObject.cpp:
      (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope):
      
      Source/WebCore: 
      
      * bindings/js/ScriptCallStackFactory.cpp:
      (WebCore::createScriptCallStack):
      * inspector/ScriptCallFrame.cpp:
      (WebCore::ScriptCallFrame::isEqual):
      * inspector/ScriptCallFrame.h:
      (ScriptCallFrame):
      (WebCore::ScriptCallFrame::lineNumber):
      
      Tools: 
      
      * Scripts/run-jsc:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      51a9926e
    • paroga@webkit.org's avatar
      Unreviewed build fix after r146932. · c653b7ea
      paroga@webkit.org authored
      * profiler/ProfilerDatabase.cpp:
      (Profiler):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147842 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c653b7ea
    • paroga@webkit.org's avatar
      Do not call getenv() on Windows CE where it does not exist. · ec39ef3a
      paroga@webkit.org authored
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec39ef3a
  3. 05 Apr, 2013 11 commits
    • benjamin@webkit.org's avatar
      Second attempt to fix the Windows bot · 9ae791c1
      benjamin@webkit.org authored
      Unreviewed.
      
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
      * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9ae791c1
    • benjamin@webkit.org's avatar
      Attempt to fix the Windows bot · d483d10a
      benjamin@webkit.org authored
      Unreviewed.
      
      Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-04-05
      
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
      * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
      r147825 removed the symbol for nullptr_t. Add it back.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d483d10a
    • roger_fong@apple.com's avatar
      Build fix. · bfd5b21c
      roger_fong@apple.com authored
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
      * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bfd5b21c
    • oliver@apple.com's avatar
      Build fix. · 1caa93af
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1caa93af
    • oliver@apple.com's avatar
      Unify the many and varied stack trace mechanisms, and make the result sane. · 3980d396
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114072
      
      Reviewed by Filip Pizlo.
      
      Source/JavaScriptCore:
      
      Makes JSC::StackFrame record the bytecode offset and other necessary data
      rather than requiring us to perform eager evaluation of the line number, etc.
      Then remove most of the users of retrieveLastCaller, as most of them were
      using it to create a stack trace in a fairly incomplete and inefficient way.
      
      StackFrame now also has a couple of helpers to get the line and column info.
      
      * API/JSContextRef.cpp:
      (JSContextCreateBacktrace):
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::emitDebugHook):
      * interpreter/Interpreter.cpp:
      (JSC):
      (JSC::Interpreter::dumpRegisters):
      (JSC::Interpreter::unwindCallFrame):
      (JSC::getBytecodeOffsetForCallFrame):
      (JSC::getCallerInfo):
      (JSC::StackFrame::line):
      (JSC::StackFrame::column):
      (JSC::StackFrame::expressionInfo):
      (JSC::StackFrame::toString):
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::addStackTraceIfNecessary):
      (JSC::Interpreter::retrieveCallerFromVMCode):
      * interpreter/Interpreter.h:
      (StackFrame):
      (Interpreter):
      * runtime/Error.cpp:
      (JSC::throwError):
      * runtime/JSGlobalData.h:
      (JSC):
      (JSGlobalData):
      * runtime/JSGlobalObject.cpp:
      (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope):
      
      Source/WebCore:
      
      Now that we've fleshed out the StackFrames from Interpreter::getStackTrace
      WebCore can just ask us for a stack trace rather than implementing its own
      stack walking.
      
      * bindings/js/ScriptCallStackFactory.cpp:
      (WebCore::createScriptCallStack):
      * inspector/ScriptCallFrame.cpp:
      (WebCore::ScriptCallFrame::isEqual):
      * inspector/ScriptCallFrame.h:
      (ScriptCallFrame):
      (WebCore::ScriptCallFrame::columnNumber):
      
      Tools:
      
      The commandline jsc executable no longer requires arguments, so
      I've made run-jsc work without them.
      
      * Scripts/run-jsc:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147818 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3980d396
    • mhahnenberg@apple.com's avatar
      tryCacheGetByID sets StructureStubInfo accessType to an incorrect value · d0be74de
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114068
      
      Reviewed by Geoffrey Garen.
      
      In the case where we have a non-Value cacheable property, we set the StructureStubInfo accessType to 
      get_by_id_self, but then we don't patch self and instead patch in a get_by_id_self_fail. This leads to 
      incorrect profiling data so when the DFG compiles the function, it uses a GetByOffset rather than a GetById, 
      which leads to loading a GetterSetter directly out of an object.
      
      Source/JavaScriptCore: 
      
      * jit/JITStubs.cpp:
      (JSC::tryCacheGetByID):
      (JSC::DEFINE_STUB_FUNCTION):
      
      LayoutTests: 
      
      * fast/js/jit-set-profiling-access-type-only-for-get-by-id-self-expected.txt: Added.
      * fast/js/jit-set-profiling-access-type-only-for-get-by-id-self.html: Added.
      * fast/js/script-tests/jit-set-profiling-access-type-only-for-get-by-id-self.js: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147816 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d0be74de
    • fpizlo@apple.com's avatar
      If CallFrame::trueCallFrame() knows that it's about to read garbage instead of... · e62f04d9
      fpizlo@apple.com authored
      If CallFrame::trueCallFrame() knows that it's about to read garbage instead of a valid CodeOrigin/InlineCallFrame, then it should give up and return 0 and all callers should be robust against this
      https://bugs.webkit.org/show_bug.cgi?id=114062
      
      Reviewed by Oliver Hunt.
      
      * bytecode/CodeBlock.h:
      (JSC::CodeBlock::canGetCodeOrigin):
      (CodeBlock):
      * interpreter/CallFrame.cpp:
      (JSC::CallFrame::trueCallFrame):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::getStackTrace):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147798 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e62f04d9
    • ggaren@apple.com's avatar
      Made USE(JSC) unconditional · 95708e2b
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114058
      
      Reviewed by Anders Carlsson.
      
      ../JavaScriptCore: 
      
      * config.h:
      
      ../ThirdParty: 
      
      * gtest/include/gtest/internal/gtest-port.h:
      
      ../WebCore: 
      
      * Modules/webdatabase/Database.cpp:
      * bindings/ScriptControllerBase.cpp:
      (WebCore::ScriptController::executeIfJavaScriptURL):
      * bindings/js/JavaScriptCallFrame.cpp:
      * bindings/js/JavaScriptCallFrame.h:
      * bindings/scripts/InFilesCompiler.pm:
      (generateHeadersHeader):
      * css/MediaQueryListListener.cpp:
      (WebCore::MediaQueryListListener::queryChanged):
      * dom/ContainerNode.cpp:
      (WebCore::dispatchChildRemovalEvents):
      * dom/EventListener.h:
      (EventListener):
      (WebCore::EventListener::visitJSFunction):
      * dom/EventTarget.h:
      (EventTarget):
      (WebCore):
      (WebCore::EventTarget::visitJSEventListeners):
      * dom/Node.cpp:
      * dom/Node.h:
      * dom/ScriptExecutionContext.cpp:
      (WebCore):
      (WebCore::ScriptExecutionContext::globalData):
      * dom/ScriptExecutionContext.h:
      (ScriptExecutionContext):
      * html/HTMLCanvasElement.cpp:
      (WebCore::HTMLCanvasElement::createImageBuffer):
      * html/HTMLImageLoader.cpp:
      (WebCore::HTMLImageLoader::notifyFinished):
      * inspector/InjectedScriptHost.h:
      (InjectedScriptHost):
      (WebCore::InjectedScriptHost::evaluateReturnsEvalFunction):
      * inspector/InspectorInstrumentation.cpp:
      (WebCore):
      (WebCore::InspectorInstrumentation::didCommitLoadImpl):
      * page/Frame.cpp:
      * page/Settings.cpp:
      (WebCore):
      (WebCore::Settings::shouldRespectPriorityInCSSAttributeSetters):
      * page/Settings.h:
      (Settings):
      * plugins/PluginView.cpp:
      (WebCore::PluginView::start):
      (WebCore::PluginView::stop):
      (WebCore::PluginView::performRequest):
      (WebCore::PluginView::npObject):
      (WebCore):
      (WebCore::PluginView::bindingInstance):
      (WebCore::PluginView::privateBrowsingStateChanged):
      * plugins/PluginView.h:
      (PluginView):
      * plugins/PluginViewBase.h:
      (PluginViewBase):
      (WebCore::PluginViewBase::scriptObject):
      * plugins/PluginViewNone.cpp:
      (WebCore):
      (WebCore::PluginView::bindingInstance):
      * plugins/qt/PluginViewQt.cpp:
      (WebCore::PluginView::dispatchNPEvent):
      (WebCore::PluginView::setNPWindowIfNeeded):
      * xml/XMLHttpRequest.cpp:
      (WebCore::XMLHttpRequest::dropProtection):
      
      ../WebKit/efl: 
      
      * ewk/ewk_frame.cpp:
      (ewk_frame_script_execute):
      
      ../WebKit/qt: 
      
      * Api/qwebscriptworld.cpp:
      (QWebScriptWorld::QWebScriptWorld):
      
      ../WebKit2: 
      
      * Shared/linux/WebMemorySamplerLinux.cpp:
      (WebKit::WebMemorySampler::sampleWebKit):
      * config.h:
      
      ../WTF: 
      
      * wtf/ThreadRestrictionVerifier.h:
      (WTF):
      * wtf/WTFThreadData.cpp:
      (WTF::WTFThreadData::WTFThreadData):
      (WTF::WTFThreadData::~WTFThreadData):
      * wtf/WTFThreadData.h:
      (WTFThreadData):
      * wtf/text/StringImpl.cpp:
      (WTF::StringImpl::~StringImpl):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147795 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      95708e2b
    • fpizlo@apple.com's avatar
      Unreviewed, rolling out http://trac.webkit.org/changeset/147729 · 09805858
      fpizlo@apple.com authored
      It's causing a bunch of breakage on some more strict compilers:
      <inline asm>:1267:2: error: ambiguous instructions require an explicit suffix (could be 'ficomps', or 'ficompl')
      
      * offlineasm/x86.rb:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147794 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      09805858
    • roger_fong@apple.com's avatar
      Unreviewed. More VS2010 solution makefile fixes. · 76a2eba1
      roger_fong@apple.com authored
      <rdar://problem/13588964>
      
      * WTF.vcxproj/WTF.make:
      * JavaScriptCore.vcxproj/JavaScriptCore.make:
      * WebCore.vcxproj/WebCore.make:
      * WebKit.vcxproj/WebKit.make:
      * win/tools/WinTools.make:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      76a2eba1
    • allan.jensen@digia.com's avatar
      LLint should be able to use x87 instead of SSE for floating pointer · ea1f642c
      allan.jensen@digia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=112239
      
      Reviewed by Filip Pizlo.
      
      Implements LLInt floating point operations in x87, to ensure we support
      x86 without SSE2.
      
      X86 (except 64bit) now defaults to using x87 instructions in order to
      support all 32bit x86 back to i686. The implementation uses the fucomi
      instruction from i686 which sets the new minimum.
      
      * offlineasm/x86.rb:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147729 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ea1f642c
  4. 04 Apr, 2013 7 commits
    • ch.dumez@sisa.samsung.com's avatar
      Unreviewed EFL build fix. · e30151a0
      ch.dumez@sisa.samsung.com authored
      We had undefined reference to `JSC::CodeOrigin::maximumBytecodeIndex'.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::findClosureCallForReturnPC):
      (JSC::CodeBlock::bytecodeOffset):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147690 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e30151a0
    • ggaren@apple.com's avatar
      Stop pretending that statements return a value · d786e6b6
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=113969
      
      Reviewed by Oliver Hunt.
      
      Expressions have an intrinsic value, which they return to their parent
      in the AST.
      
      Statements just execute for effect in sequence.
      
      This patch moves emitBytecode into the ExpressionNode and StatementNode
      subclasses, and changes the SatementNode subclass to return void. This
      eliminates some cruft where we used to return 0, or try to save a bogus
      register and return it, as if a statement had a consuming parent in the
      AST.
      
      * bytecompiler/BytecodeGenerator.h:
      (JSC::BytecodeGenerator::emitNode):
      (BytecodeGenerator):
      (JSC::BytecodeGenerator::emitNodeInConditionContext):
      * bytecompiler/NodesCodegen.cpp:
      (JSC::ConstStatementNode::emitBytecode):
      (JSC::BlockNode::emitBytecode):
      (JSC::EmptyStatementNode::emitBytecode):
      (JSC::DebuggerStatementNode::emitBytecode):
      (JSC::ExprStatementNode::emitBytecode):
      (JSC::VarStatementNode::emitBytecode):
      (JSC::IfNode::emitBytecode):
      (JSC::IfElseNode::emitBytecode):
      (JSC::DoWhileNode::emitBytecode):
      (JSC::WhileNode::emitBytecode):
      (JSC::ForNode::emitBytecode):
      (JSC::ForInNode::emitBytecode):
      (JSC::ContinueNode::emitBytecode):
      (JSC::BreakNode::emitBytecode):
      (JSC::ReturnNode::emitBytecode):
      (JSC::WithNode::emitBytecode):
      (JSC::CaseClauseNode::emitBytecode):
      (JSC::CaseBlockNode::emitBytecodeForBlock):
      (JSC::SwitchNode::emitBytecode):
      (JSC::LabelNode::emitBytecode):
      (JSC::ThrowNode::emitBytecode):
      (JSC::TryNode::emitBytecode):
      (JSC::ScopeNode::emitStatementsBytecode):
      (JSC::ProgramNode::emitBytecode):
      (JSC::EvalNode::emitBytecode):
      (JSC::FunctionBodyNode::emitBytecode):
      (JSC::FuncDeclNode::emitBytecode):
      * parser/NodeConstructors.h:
      (JSC::PropertyListNode::PropertyListNode):
      (JSC::ArgumentListNode::ArgumentListNode):
      * parser/Nodes.h:
      (Node):
      (ExpressionNode):
      (StatementNode):
      (ConstStatementNode):
      (BlockNode):
      (EmptyStatementNode):
      (DebuggerStatementNode):
      (ExprStatementNode):
      (VarStatementNode):
      (IfNode):
      (IfElseNode):
      (DoWhileNode):
      (WhileNode):
      (ForNode):
      (ForInNode):
      (ContinueNode):
      (BreakNode):
      (ReturnNode):
      (WithNode):
      (LabelNode):
      (ThrowNode):
      (TryNode):
      (ProgramNode):
      (EvalNode):
      (FunctionBodyNode):
      (FuncDeclNode):
      (CaseBlockNode):
      (SwitchNode):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147677 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d786e6b6
    • oliver@apple.com's avatar
      Exception stack unwinding doesn't handle inline callframes correctly · 49a2c14b
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=113952
      
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore:
      
      The basic problem here is that the exception stack unwinding was
      attempting to be "clever" and avoid doing a correct stack walk
      as it "knew" inline callframes couldn't have exception handlers.
      
      This used to be safe as the exception handling machinery was
      designed to fail gently and just claim that no handler existed.
      This was "safe" and even "correct" inasmuch as we currently
      don't run any code with exception handlers through the dfg.
      
      This patch fixes the logic by simply making everything uniformly
      use the safe stack walking machinery, and making the correct
      boundary checks occur everywhere that they should.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::findClosureCallForReturnPC):
      (JSC::CodeBlock::bytecodeOffset):
      * interpreter/Interpreter.cpp:
      (JSC):
      (JSC::Interpreter::dumpRegisters):
      (JSC::Interpreter::unwindCallFrame):
      (JSC::getCallerInfo):
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::retrieveCallerFromVMCode):
      
      LayoutTests:
      
      Yay tests!
      
      * fast/js/js-correct-exception-handler-expected.txt: Added.
      * fast/js/js-correct-exception-handler.html: Added.
      * fast/js/script-tests/js-correct-exception-handler.js: Added.
      (throwEventually):
      (f.g):
      (f):
      (test):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147670 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      49a2c14b
    • ggaren@apple.com's avatar
      Removed a defunct comment · e9150c77
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=113948
      
      Reviewed by Oliver Hunt.
      
      This is also a convenient way to test the EWS.
      
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e9150c77
    • mrobinson@webkit.org's avatar
      [GTK] Remove the gyp build · bf36d591
      mrobinson@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=113942
      
      Reviewed by Gustavo Noronha Silva.
      
      Source/JavaScriptCore:
      
      * JavaScriptCore.gyp/JavaScriptCoreGTK.gyp: Removed.
      * JavaScriptCore.gyp/redirect-stdout.sh: Removed.
      
      Source/ThirdParty/ANGLE:
      
      * ANGLE.gyp/ANGLE.gyp: Removed.
      * ANGLE.gypi: Removed.
      
      Source/WebCore:
      
      * WebCore.gyp/WebCoreGTK.gyp: Removed.
      
      Source/WebKit/gtk:
      
      * gyp/Configuration.gypi.in: Removed.
      * gyp/Dependencies.gyp: Removed.
      * gyp/GNUmakefile: Removed.
      * gyp/autogen.sh: Removed.
      * gyp/configure.ac: Removed.
      * gyp/run-gyp: Removed.
      
      Source/WTF:
      
      * WTF.gyp/WTFGTK.gyp: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bf36d591
    • ggaren@apple.com's avatar
      Simplified bytecode generation by merging prefix and postfix nodes · 20c0b6c5
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=113925
      
      Reviewed by Filip Pizlo.
      
      PostfixNode now inherits from PrefixNode, so when we detect that we're
      in a context where postifx and prefix are equivalent, PostFixNode can
      just call through to PrefixNode codegen, instead of duplicating the
      logic.
      
      * bytecompiler/NodesCodegen.cpp:
      (JSC::PostfixNode::emitResolve):
      (JSC::PostfixNode::emitBracket):
      (JSC::PostfixNode::emitDot):
      * parser/NodeConstructors.h:
      (JSC::PostfixNode::PostfixNode):
      * parser/Nodes.h:
      (JSC):
      (PrefixNode):
      (PostfixNode):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147658 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      20c0b6c5
    • abecsi@webkit.org's avatar
      Fix the build with GCC 4.8 · 87c72bed
      abecsi@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=113147
      
      Reviewed by Allan Sandfeld Jensen.
      
      Source/JavaScriptCore:
      
      Initialize JSObject* exception to suppress warnings that make
      the build fail because of -Werror=maybe-uninitialized.
      
      * runtime/Executable.cpp:
      (JSC::FunctionExecutable::compileForCallInternal):
      (JSC::FunctionExecutable::compileForConstructInternal):
      
      Source/WTF:
      
      Disable diagnostic warning -Wunused-local-typedefs for GCC 4.8
      since dummy typedefs are commonly used in the codebase.
      
      * wtf/Compiler.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147640 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      87c72bed
  5. 03 Apr, 2013 1 commit
    • mhahnenberg@apple.com's avatar
      get_by_pname can become confused when iterating over objects with static properties · b27d608a
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=113831
      
      Reviewed by Geoffrey Garen.
      
      get_by_pname doesn't take static properties into account when using a JSPropertyNameIterator to directly 
      access an object's backing store. One way to fix this is to not cache any properties when iterating over 
      objects with static properties. This patch fixes the bug that was originally reported on swisscom.ch.
      
      Source/JavaScriptCore: 
      
      * runtime/JSObject.cpp:
      (JSC::JSObject::getOwnNonIndexPropertyNames):
      * runtime/JSPropertyNameIterator.cpp:
      (JSC::JSPropertyNameIterator::create):
      * runtime/PropertyNameArray.h:
      (JSC::PropertyNameArray::PropertyNameArray):
      (JSC::PropertyNameArray::numCacheableSlots):
      (JSC::PropertyNameArray::setNumCacheableSlots):
      (PropertyNameArray):
      
      LayoutTests: 
      
      * fast/js/dom-static-property-for-in-iteration-expected.txt: Added.
      * fast/js/dom-static-property-for-in-iteration.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147570 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b27d608a
  6. 02 Apr, 2013 2 commits
    • ggaren@apple.com's avatar
      DFG should compile a little sooner · f0193982
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=113835
      
      Unreviewed.
      
      Rolled out r147511 because it was based on incorrect performance
      measurement.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::optimizationThresholdScalingFactor):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147514 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f0193982
    • ggaren@apple.com's avatar
      DFG should compile a little sooner · 1d5ceb16
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=113835
      
      Reviewed by Michael Saboff.
      
      2% speedup on SunSpider.
      
      2% speedup on JSRegress.
      
      Neutral on Octane, v8, and Kraken.
      
      The worst-hit single sub-test is kraken-stanford-crypto-ccm.js, which gets
      18% slower. Since Kraken is neutral overall in its preferred mean, I
      think that's OK for now.
      
      (Our array indexing speculation fails pathologically on
      kraken-stanford-crypto-ccm.js. Compiling sooner is a regression because
      it triggers those failures sooner. I'm going to file some follow-up bugs
      explaining how to fix our speculations on this sub-test, at which point
      compiling earlier should become a slight speedup on Kraken overall.)
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::optimizationThresholdScalingFactor): I experimented
      with a few different options, including reducing the coefficient 'a'.
      A simple linear reduction on instruction count worked best.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147511 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1d5ceb16
  7. 01 Apr, 2013 7 commits