1. 01 Oct, 2013 3 commits
  2. 30 Sep, 2013 12 commits
    • weinig@apple.com's avatar
      Remove support for DOMFileSystem · 7df82b33
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122137
      
      Reviewed by Anders Carlsson.
      
      .: 
      
      * Source/autotools/SetupWebKitFeatures.m4:
      * Source/cmake/OptionsBlackBerry.cmake:
      * Source/cmake/WebKitFeatures.cmake:
      * Source/cmakeconfig.h.cmake:
      
      Source/JavaScriptCore: 
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebCore: 
      
      * Files elided *
      
      Source/WebKit/blackberry: 
      
      * Api/WebPage.cpp:
      (BlackBerry::WebKit::WebPagePrivate::init):
      (BlackBerry::WebKit::WebPage::clearWebFileSystem):
      * WebCoreSupport/AboutDataEnableFeatures.in:
      
      Source/WebKit/efl: 
      
      * ewk/ewk_settings.cpp:
      (ewk_settings_file_system_path_set):
      
      Source/WebKit/mac: 
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit2: 
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WTF: 
      
      * wtf/FeatureDefines.h:
      
      Tools: 
      
      * Scripts/webkitperl/FeatureList.pm:
      * Scripts/webkitpy/style/checkers/cpp.py:
      (check_spacing):
      * Scripts/webkitpy/style/checkers/cpp_unittest.py:
      (CppStyleTest.test_spacing_for_binary_ops):
      * qmake/mkspecs/features/features.pri:
      
      LayoutTests: 
      
      * fast/dom/MutationObserver/filesystem-callback-delivery-expected.txt: Removed.
      * fast/dom/MutationObserver/filesystem-callback-delivery.html: Removed.
      * fast/filesystem: Removed.
      * fast/filesystem/async-operations-expected.txt: Removed.
      * fast/filesystem/async-operations.html: Removed.
      * fast/filesystem/cross-filesystem-op-expected.txt: Removed.
      * fast/filesystem/cross-filesystem-op.html: Removed.
      * fast/filesystem/directory-entry-to-uri-expected.txt: Removed.
      * fast/filesystem/directory-entry-to-uri.html: Removed.
      * fast/filesystem/entry-points-missing-arguments-expected.txt: Removed.
      * fast/filesystem/entry-points-missing-arguments.html: Removed.
      * fast/filesystem/file-after-reload-crash-expected.txt: Removed.
      * fast/filesystem/file-after-reload-crash.html: Removed.
      * fast/filesystem/file-entry-to-uri-expected.txt: Removed.
      * fast/filesystem/file-entry-to-uri.html: Removed.
      * fast/filesystem/file-from-file-entry-expected.txt: Removed.
      * fast/filesystem/file-from-file-entry.html: Removed.
      * fast/filesystem/file-metadata-after-write-expected.txt: Removed.
      * fast/filesystem/file-metadata-after-write.html: Removed.
      * fast/filesystem/file-writer-abort-continue-expected.txt: Removed.
      * fast/filesystem/file-writer-abort-continue.html: Removed.
      * fast/filesystem/file-writer-abort-depth-expected.txt: Removed.
      * fast/filesystem/file-writer-abort-depth.html: Removed.
      * fast/filesystem/file-writer-abort-expected.txt: Removed.
      * fast/filesystem/file-writer-abort.html: Removed.
      * fast/filesystem/file-writer-empty-blob-expected.txt: Removed.
      * fast/filesystem/file-writer-empty-blob.html: Removed.
      * fast/filesystem/file-writer-events-expected.txt: Removed.
      * fast/filesystem/file-writer-events.html: Removed.
      * fast/filesystem/file-writer-gc-blob-expected.txt: Removed.
      * fast/filesystem/file-writer-gc-blob.html: Removed.
      * fast/filesystem/file-writer-truncate-extend-expected.txt: Removed.
      * fast/filesystem/file-writer-truncate-extend.html: Removed.
      * fast/filesystem/file-writer-write-overlapped-expected.txt: Removed.
      * fast/filesystem/file-writer-write-overlapped.html: Removed.
      * fast/filesystem/filesystem-missing-arguments-expected.txt: Removed.
      * fast/filesystem/filesystem-missing-arguments.html: Removed.
      * fast/filesystem/filesystem-no-callback-null-ptr-crash-expected.txt: Removed.
      * fast/filesystem/filesystem-no-callback-null-ptr-crash.html: Removed.
      * fast/filesystem/filesystem-reference-expected.txt: Removed.
      * fast/filesystem/filesystem-reference.html: Removed.
      * fast/filesystem/filesystem-unserializable-expected.txt: Removed.
      * fast/filesystem/filesystem-unserializable.html: Removed.
      * fast/filesystem/filesystem-uri-origin-expected.txt: Removed.
      * fast/filesystem/filesystem-uri-origin.html: Removed.
      * fast/filesystem/flags-passing-expected.txt: Removed.
      * fast/filesystem/flags-passing.html: Removed.
      * fast/filesystem/input-access-entries-expected.txt: Removed.
      * fast/filesystem/input-access-entries.html: Removed.
      * fast/filesystem/not-enough-arguments-expected.txt: Removed.
      * fast/filesystem/not-enough-arguments.html: Removed.
      * fast/filesystem/op-copy-expected.txt: Removed.
      * fast/filesystem/op-copy.html: Removed.
      * fast/filesystem/op-get-entry-expected.txt: Removed.
      * fast/filesystem/op-get-entry.html: Removed.
      * fast/filesystem/op-get-metadata-expected.txt: Removed.
      * fast/filesystem/op-get-metadata.html: Removed.
      * fast/filesystem/op-get-parent-expected.txt: Removed.
      * fast/filesystem/op-get-parent.html: Removed.
      * fast/filesystem/op-move-expected.txt: Removed.
      * fast/filesystem/op-move.html: Removed.
      * fast/filesystem/op-read-directory-expected.txt: Removed.
      * fast/filesystem/op-read-directory.html: Removed.
      * fast/filesystem/op-remove-expected.txt: Removed.
      * fast/filesystem/op-remove.html: Removed.
      * fast/filesystem/op-restricted-chars-expected.txt: Removed.
      * fast/filesystem/op-restricted-chars.html: Removed.
      * fast/filesystem/op-restricted-names-expected.txt: Removed.
      * fast/filesystem/op-restricted-names.html: Removed.
      * fast/filesystem/op-restricted-unicode-expected.txt: Removed.
      * fast/filesystem/op-restricted-unicode.html: Removed.
      * fast/filesystem/read-directory-expected.txt: Removed.
      * fast/filesystem/read-directory.html: Removed.
      * fast/filesystem/resources: Removed.
      * fast/filesystem/resources/async-operations.js: Removed.
      * fast/filesystem/resources/directory-entry-to-uri.js: Removed.
      * fast/filesystem/resources/file-entry-to-uri-sync.js: Removed.
      * fast/filesystem/resources/file-entry-to-uri.js: Removed.
      * fast/filesystem/resources/file-from-file-entry-sync.js: Removed.
      * fast/filesystem/resources/file-from-file-entry.js: Removed.
      * fast/filesystem/resources/file-writer-abort-continue.js: Removed.
      * fast/filesystem/resources/file-writer-abort-depth.js: Removed.
      * fast/filesystem/resources/file-writer-abort.js: Removed.
      * fast/filesystem/resources/file-writer-empty-blob.js: Removed.
      * fast/filesystem/resources/file-writer-events.js: Removed.
      * fast/filesystem/resources/file-writer-gc-blob.js: Removed.
      * fast/filesystem/resources/file-writer-sync-truncate-extend.js: Removed.
      * fast/filesystem/resources/file-writer-sync-write-overlapped.js: Removed.
      * fast/filesystem/resources/file-writer-truncate-extend.js: Removed.
      * fast/filesystem/resources/file-writer-utils.js: Removed.
      * fast/filesystem/resources/file-writer-write-overlapped.js: Removed.
      * fast/filesystem/resources/fs-test-util.js: Removed.
      * fast/filesystem/resources/fs-worker-common.js: Removed.
      * fast/filesystem/resources/op-copy.js: Removed.
      * fast/filesystem/resources/op-get-entry.js: Removed.
      * fast/filesystem/resources/op-get-metadata.js: Removed.
      * fast/filesystem/resources/op-get-parent.js: Removed.
      * fast/filesystem/resources/op-move.js: Removed.
      * fast/filesystem/resources/op-read-directory.js: Removed.
      * fast/filesystem/resources/op-remove.js: Removed.
      * fast/filesystem/resources/op-restricted-chars.js: Removed.
      * fast/filesystem/resources/op-restricted-names.js: Removed.
      * fast/filesystem/resources/op-restricted-unicode.js: Removed.
      * fast/filesystem/resources/op-tests-helper.js: Removed.
      * fast/filesystem/resources/shared-worker-stub.js: Removed.
      * fast/filesystem/resources/simple-persistent-sync.js: Removed.
      * fast/filesystem/resources/simple-persistent.js: Removed.
      * fast/filesystem/resources/simple-readonly.js: Removed.
      * fast/filesystem/resources/simple-required-arguments-getdirectory.js: Removed.
      * fast/filesystem/resources/simple-required-arguments-getfile.js: Removed.
      * fast/filesystem/resources/simple-required-arguments-getmetadata.js: Removed.
      * fast/filesystem/resources/simple-required-arguments-remove.js: Removed.
      * fast/filesystem/resources/simple-temporary-sync.js: Removed.
      * fast/filesystem/resources/simple-temporary.js: Removed.
      * fast/filesystem/resources/sync-operations.js: Removed.
      * fast/filesystem/script-tests: Removed.
      * fast/filesystem/script-tests/TEMPLATE.html: Removed.
      * fast/filesystem/script-tests/filesystem-reference.js: Removed.
      * fast/filesystem/script-tests/filesystem-unserializable.js: Removed.
      * fast/filesystem/script-tests/flags-passing.js: Removed.
      * fast/filesystem/script-tests/read-directory.js: Removed.
      * fast/filesystem/simple-persistent-expected.txt: Removed.
      * fast/filesystem/simple-persistent.html: Removed.
      * fast/filesystem/simple-readonly-expected.txt: Removed.
      * fast/filesystem/simple-readonly-file-object-expected.txt: Removed.
      * fast/filesystem/simple-readonly-file-object.html: Removed.
      * fast/filesystem/simple-readonly.html: Removed.
      * fast/filesystem/simple-required-arguments-getdirectory-expected.txt: Removed.
      * fast/filesystem/simple-required-arguments-getdirectory.html: Removed.
      * fast/filesystem/simple-required-arguments-getfile-expected.txt: Removed.
      * fast/filesystem/simple-required-arguments-getfile.html: Removed.
      * fast/filesystem/simple-required-arguments-getmetadata-expected.txt: Removed.
      * fast/filesystem/simple-required-arguments-getmetadata.html: Removed.
      * fast/filesystem/simple-required-arguments-remove-expected.txt: Removed.
      * fast/filesystem/simple-required-arguments-remove.html: Removed.
      * fast/filesystem/simple-temporary-expected.txt: Removed.
      * fast/filesystem/simple-temporary.html: Removed.
      * fast/filesystem/workers: Removed.
      * fast/filesystem/workers/async-operations-expected.txt: Removed.
      * fast/filesystem/workers/async-operations.html: Removed.
      * fast/filesystem/workers/detached-frame-crash-expected.txt: Removed.
      * fast/filesystem/workers/detached-frame-crash.html: Removed.
      * fast/filesystem/workers/file-entry-to-uri-sync-expected.txt: Removed.
      * fast/filesystem/workers/file-entry-to-uri-sync.html: Removed.
      * fast/filesystem/workers/file-from-file-entry-expected.txt: Removed.
      * fast/filesystem/workers/file-from-file-entry-sync-expected.txt: Removed.
      * fast/filesystem/workers/file-from-file-entry-sync.html: Removed.
      * fast/filesystem/workers/file-from-file-entry.html: Removed.
      * fast/filesystem/workers/file-writer-empty-blob-expected.txt: Removed.
      * fast/filesystem/workers/file-writer-empty-blob.html: Removed.
      * fast/filesystem/workers/file-writer-events-expected.txt: Removed.
      * fast/filesystem/workers/file-writer-events-shared-worker-expected.txt: Removed.
      * fast/filesystem/workers/file-writer-events-shared-worker.html: Removed.
      * fast/filesystem/workers/file-writer-events.html: Removed.
      * fast/filesystem/workers/file-writer-gc-blob-expected.txt: Removed.
      * fast/filesystem/workers/file-writer-gc-blob.html: Removed.
      * fast/filesystem/workers/file-writer-sync-truncate-extend-expected.txt: Removed.
      * fast/filesystem/workers/file-writer-sync-truncate-extend.html: Removed.
      * fast/filesystem/workers/file-writer-sync-write-overlapped-expected.txt: Removed.
      * fast/filesystem/workers/file-writer-sync-write-overlapped.html: Removed.
      * fast/filesystem/workers/file-writer-truncate-extend-expected.txt: Removed.
      * fast/filesystem/workers/file-writer-truncate-extend.html: Removed.
      * fast/filesystem/workers/file-writer-write-overlapped-expected.txt: Removed.
      * fast/filesystem/workers/file-writer-write-overlapped.html: Removed.
      * fast/filesystem/workers/resources: Removed.
      * fast/filesystem/workers/resources/detached-frame-crash-frame.html: Removed.
      * fast/filesystem/workers/resources/detached-frame-crash-worker.js: Removed.
      * fast/filesystem/workers/simple-persistent-expected.txt: Removed.
      * fast/filesystem/workers/simple-persistent-sync-expected.txt: Removed.
      * fast/filesystem/workers/simple-persistent-sync.html: Removed.
      * fast/filesystem/workers/simple-persistent.html: Removed.
      * fast/filesystem/workers/simple-temporary-expected.txt: Removed.
      * fast/filesystem/workers/simple-temporary-sync-expected.txt: Removed.
      * fast/filesystem/workers/simple-temporary-sync.html: Removed.
      * fast/filesystem/workers/simple-temporary.html: Removed.
      * fast/filesystem/workers/sync-operations-expected.txt: Removed.
      * fast/filesystem/workers/sync-operations.html: Removed.
      * fast/forms/file/input-file-entries-expected.txt: Removed.
      * fast/forms/file/input-file-entries.html: Removed.
      * http/tests/filesystem: Removed.
      * http/tests/filesystem/no-cache-filesystem-url-expected.txt: Removed.
      * http/tests/filesystem/no-cache-filesystem-url.html: Removed.
      * http/tests/filesystem/resolve-uri-expected.txt: Removed.
      * http/tests/filesystem/resolve-uri.html: Removed.
      * http/tests/filesystem/resources: Removed.
      * http/tests/filesystem/resources/fs-test-util.js: Removed.
      * http/tests/filesystem/resources/fs-worker-common.js: Removed.
      * http/tests/filesystem/resources/fs-worker-test-util.js: Removed.
      * http/tests/filesystem/script-tests: Removed.
      * http/tests/filesystem/script-tests/TEMPLATE.html: Removed.
      * http/tests/filesystem/script-tests/resolve-uri.js: Removed.
      * http/tests/filesystem/workers: Removed.
      * http/tests/filesystem/workers/resolve-url-expected.txt: Removed.
      * http/tests/filesystem/workers/resolve-url-sync-expected.txt: Removed.
      * http/tests/filesystem/workers/resolve-url-sync.html: Removed.
      * http/tests/filesystem/workers/resolve-url.html: Removed.
      * http/tests/filesystem/workers/script-tests: Removed.
      * http/tests/filesystem/workers/script-tests/TEMPLATE.html: Removed.
      * http/tests/filesystem/workers/script-tests/resolve-url-sync.js: Removed.
      * http/tests/inspector/filesystem: Removed.
      * http/tests/inspector/filesystem/delete-entry-expected.txt: Removed.
      * http/tests/inspector/filesystem/delete-entry.html: Removed.
      * http/tests/inspector/filesystem/directory-tree-expected.txt: Removed.
      * http/tests/inspector/filesystem/directory-tree.html: Removed.
      * http/tests/inspector/filesystem/filesystem-test.js: Removed.
      * http/tests/inspector/filesystem/request-directory-content-expected.txt: Removed.
      * http/tests/inspector/filesystem/request-directory-content.html: Removed.
      * http/tests/inspector/filesystem/request-file-content-expected.txt: Removed.
      * http/tests/inspector/filesystem/request-file-content.html: Removed.
      * http/tests/inspector/filesystem/request-filesystem-root-expected.txt: Removed.
      * http/tests/inspector/filesystem/request-filesystem-root.html: Removed.
      * http/tests/inspector/filesystem/request-metadata-expected.txt: Removed.
      * http/tests/inspector/filesystem/request-metadata.html: Removed.
      * http/tests/security/contentSecurityPolicy/filesystem-urls-match-self-expected.txt: Removed.
      * http/tests/security/contentSecurityPolicy/filesystem-urls-match-self.html: Removed.
      * http/tests/security/filesystem-iframe-from-remote-expected.txt: Removed.
      * http/tests/security/filesystem-iframe-from-remote.html: Removed.
      * http/tests/security/mixedContent/filesystem-url-in-iframe-expected.txt: Removed.
      * http/tests/security/mixedContent/filesystem-url-in-iframe.html: Removed.
      * http/tests/websocket/tests/hybi/send-file-blob-expected.txt: Removed.
      * http/tests/websocket/tests/hybi/send-file-blob-fail-expected.txt: Removed.
      * http/tests/websocket/tests/hybi/send-file-blob-fail.html: Removed.
      * http/tests/websocket/tests/hybi/send-file-blob.html: Removed.
      * http/tests/workers/resources/sync-operations.js:
      (onmessage):
      * http/tests/workers/terminate-during-sync-operation-expected.txt: Removed.
      * http/tests/workers/terminate-during-sync-operation.html: Removed.
      * platform/efl/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156692 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7df82b33
    • mitz@apple.com's avatar
      <rdar://problem/15114974> Assertion failure under -[JSObjCClassInfo... · 507879a1
      mitz@apple.com authored
      <rdar://problem/15114974> Assertion failure under -[JSObjCClassInfo allocateConstructorAndPrototypeWithSuperClassInfo:] if no classes conform to JSExport
      https://bugs.webkit.org/show_bug.cgi?id=122124
      
      Reviewed by Darin Adler.
      
      * API/JSWrapperMap.mm: Defined an empty class that conforms to the JSExport protocol, to
      ensure that the protocol is always registered with the runtime by the time
      getJSExportProtocol() is called.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156684 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      507879a1
    • benjamin@webkit.org's avatar
      Remove the code guarded by STYLE_SCOPED · 32bbc4c1
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122123
      
      Reviewed by Anders Carlsson.
      
      .: 
      
      * Source/autotools/SetupWebKitFeatures.m4:
      * Source/cmake/OptionsBlackBerry.cmake:
      * Source/cmake/WebKitFeatures.cmake:
      * Source/cmakeconfig.h.cmake:
      
      Source/JavaScriptCore: 
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebCore: 
      
      Start cleaning the code related to <style scoped>. This patch
      only removes the code with #ifdef guards.
      
      * Configurations/FeatureDefines.xcconfig:
      * WebCore.exp.in:
      * bindings/generic/RuntimeEnabledFeatures.cpp:
      (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
      * bindings/generic/RuntimeEnabledFeatures.h:
      * css/DocumentRuleSets.cpp:
      (WebCore::DocumentRuleSets::appendAuthorStyleSheets):
      * css/ElementRuleCollector.cpp:
      (WebCore::ElementRuleCollector::matchScopedAuthorRules):
      * css/StyleResolver.cpp:
      (WebCore::StyleResolver::locateCousinList):
      (WebCore::StyleResolver::canShareStyleWithElement):
      (WebCore::StyleResolver::locateSharedStyle):
      * css/StyleResolver.h:
      (WebCore::StyleResolver::ensureScopeResolver):
      * css/StyleScopeResolver.cpp:
      * css/StyleScopeResolver.h:
      * dom/Node.cpp:
      * dom/Node.h:
      * dom/ShadowRoot.cpp:
      (WebCore::ShadowRoot::ShadowRoot):
      * dom/ShadowRoot.h:
      * html/HTMLStyleElement.cpp:
      (WebCore::HTMLStyleElement::HTMLStyleElement):
      (WebCore::HTMLStyleElement::parseAttribute):
      (WebCore::HTMLStyleElement::insertedInto):
      (WebCore::HTMLStyleElement::removedFrom):
      * html/HTMLStyleElement.h:
      * html/HTMLStyleElement.idl:
      * testing/InternalSettings.cpp:
      (WebCore::InternalSettings::Backup::Backup):
      (WebCore::InternalSettings::Backup::restoreTo):
      * testing/InternalSettings.h:
      * testing/InternalSettings.idl:
      * testing/Internals.cpp:
      * testing/Internals.h:
      * testing/Internals.idl:
      
      Source/WebKit: 
      
      * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
      
      Source/WebKit/gtk: 
      
      * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
      * WebCoreSupport/DumpRenderTreeSupportGtk.h:
      
      Source/WebKit/mac: 
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit2: 
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WTF: 
      
      * wtf/FeatureDefines.h:
      
      Tools: 
      
      * DumpRenderTree/gtk/DumpRenderTree.cpp:
      (resetDefaultsToConsistentValues):
      * Scripts/webkitperl/FeatureList.pm:
      * qmake/mkspecs/features/features.pri:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      32bbc4c1
    • akling@apple.com's avatar
      Pass VM instead of ExecState to ObjectPrototype constructor. · 0c4a2dbd
      akling@apple.com authored
      <https://webkit.org/b/122116>
      
      Reviewed by Geoffrey Garen.
      
      The ObjectPrototype constructor was only using the ExecState to get
      to the VM.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156680 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0c4a2dbd
    • akling@apple.com's avatar
      Pass VM instead of JSGlobalObject to MathObject constructor. · 3828a863
      akling@apple.com authored
      <https://webkit.org/b/122119>
      
      Reviewed by Geoffrey Garen.
      
      The MathObject constructor was only using the global object to get
      to the VM. finishCreation() still uses it to set up functions.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156679 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3828a863
    • fpizlo@apple.com's avatar
      Get rid of the AlreadyInJSStack recoveries since they are totally redundant... · c6bb4a9f
      fpizlo@apple.com authored
      Get rid of the AlreadyInJSStack recoveries since they are totally redundant with the DisplacedInJSStack recoveries
      https://bugs.webkit.org/show_bug.cgi?id=122065
      
      Reviewed by Mark Hahnenberg.
              
      This mostly just kills a bunch of code.
              
      But incidentaly while killing that code, I uncovered a bug in our FTL OSR entrypoint
      creation phase. The phase inserts a sequence of SetLocal(ExtractOSREntryLocal) nodes.
      If we hoist some type check into the local, then we might inject a conversion node
      between the ExtractOSREntryLocal and the SetLocal - for example we might put in a
      Int32ToDouble node. But currently the FixupPhase will make all conversion nodes placed
      on an edge of a SetLocal use forward exit. This then confuses the OSR exit machinery.
      When OSR exit sees a forward exit, it tries to "roll forward" execution from the exiting
      node to the first node that has a different CodeOrigin. This only works if the nodes
      after the forward exit are MovHints or other tnings that the OSR exit compiler can
      forward-execute. But here, it will see a bunch of SetLocal and ExtractOSREntryLocal
      nodes for the same bytecode index. Two possible solutions exist. We could teach the
      forward-execution logic how to deal with multiple SetLocals and ExtractOSREntryLocals.
      This would be a lot of complexity; right now it just needs to deal with exactly one
      SetLocal-like operation. The alternative is to make sure that the conversion node that
      we inject ends up exiting *backward* rather than forward.
              
      But making the conversion nodes exit backward is somewhat tricky. Before this patch,
      conversion nodes always exit forward for SetLocals and backwards otherwise. It turns out
      that the solution is to rationalize how we choose the speculation direciton for a
      conversion node. The conversion node's speculation direction should be the same as the
      speculation direction of the node for which it is doing a conversion. Since SetLocal's
      already exit forward by default, this policy preserves our previous behavior. But it
      also allows the OSR entrypoint creation phase to make its SetLocals exit backward
      instead.
              
      Of course, if the SetLocal(ExtractOSREntryLocal) sequences exit backward, then we need
      to make sure that the OSR exit machine knows that the local variables are indeed live.
      Consider that if we have:
              
          a: ExtractOSREntryLocal(loc1)
          b: SetLocal(@a, loc1)
          c: ExtractOSRentryLocal(loc2)
          d: SetLocal(@c, loc2)
              
      Without additional magic, the exit at @b will think that loc2 is dead and the OSR exit
      compiler will clobber loc2 with Undefined. So we need to make sure that we actually
      emit code like:
              
          a: ExtractOSREntryLocal(loc1)
          b: ExtractOSREntryLocal(loc2)
          c: SetLocal(@a, loc1)
          d: SetLocal(@b, loc2)
          e: SetLocal(@a, loc1)
          f: SetLocal(@b, loc2)
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/CodeOrigin.h:
      * bytecode/ValueRecovery.cpp: Added.
      (JSC::ValueRecovery::recover):
      (JSC::ValueRecovery::dumpInContext):
      (JSC::ValueRecovery::dump):
      * bytecode/ValueRecovery.h:
      * dfg/DFGFixupPhase.cpp:
      (JSC::DFG::FixupPhase::fixupSetLocalsInBlock):
      (JSC::DFG::FixupPhase::fixEdge):
      * dfg/DFGJITCode.cpp:
      (JSC::DFG::JITCode::reconstruct):
      * dfg/DFGNode.h:
      (JSC::DFG::Node::speculationDirection):
      (JSC::DFG::Node::setSpeculationDirection):
      * dfg/DFGOSREntrypointCreationPhase.cpp:
      (JSC::DFG::OSREntrypointCreationPhase::run):
      * dfg/DFGOSRExitCompiler32_64.cpp:
      (JSC::DFG::OSRExitCompiler::compileExit):
      * dfg/DFGOSRExitCompiler64.cpp:
      (JSC::DFG::OSRExitCompiler::compileExit):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compileInlineStart):
      (JSC::DFG::SpeculativeJIT::computeValueRecoveryFor):
      * dfg/DFGSpeculativeJIT.h:
      (JSC::DFG::SpeculativeJIT::computeValueRecoveryFor):
      * dfg/DFGValueSource.h:
      (JSC::DFG::ValueSource::valueRecovery):
      * dfg/DFGVariableEventStream.cpp:
      (JSC::DFG::VariableEventStream::reconstruct):
      * ftl/FTLLowerDFGToLLVM.cpp:
      (JSC::FTL::LowerDFGToLLVM::speculate):
      (JSC::FTL::LowerDFGToLLVM::speculateMachineInt):
      * interpreter/Register.h:
      (JSC::Register::unboxedStrictInt52):
      * runtime/Arguments.cpp:
      (JSC::Arguments::tearOff):
      * runtime/Arguments.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156677 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c6bb4a9f
    • alex.christensen@flexsim.com's avatar
      Win64 compile fix after r1256490. · 949e2853
      alex.christensen@flexsim.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122117
      
      Patch by Alex Christensen <alex.christensen@flexsim.com> on 2013-09-30
      Reviewed by Michael Saboff.
      
      * jit/JITStubsMSVC64.asm:
      Implemented getHostCallReturnValue for Windows x86_64 processors.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      949e2853
    • akling@apple.com's avatar
      Pass VM instead of JSGlobalObject to RegExp constructor. · 8662c390
      akling@apple.com authored
      <https://webkit.org/b/122113>
      
      Reviewed by Darin Adler.
      
      RegExps don't need anything from the global object during their
      construction and only use it to get to the VM. Reduce loads by
      simply passing the VM around instead.
      
      JSC release binary size -= 120 bytes(!)
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156668 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8662c390
    • paroga@webkit.org's avatar
      Fix compilation for COMPILER(MSVC) && !CPU(X86) after r156490. · 2b90bb98
      paroga@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122102
      
      Reviewed by Geoffrey Garen.
      
      _AddressOfReturnAddress() is supported for all platforms of
      ths Microsoft compiler, so we can use it for !CPU(X86) too.
      
      * jit/JITOperationWrappers.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156654 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2b90bb98
    • rgabor@webkit.org's avatar
      Unreviewed. Build fix for DEBUG_VERBOSE mode after r156511. · d79d1b63
      rgabor@webkit.org authored
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compileCurrentBlock):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156641 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d79d1b63
    • rgabor@webkit.org's avatar
      Unreviewed. Speculative build fix on ARMv7 Thumb2 after r156490. · 4c500bc5
      rgabor@webkit.org authored
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::fmodAsDFGOperation):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156637 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c500bc5
    • commit-queue@webkit.org's avatar
      FTL: refactor compileAdd and compileArithSub into one function. · a97a9511
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122081
      
      Patch by Nadav Rotem <nrotem@apple.com> on 2013-09-29
      Reviewed by Geoffrey Garen.
      
      * ftl/FTLLowerDFGToLLVM.cpp:
      (JSC::FTL::LowerDFGToLLVM::compileNode):
      (JSC::FTL::LowerDFGToLLVM::compileAddSub):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a97a9511
  3. 29 Sep, 2013 4 commits
  4. 28 Sep, 2013 3 commits
    • mrowe@apple.com's avatar
      Take Xcode's advice and enable some extra warnings. · c11deac3
      mrowe@apple.com authored
      Reviewed by Sam Weinig.
      
      Source/JavaScriptCore:
      
      * Configurations/Base.xcconfig:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      
      Source/WebCore:
      
      * Configurations/Base.xcconfig:
      * WebCore.xcodeproj/project.pbxproj:
      * dom/NamedNodeMap.cpp:
      (WebCore::NamedNodeMap::removeNamedItemNS): Use the correct constant.
      
      Source/WebKit:
      
      * WebKit.xcodeproj/project.pbxproj:
      
      Source/WebKit/mac:
      
      * Configurations/Base.xcconfig:
      
      Source/WebKit2:
      
      * Configurations/Base.xcconfig:
      * WebKit2.xcodeproj/project.pbxproj:
      
      Source/WTF:
      
      * Configurations/Base.xcconfig:
      * WTF.xcodeproj/project.pbxproj:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156610 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c11deac3
    • akling@apple.com's avatar
      Pass VM instead of ExecState to JSFunction constructors. · 20d6f9c1
      akling@apple.com authored
      <https://webkit.org/b/122014>
      
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore:
      
      JSFunction doesn't need the ExecState for anything during its
      construction, so reduce the amount of loads by just passing the
      VM around instead.
      
      Factored out putDirectNonIndexAccessor() from the existing
      putDirectAccessor() to avoid snowballing the patch (and because
      it's kinda neat to avoid the extra branch.)
      
      JSC release binary size -= 9680 bytes.
      
      Source/WebCore:
      
      Updated for new JSFunction::create() signature.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      20d6f9c1
    • mrowe@apple.com's avatar
      JavaScriptCore fails to build with newer versions of clang. · aae57e37
      mrowe@apple.com authored
      Reviewed by Sam Weinig.
      
      * interpreter/Interpreter.cpp: Remove an unused function.
      * parser/SourceProvider.cpp: Ditto.
      * runtime/GCActivityCallback.cpp: #if a constant that's only used on non-CF platforms.
      * runtime/JSCJSValue.cpp: Remove an unused constant.
      * runtime/JSString.cpp: Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aae57e37
  5. 27 Sep, 2013 6 commits
    • fpizlo@apple.com's avatar
      Get rid of SetMyScope/SetCallee; use normal variables for the scope and callee... · 48cdafdc
      fpizlo@apple.com authored
      Get rid of SetMyScope/SetCallee; use normal variables for the scope and callee of inlined call frames of closures
      https://bugs.webkit.org/show_bug.cgi?id=122047
      
      Reviewed by Oliver Hunt.
              
      Currently we have the DFG reserve space for inline call frames at exactly the same stack
      offsets that you would have gotten if the baseline interpreter/JIT had made the calls.
      We need to get rid of that. One of the weirder parts of this is that we have special DFG
      operations for accessing these inlined call frame headers. It's really hard for any
      analysis of DFG IR to see what the liveness of any of those frame header "variables" is;
      the liveness behaves like flushed arguments (it's all live until end of the inlinee) but
      we don't have anything like a Flush node for those special variables.
              
      This patch gets rid of the special operations for accessing inline call frame headers.
      GetMyScope and GetCallee still remain, and are only for accessing the machine call
      frame's scope/callee entries. The inline call frame's scope/callee now behave like
      normal variables, and have Flush behavior just like inline arguments.
      
      * dfg/DFGAbstractInterpreterInlines.h:
      (JSC::DFG::::executeEffects):
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::getDirect):
      (JSC::DFG::ByteCodeParser::get):
      (JSC::DFG::ByteCodeParser::setDirect):
      (JSC::DFG::ByteCodeParser::set):
      (JSC::DFG::ByteCodeParser::setLocal):
      (JSC::DFG::ByteCodeParser::setArgument):
      (JSC::DFG::ByteCodeParser::flush):
      (JSC::DFG::ByteCodeParser::InlineStackEntry::remapOperand):
      (JSC::DFG::ByteCodeParser::handleInlining):
      (JSC::DFG::ByteCodeParser::getScope):
      * dfg/DFGCSEPhase.cpp:
      (JSC::DFG::CSEPhase::getCalleeLoadElimination):
      (JSC::DFG::CSEPhase::getMyScopeLoadElimination):
      (JSC::DFG::CSEPhase::performNodeCSE):
      * dfg/DFGClobberize.h:
      (JSC::DFG::clobberize):
      * dfg/DFGFixupPhase.cpp:
      (JSC::DFG::FixupPhase::fixupNode):
      * dfg/DFGNodeType.h:
      * dfg/DFGPredictionPropagationPhase.cpp:
      (JSC::DFG::PredictionPropagationPhase::propagate):
      * dfg/DFGSafeToExecute.h:
      (JSC::DFG::safeToExecute):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156594 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      48cdafdc
    • fpizlo@apple.com's avatar
      Deoptimize 32-bit deoptimization · 22958794
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122025
      
      Reviewed by Oliver Hunt.
              
      Just simplifying a bunch of code. I don't want the old, super-complicated,
      deoptimization code to get in the way of changes I'll be making to DFG stack layout.
      
      * bytecode/ValueRecovery.h:
      (JSC::ValueRecovery::inGPR):
      (JSC::ValueRecovery::isInRegisters):
      (JSC::ValueRecovery::gpr):
      (JSC::ValueRecovery::dumpInContext):
      * dfg/DFGOSRExitCompiler32_64.cpp:
      (JSC::DFG::OSRExitCompiler::compileExit):
      * dfg/DFGOSRExitCompiler64.cpp:
      (JSC::DFG::OSRExitCompiler::compileExit):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22958794
    • alex.christensen@flexsim.com's avatar
      Fixed Win64 build after r156184. · 8eee7ecd
      alex.christensen@flexsim.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121994
      
      Reviewed by Oliver Hunt.
      
      * jit/CCallHelpers.h:
      (JSC::CCallHelpers::setupTwoStubArgsGPR):
      (JSC::CCallHelpers::setupTwoStubArgsFPR):
      Renamed from setupTwoStubArgs.
      Visual Studio x64 compiler fails to see that this is an overloaded template function.
      (JSC::CCallHelpers::setupStubArguments):
      (JSC::CCallHelpers::setupArguments):
      (JSC::CCallHelpers::setupArgumentsWithExecState):
      Use setupTwoStubArgsGPR or setupTwoStubArgsFPR instead of setupTwoStubArgs.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156559 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8eee7ecd
    • rgabor@webkit.org's avatar
      LLInt alignment problem on ARM in debug mode · 42062786
      rgabor@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122012
      
      Reviewed by Michael Saboff.
      
      Force GCC to put the LLInt code to .text section.
      
      * llint/LowLevelInterpreter.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156549 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      42062786
    • jer.noble@apple.com's avatar
      [Mac] Implement the media controls in JavaScript. · b8744b36
      jer.noble@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120895
      
      Reviewed by Dean Jackson.
      
      Source/JavaScriptCore:
      
      Define and turn on ENABLE_MEDIA_CONTROLS_SCRIPT.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebCore:
      
      Re-implement the existing MediaControls constellation of classes in JavaScript
      and CSS. This will allow different ports to configure their controls without
      dependencies on the layout requirements of any other port's controls.
      
      Define and turn on ENABLE_MEDIA_CONTROLS_SCRIPT:
      * Configurations/FeatureDefines.xcconfig:
      
      Add new source files to the project:
      * DerivedSources.cpp:
      * DerivedSources.make:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      
      Add a new class MediaControlsHost which the script controls can use to
      communicate with the HTMLMediaElement without exposing private interfaces
      to web facing scripts:
      * Modules/mediacontrols/MediaControlsHost.cpp: Added.
      (WebCore::MediaControlsHost::automaticKeyword): Static method.
      (WebCore::MediaControlsHost::forcedOnlyKeyword): Ditto.
      (WebCore::MediaControlsHost::alwaysOnKeyword): Ditto.
      (WebCore::MediaControlsHost::create): Simple factory.
      (WebCore::MediaControlsHost::MediaControlsHost): Simple constructor.
      (WebCore::MediaControlsHost::~MediaControlsHost): Simple destructor.
      (WebCore::MediaControlsHost::sortedTrackListForMenu): Pass through to CaptionUserPreferences.
      (WebCore::MediaControlsHost::displayNameForTrack): Ditto.
      (WebCore::MediaControlsHost::captionMenuOffItem): Pass through to TextTrack.
      (WebCore::MediaControlsHost::captionMenuAutomaticItem): Ditto.
      (WebCore::MediaControlsHost::captionDisplayMode): Pass through to CaptionUserPreferences.
      (WebCore::MediaControlsHost::setSelectedTextTrack): Pass through to HTMLMediaElement.
      (WebCore::MediaControlsHost::textTrackContainer): Lazily create a MediaControlTextTrackContainerElement.
      (WebCore::MediaControlsHost::updateTextTrackContainer): Pass through to MediaControlTextTrackContainerElement.
      * Modules/mediacontrols/MediaControlsHost.h: Added.
      * Modules/mediacontrols/MediaControlsHost.idl: Added.
      * Modules/mediacontrols/mediaControlsApple.css: Added.
      
      Add convenience methods for adding a MediaControlsHost to a VM.
      * bindings/js/ScriptObject.cpp:
      (WebCore::ScriptGlobalObject::set):
      * bindings/js/ScriptObject.h:
      
      Add the new controller .js implementation:
      * Modules/mediacontrols/mediaControlsApple.js: Added.
      (createControls): Global method to create a new Controller object.
      (Controller): Constructor. Create and configure the default set of controls.
      (Controller.prototype.addListeners): Adds event listeners to the this.video object.
      (Controller.prototype.removeListeners): Removes listeners from same.
      (Controller.prototype.handleEvent): Makes Controller an EventHandler, making registration and
              deregistration simpler.
      (Controller.prototype.createBase): Creates the base controls object and the text track container.
      (Controller.prototype.createControls): Creates the controls panel object and controller UI.
      (Controller.prototype.setControlsType): Switches between Full Screen and Inline style of controller.
      (Controller.prototype.disconnectControls): Disconnects all UI elements from the DOM.
      (Controller.prototype.configureInlineControls): Configures existing controls for Inline mode.
      (Controller.prototype.configureFullScreenControls): Ditto, for Full Screen Mode.
      
      Add listeners for HTMLMediaElement events:
      (Controller.prototype.onloadstart): Update the status display.
      (Controller.prototype.onerror): Ditto.
      (Controller.prototype.onabort): Ditto.
      (Controller.prototype.onsuspend): Ditto.
      (Controller.prototype.onprogress): Ditto.
      (Controller.prototype.onstalled): Ditto.
      (Controller.prototype.onwaiting): Ditto.
      (Controller.prototype.onreadystatechange): Ditto.
      (Controller.prototype.ontimeupdate): Update the timeline and time displays.
      (Controller.prototype.ondurationchange): Ditto.
      (Controller.prototype.onplaying): Update the play button.
      (Controller.prototype.onplay): Ditto.
      (Controller.prototype.onpause): Ditto.
      (Controller.prototype.onratechange): Ditto.
      (Controller.prototype.onvolumechange): Update the volume and mute UI.
      (Controller.prototype.ontexttrackchange): Update the text track container and captions button.
      (Controller.prototype.ontexttrackadd): Ditto.
      (Controller.prototype.ontexttrackremove): Ditto.
      (Controller.prototype.ontexttrackcuechange): Ditto.
      (Controller.prototype.onfullscreenchange): Reconfigure the controls.
      
      Add listeners for UI element events:
      (Controller.prototype.onwrappermousemove): Show the controls and start the hide timer.
      (Controller.prototype.onwrappermouseout): Hide the controls and stop the hide timer.
      (Controller.prototype.onrewindbuttonclicked): Rewind.
      (Controller.prototype.onplaybuttonclicked): Toggle pause.
      (Controller.prototype.ontimelinechange): Update the currentTime.
      (Controller.prototype.ontimelinedown):
      (Controller.prototype.ontimelineup):
      (Controller.prototype.ontimelinemouseover): Show the thumbnail view if available.
      (Controller.prototype.ontimelinemouseout): Hide same.
      (Controller.prototype.ontimelinemousemove): Move the thumbnail view.
      (Controller.prototype.onmutebuttonclicked): Mute audio.
      (Controller.prototype.onminbuttonclicked): Increase volume to max.
      (Controller.prototype.onmaxbuttonclicked): Decrease volume to min.
      (Controller.prototype.onvolumesliderchange): Update the current volume.
      (Controller.prototype.oncaptionbuttonclicked): Show or hide the track menu.
      (Controller.prototype.onfullscreenbuttonclicked): Enter or exit fullscreen.
      (Controller.prototype.oncontrolschange): Show or hide the controls panel.
      (Controller.prototype.onseekbackmousedown): Start seeking and enable the seek timer.
      (Controller.prototype.onseekbackmouseup): Stop seeking and disable the seek timer.
      (Controller.prototype.onseekforwardmousedown): Start seekind and enable the seek timer.
      (Controller.prototype.onseekforwardmouseup): Stop seekind and disable the seek timer.
      
      Add action methods (which are mostly self explanatory):
      (Controller.prototype.updateDuration):
      (Controller.prototype.updatePlaying):
      (Controller.prototype.showControls):
      (Controller.prototype.hideControls):
      (Controller.prototype.removeControls):
      (Controller.prototype.addControls):
      (Controller.prototype.updateTime):
      (Controller.prototype.updateReadyState):
      (Controller.prototype.setStatusHidden):
      (Controller.prototype.updateThumbnailTrack):
      (Controller.prototype.updateCaptionButton):
      (Controller.prototype.updateCaptionContainer):
      (Controller.prototype.buildCaptionMenu):
      (Controller.prototype.captionItemSelected):
      (Controller.prototype.destroyCaptionMenu):
      (Controller.prototype.updateVolume):
      
      Add utility methods:
      (Controller.prototype.isFullScreen):
      (Controller.prototype.canPlay):
      (Controller.prototype.nextRate):
      (Controller.prototype.seekBackFaster):
      (Controller.prototype.seekForwardFaster):
      (Controller.prototype.formatTime):
      (Controller.prototype.trackHasThumbnails):
      
      Add the stylesheet for the javascript controls (which are mostly) copied from
      the (deleted) mediaControlsQuickTime.css and fullscreenQuickTime.css files:
      * Modules/mediacontrols/mediaControlsApple.css: Added.
      * css/fullscreenQuickTime.css: Removed.
      * css/mediaControlsQuickTime.css: Removed.
      
      Inject new stylesheets into UA sheets:
      * css/CSSDefaultStyleSheets.cpp:
      (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
      
      Use the new javascript controls rather than MediaControls:
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::childShouldCreateRenderer): Use the javascript controls if available.
      (WebCore::HTMLMediaElement::updateTextTrackDisplay): Ditto.
      (WebCore::HTMLMediaElement::mediaControls): Ditto.
      (WebCore::HTMLMediaElement::hasMediaControls): Ditto.
      (WebCore::HTMLMediaElement::createMediaControls): Ditto.
      (WebCore::HTMLMediaElement::configureMediaControls): Ditto.
      (WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.
      (WebCore::HTMLMediaElement::ensureIsolatedWorld): Create a new VM for the controls script.
      (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript): Inject the media controls script into the VM.
      (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Inject the MediaControlsHost into the VM and call
              the scripts global factory function.
      * html/HTMLMediaElement.h:
      
      Remove most of the drawing code from RenderThemeMac and RenderThemeWin and
      add accessors for the new .js and .css file data:
      * rendering/RenderTheme.h:
      (WebCore::RenderTheme::mediaControlsStyleSheet): Empty virtual method.
      (WebCore::RenderTheme::mediaControlsScript): Ditto.
      * rendering/RenderThemeMac.h:
      * rendering/RenderThemeMac.mm:
      (WebCore::RenderThemeMac::mediaControlsStyleSheet): Add accessor for mediaControlsApple.css.
      (WebCore::RenderThemeMac::mediaControlsScript): Add accessor for mediaControlsApple.js.
      (WebCore::RenderThemeMac::adjustSliderThumbSize): Remove the call to adjustMediaSliderThumbSize.
      * rendering/RenderThemeWin.cpp:
      (WebCore::RenderThemeWin::mediaControlsStyleSheet):
      (WebCore::RenderThemeWin::mediaControlsScript):
      * rendering/RenderThemeWin.h:
      
      Source/WebKit/mac:
      
      Define and turn on ENABLE_MEDIA_CONTROLS_SCRIPT.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit2:
      
      Define and turn on ENABLE_MEDIA_CONTROLS_SCRIPT.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WTF:
      
      Define and turn on ENABLE_MEDIA_CONTROLS_SCRIPT.
      
      * wtf/FeatureDefines.h:
      
      LayoutTests:
      
      Rebaseline changed tests and add new (failing) tests to
      TestExpectations.
      
      * media/audio-delete-while-slider-thumb-clicked.html:
      * platform/mac/TestExpectations:
      * platform/mac/fast/hidpi/video-controls-in-hidpi-expected.png:
      * platform/mac/fast/hidpi/video-controls-in-hidpi-expected.txt:
      * platform/mac/fast/layers/video-layer-expected.png:
      * platform/mac/fast/layers/video-layer-expected.txt:
      * platform/mac/fullscreen/video-controls-override-expected.txt: Added.
      * platform/mac/media/audio-controls-rendering-expected.png:
      * platform/mac/media/audio-controls-rendering-expected.txt:
      * platform/mac/media/controls-after-reload-expected.png:
      * platform/mac/media/controls-after-reload-expected.txt:
      * platform/mac/media/controls-strict-expected.png:
      * platform/mac/media/controls-strict-expected.txt:
      * platform/mac/media/controls-styling-strict-expected.png:
      * platform/mac/media/controls-styling-strict-expected.txt:
      * platform/mac/media/controls-without-preload-expected.png:
      * platform/mac/media/controls-without-preload-expected.txt:
      * platform/mac/media/media-controls-clone-expected.png:
      * platform/mac/media/media-controls-clone-expected.txt:
      * webarchive/loading/video-in-webarchive-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156546 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b8744b36
    • akling@apple.com's avatar
      Pass VM instead of ExecState to JSDateMath functions. · 38c79a21
      akling@apple.com authored
      <https://webkit.org/b/121997>
      
      Reviewed by Geoffrey Garen.
      
      The JSC date math functions only need the VM, so pass that from
      callers instead of the whole ExecState.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156540 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      38c79a21
  6. 26 Sep, 2013 12 commits
    • akling@apple.com's avatar
      GetterSetter construction should take a VM instead of ExecState. · 8370dec1
      akling@apple.com authored
      <https://webkit.org/b/121993>
      
      Reviewed by Sam Weinig.
      
      Pass VM& instead of ExecState* to GetterSetter. Updated surrounding
      code at touched sites to cache VM in a local for fewer loads.
      
      JSC release binary size -= 4120 bytes.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156521 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8370dec1
    • oliver@apple.com's avatar
      Make GCC happy · d158362f
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d158362f
    • oliver@apple.com's avatar
      2013-09-25 Oliver Hunt <oliver@apple.com> · f1ae6d11
      oliver@apple.com authored
              Implement prefixed-destructuring assignment
              https://bugs.webkit.org/show_bug.cgi?id=121930
      
              Reviewed by Mark Hahnenberg.
      
              Relanding with fix after rollout
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156514 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f1ae6d11
    • msaboff@apple.com's avatar
      VirtualRegister should be a class · 62aa8b77
      msaboff@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121732
      
      Reviewed by Geoffrey Garen.
      
      This is a refactoring change.  Changed VirtualRegister from an enum to a class.
      Moved Operands::operandIsArgument(), operandToArgument(), argumentToOperand()
      and the similar functions for locals to VirtualRegister class.
      
      This is in preparation for changing the offset for the first local register from
      0 to -1.  This is needed since most native calling conventions have the architected
      frame pointer (e.g. %rbp for X86) point at the slot that stores the previous frame
      pointer.  Local values start below that address.
      
      * bytecode/CodeBlock.cpp:
      * bytecode/CodeBlock.h:
      * bytecode/Instruction.h:
      * bytecode/LazyOperandValueProfile.h:
      * bytecode/MethodOfGettingAValueProfile.cpp:
      * bytecode/Operands.h:
      * bytecode/UnlinkedCodeBlock.cpp:
      * bytecode/UnlinkedCodeBlock.h:
      * bytecode/ValueRecovery.h:
      * bytecode/VirtualRegister.h:
      * bytecompiler/BytecodeGenerator.cpp:
      * bytecompiler/BytecodeGenerator.h:
      * bytecompiler/RegisterID.h:
      * debugger/DebuggerCallFrame.cpp:
      * dfg/DFGAbstractHeap.h:
      * dfg/DFGAbstractInterpreterInlines.h:
      * dfg/DFGArgumentPosition.h:
      * dfg/DFGArgumentsSimplificationPhase.cpp:
      * dfg/DFGByteCodeParser.cpp:
      * dfg/DFGCFGSimplificationPhase.cpp:
      * dfg/DFGCPSRethreadingPhase.cpp:
      * dfg/DFGCapabilities.cpp:
      * dfg/DFGConstantFoldingPhase.cpp:
      * dfg/DFGFlushLivenessAnalysisPhase.cpp:
      * dfg/DFGGraph.cpp:
      * dfg/DFGGraph.h:
      * dfg/DFGJITCode.cpp:
      * dfg/DFGNode.h:
      * dfg/DFGOSREntry.cpp:
      * dfg/DFGOSREntrypointCreationPhase.cpp:
      * dfg/DFGOSRExit.h:
      * dfg/DFGOSRExitCompiler32_64.cpp:
      * dfg/DFGOSRExitCompiler64.cpp:
      * dfg/DFGRegisterBank.h:
      * dfg/DFGScoreBoard.h:
      * dfg/DFGSpeculativeJIT.cpp:
      * dfg/DFGSpeculativeJIT.h:
      * dfg/DFGSpeculativeJIT32_64.cpp:
      * dfg/DFGSpeculativeJIT64.cpp:
      * dfg/DFGValidate.cpp:
      * dfg/DFGValueRecoveryOverride.h:
      * dfg/DFGVariableAccessData.h:
      * dfg/DFGVariableEvent.h:
      * dfg/DFGVariableEventStream.cpp:
      * dfg/DFGVirtualRegisterAllocationPhase.cpp:
      * ftl/FTLExitArgumentForOperand.h:
      * ftl/FTLLink.cpp:
      * ftl/FTLLowerDFGToLLVM.cpp:
      * ftl/FTLOSREntry.cpp:
      * ftl/FTLOSRExit.cpp:
      * ftl/FTLOSRExit.h:
      * ftl/FTLOSRExitCompiler.cpp:
      * interpreter/CallFrame.h:
      * interpreter/Interpreter.cpp:
      * jit/AssemblyHelpers.h:
      * jit/JIT.h:
      * jit/JITCall.cpp:
      * jit/JITCall32_64.cpp:
      * jit/JITInlines.h:
      * jit/JITOpcodes.cpp:
      * jit/JITOpcodes32_64.cpp:
      * jit/JITPropertyAccess32_64.cpp:
      * jit/JITStubs.cpp:
      * llint/LLIntSlowPaths.cpp:
      * profiler/ProfilerBytecodeSequence.cpp:
      * runtime/CommonSlowPaths.cpp:
      * runtime/JSActivation.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156511 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      62aa8b77
    • andersca@apple.com's avatar
      Source/JavaScriptCore: Work around another MSVC bug. · fe416bb9
      andersca@apple.com authored
      * runtime/PrototypeMap.cpp:
      (JSC::PrototypeMap::emptyObjectStructureForPrototype):
      
      Source/WTF: Build fixes.
      
      Fix a paste-o.
      
      * wtf/StdLibExtras.h:
      (std::make_unique):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fe416bb9
    • andersca@apple.com's avatar
      Attempt to fix the FTL build. · 631300c8
      andersca@apple.com authored
      * ftl/FTLAbstractHeap.cpp:
      (JSC::FTL::IndexedAbstractHeap::atSlow):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      631300c8
    • akling@apple.com's avatar
      Pass VM instead of ExecState to many finishCreation() functions. · 22558063
      akling@apple.com authored
      <https://webkit.org/b/121975>
      
      Reviewed by Sam Weinig.
      
      Reduce unnecessary loads by passing the VM to object creation
      functions that don't need the ExecState.
      
      There are tons of opportunities in this area, I'm just scratching
      the surface.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22558063
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r156464 and r156480. · c68e9807
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/156464
      http://trac.webkit.org/changeset/156480
      https://bugs.webkit.org/show_bug.cgi?id=121981
      
      Leaking too much and killi
      ng buildbot. (Requested by xenon on
      #webkit).
      
      Source/JavaScriptCore:
      
      * bytecode/UnlinkedCodeBlock.cpp:
      (JSC::UnlinkedFunctionExecutable::paramString):
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::BytecodeGenerator):
      * bytecompiler/BytecodeGenerator.h:
      (JSC::BytecodeGenerator::emitExpressionInfo):
      * bytecompiler/NodesCodegen.cpp:
      (JSC::ForInNode::emitBytecode):
      (JSC::FuncExprNode::emitBytecode):
      * parser/ASTBuilder.h:
      (JSC::ASTBuilder::createFormalParameterList):
      (JSC::ASTBuilder::createForInLoop):
      (JSC::ASTBuilder::addVar):
      * parser/NodeConstructors.h:
      (JSC::CommaNode::CommaNode):
      (JSC::ParameterNode::ParameterNode):
      (JSC::ForInNode::ForInNode):
      * parser/Nodes.cpp:
      (JSC::FunctionParameters::create):
      (JSC::FunctionParameters::FunctionParameters):
      (JSC::FunctionParameters::~FunctionParameters):
      * parser/Nodes.h:
      (JSC::CommaNode::append):
      (JSC::ParameterNode::ident):
      (JSC::FunctionParameters::at):
      (JSC::FunctionParameters::identifiers):
      * parser/Parser.cpp:
      (JSC::::Parser):
      (JSC::::parseVarDeclaration):
      (JSC::::parseVarDeclarationList):
      (JSC::::parseForStatement):
      (JSC::::parseFormalParameters):
      (JSC::::parseAssignmentExpression):
      * parser/Parser.h:
      (JSC::Scope::declareParameter):
      * parser/SyntaxChecker.h:
      (JSC::SyntaxChecker::createFormalParameterList):
      (JSC::SyntaxChecker::createForInLoop):
      (JSC::SyntaxChecker::operatorStackPop):
      * runtime/JSONObject.cpp:
      * runtime/JSONObject.h:
      
      LayoutTests:
      
      * js/destructuring-assignment-expected.txt: Removed.
      * js/destructuring-assignment.html: Removed.
      * js/mozilla/strict/13.1-expected.txt:
      * js/mozilla/strict/regress-532254-expected.txt:
      * js/mozilla/strict/script-tests/13.1.js:
      * js/regress/destructuring-arguments-expected.txt: Removed.
      * js/regress/destructuring-arguments-length-expected.txt: Removed.
      * js/regress/destructuring-arguments-length.html: Removed.
      * js/regress/destructuring-arguments.html: Removed.
      * js/regress/destructuring-swap-expected.txt: Removed.
      * js/regress/destructuring-swap.html: Removed.
      * js/regress/script-tests/destructuring-arguments-length.js: Removed.
      * js/regress/script-tests/destructuring-arguments.js: Removed.
      * js/regress/script-tests/destructuring-swap.js: Removed.
      * js/script-tests/destructuring-assignment.js: Removed.
      * sputnik/Conformance/13_Function_Definition/S13_A5.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156497 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c68e9807
    • andersca@apple.com's avatar
      Try to fix the Windows build. · 84c504ef
      andersca@apple.com authored
      * jit/JITThunks.cpp:
      (JSC::JITThunks::hostFunctionStub):
      * jit/JITThunks.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156494 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      84c504ef
    • andersca@apple.com's avatar
      Change a couple of HashMap value types from OwnPtr to std::unique_ptr · 2a6c489f
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121973
      
      Reviewed by Andreas Kling.
      
      Source/JavaScriptCore:
      
      * API/JSClassRef.cpp:
      (OpaqueJSClassContextData::OpaqueJSClassContextData):
      (OpaqueJSClass::contextData):
      * API/JSClassRef.h:
      * bytecode/SamplingTool.h:
      * ftl/FTLAbstractHeap.h:
      * parser/Parser.cpp:
      (JSC::::parseFunctionInfo):
      * parser/SourceProviderCache.cpp:
      (JSC::SourceProviderCache::add):
      * parser/SourceProviderCache.h:
      * parser/SourceProviderCacheItem.h:
      (JSC::SourceProviderCacheItem::create):
      * profiler/ProfilerCompilation.cpp:
      (JSC::Profiler::Compilation::executionCounterFor):
      (JSC::Profiler::Compilation::toJS):
      * profiler/ProfilerCompilation.h:
      * runtime/JSGlobalObject.h:
      
      Source/WTF:
      
      * wtf/RefPtrHashMap.h:
      Add a missing std::forward.
      
      * wtf/StdLibExtras.h:
      (std::make_unique):
      Add more overloads.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156492 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2a6c489f
    • mark.lam@apple.com's avatar
      Move DFG inline caching logic into jit/. · 9df8b83f
      mark.lam@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121749.
      
      Reviewed by Geoffrey Garen.
      
      Relanding http://trac.webkit.org/changeset/156235 after rebasing to latest
      revision and fixing build breakages on Windows.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/CallLinkInfo.cpp:
      (JSC::CallLinkInfo::unlink):
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::resetStubInternal):
      * bytecode/StructureStubInfo.h:
      * dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
      (JSC::DFG::CallArrayAllocatorSlowPathGenerator::CallArrayAllocatorSlowPathGenerator):
      (JSC::DFG::CallArrayAllocatorWithVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableSizeSlowPathGenerator):
      * dfg/DFGJITCompiler.h:
      * dfg/DFGOSRExitCompiler.h:
      * dfg/DFGOperations.cpp:
      (JSC::DFG::operationPutByValInternal):
      * dfg/DFGOperations.h:
      (JSC::DFG::operationNewTypedArrayWithSizeForType):
      (JSC::DFG::operationNewTypedArrayWithOneArgumentForType):
      * dfg/DFGRegisterSet.h: Removed.
      * dfg/DFGRepatch.cpp: Removed.
      * dfg/DFGRepatch.h: Removed.
      * dfg/DFGScratchRegisterAllocator.h: Removed.
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::nonSpeculativeCompare):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
      (JSC::DFG::SpeculativeJIT::compare):
      * dfg/DFGSpeculativeJIT.h:
      (JSC::DFG::SpeculativeJIT::callOperation):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::cachedPutById):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
      (JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::cachedPutById):
      (JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
      (JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
      (JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGThunks.cpp:
      * dfg/DFGThunks.h:
      * ftl/FTLIntrinsicRepository.h:
      * ftl/FTLLowerDFGToLLVM.cpp:
      (JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
      * ftl/FTLOSRExitCompiler.h:
      * jit/AssemblyHelpers.h:
      (JSC::AssemblyHelpers::writeBarrier):
      * jit/JIT.cpp:
      (JSC::JIT::linkFor):
      (JSC::JIT::linkSlowCall):
      * jit/JITCall.cpp:
      (JSC::JIT::compileCallEvalSlowCase):
      (JSC::JIT::compileOpCallSlowCase):
      (JSC::JIT::privateCompileClosureCall):
      * jit/JITCall32_64.cpp:
      (JSC::JIT::compileCallEvalSlowCase):
      (JSC::JIT::compileOpCallSlowCase):
      (JSC::JIT::privateCompileClosureCall):
      * jit/JITOperationWrappers.h: Copied from Source/JavaScriptCore/jit/JITOperationWrappers.h.
      * jit/JITOperations.cpp: Copied from Source/JavaScriptCore/jit/JITOperations.cpp.
      (JSC::getHostCallReturnValueWithExecState):
      * jit/JITOperations.h: Copied from Source/JavaScriptCore/jit/JITOperations.h.
      * jit/RegisterSet.h: Copied from Source/JavaScriptCore/jit/RegisterSet.h.
      * jit/Repatch.cpp: Copied from Source/JavaScriptCore/jit/Repatch.cpp.
      (JSC::tryBuildGetByIDList):
      * jit/Repatch.h: Copied from Source/JavaScriptCore/jit/Repatch.h.
      * jit/ScratchRegisterAllocator.h: Copied from Source/JavaScriptCore/jit/ScratchRegisterAllocator.h.
      * jit/ThunkGenerators.cpp:
      (JSC::oldStyleGenerateSlowCaseFor):
      (JSC::oldStyleLinkForGenerator):
      (JSC::oldStyleLinkCallGenerator):
      (JSC::oldStyleLinkConstructGenerator):
      (JSC::oldStyleLinkClosureCallGenerator):
      (JSC::oldStyleVirtualForGenerator):
      (JSC::oldStyleVirtualCallGenerator):
      (JSC::oldStyleVirtualConstructGenerator):
      (JSC::emitPointerValidation):
      (JSC::throwExceptionFromCallSlowPathGenerator):
      (JSC::slowPathFor):
      (JSC::linkForThunkGenerator):
      (JSC::linkCallThunkGenerator):
      (JSC::linkConstructThunkGenerator):
      (JSC::linkClosureCallThunkGenerator):
      (JSC::virtualForThunkGenerator):
      (JSC::virtualCallThunkGenerator):
      (JSC::virtualConstructThunkGenerator):
      * jit/ThunkGenerators.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9df8b83f
    • andersca@apple.com's avatar
      Remove PassWeak.h · cb9e849d
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121971
      
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore:
      
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * heap/PassWeak.h: Removed.
      * heap/WeakInlines.h:
      
      Source/WebCore:
      
      * ForwardingHeaders/heap/PassWeak.h: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cb9e849d