1. 30 May, 2010 4 commits
    • darin@apple.com's avatar
      * wtf/OwnArrayPtr.h: · 1e636bb6
      darin@apple.com authored
      (WTF::OwnArrayPtr::set): Fix the assertion in here to match the one in OwnPtr.
      At some point someone fixed the "asserts when assigning to 0 and the pointer is
      already 0" issue in OwnPtr but forgot to do it here.
      
      Reviewed by Sam Weinig.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1e636bb6
    • xan@webkit.org's avatar
      2010-05-30 Xan Lopez <xlopez@igalia.com> · dc0940bf
      xan@webkit.org authored
              Reviewed by Darin Adler.
      
              Incorrect build dependencies for GObject DOM Bindings
              https://bugs.webkit.org/show_bug.cgi?id=39932
      
              -include does not execute the implicit % expansion, we have to do
              it manually.
      
              * GNUmakefile.am:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60416 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dc0940bf
    • eric@webkit.org's avatar
      2010-05-30 Robert Hogan <robert@webkit.org> · bf29336f
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [Qt] Enhance Qt DRT implementation to support platform scroll wheel events.
      
              https://bugs.webkit.org/show_bug.cgi?id=36004
      
              Unskip:
      
              fast/events/remove-child-onscroll.html
              fast/events/platform-wheelevent-in-scrolling-div.html
              fast/events/continuous-platform-wheelevent-in-scrolling-div.html
      
              Add platform-specific results for Qt. Required because QWheelEvent only supports sending an event
              for scrolling movement one axis at a time. Naturally the test's check for the axis the event does
              not pertain to will 'fail' in such cases. So we get 6 lines of output in total, i.e.:
      
                FAIL event.wheelDeltaY should be -24000. Was 0.
                PASS event.wheelDeltaX is window.expectedScrollLeft*-120
                PASS event.wheelDelta is window.expectedScrollLeft*-120
      
              and then:
      
                PASS event.wheelDeltaY is window.expectedScrollTop*-120
                FAIL event.wheelDeltaX should be -12000. Was 0.
                PASS event.wheelDelta is window.expectedScrollTop*-120
      
              instead of just 3 like Mac:
      
                PASS event.wheelDeltaY is window.expectedScrollTop*-120
                PASS event.wheelDeltaX is window.expectedScrollLeft*-120
                PASS event.wheelDelta is window.expectedScrollTop*-120
      
              * platform/qt-linux/fast/events/continuous-platform-wheelevent-in-scrolling-div-expected.txt: Added.
              * platform/qt-linux/fast/events/platform-wheelevent-in-scrolling-div-expected.txt: Added.
              * platform/qt/Skipped:
      2010-05-30  Robert Hogan  <robert@webkit.org>
      
              Reviewed by Kenneth Rohde Christiansen.
      
              [Qt] Enhance Qt DRT implementation to support platform scroll wheel events.
      
              https://bugs.webkit.org/show_bug.cgi?id=36004
      
              Fix the bug in webkit.org/b/29601 for Qt.  A delta not divisible by 120
              indicates a device that is sending fine-resolution scroll events, so
              use the delta as the number of pixels to scroll.
      
              * platform/qt/WheelEventQt.cpp:
              (WebCore::PlatformWheelEvent::applyDelta):
      2010-05-30  Robert Hogan  <robert@webkit.org>
      
              Reviewed by Kenneth Rohde Christiansen.
      
              [Qt] Enhance Qt DRT implementation to support platform scroll wheel events.
      
              https://bugs.webkit.org/show_bug.cgi?id=36004
      
              * DumpRenderTree/qt/EventSenderQt.cpp:
              (EventSender::EventSender): QApplication::setWheelScrollLines(2) in order to match
                                          Scrollbar::pixelsPerLineStep() for DRT testing.
              (EventSender::mouseScrollBy): Added
              (EventSender::continuousMouseScrollBy): Added
              * DumpRenderTree/qt/EventSenderQt.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60415 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bf29336f
    • jberlin@webkit.org's avatar
      https://bugs.webkit.org/show_bug.cgi?id=39224 · b22994f5
      jberlin@webkit.org authored
      Bug 39224 - Web Inspector: There should be a way to clean up profiles
      
      Reviewed by Pavel Feldman.
      
      WebCore:
      
      Adds a button to clear the profiles from the profiles panel like that
      used for the console, the audits panel, and the timeline panel.
      Consolidates the css rules, since they all use the same image.
      Also allows for individual profiles to be deleted via the keyboard
      (U+0008 or U+007F) and uses this new schema for the Elements Tree.
      
      * English.lproj/localizedStrings.js:
      Add tooltip text for the button to clear the profiles pane.
      
      * inspector/InspectorBackend.idl:
      Add ability to remove the profiles from the backend when they are
      deleted or cleared in the frontend.
      * inspector/InspectorBackend.cpp:
      (WebCore::InspectorBackend::removeProfile):
      (WebCore::InspectorBackend::clearProfiles):
      * inspector/InspectorBackend.h:
      * inspector/InspectorController.cpp:
      (WebCore::InspectorController::removeProfile):
      (WebCore::InspectorController::clearProfiles):
      * inspector/InspectorController.h:
      
      * inspector/front-end/AuditsPanel.js:
      (WebInspector.AuditsPanel):
      Use the 'clear-status-bar-item' class.
      * inspector/front-end/ChangesView.js:
      (WebInspector.ChangesView):
      * inspector/front-end/TimelinePanel.js:
      (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
      * inspector/front-end/audits.css:
      * inspector/front-end/inspector.css:
      (.clear-status-bar-item .glyph):
      * inspector/front-end/inspector.html:
      
      * inspector/front-end/ElementsTreeOutline.js:
      Replace the keyDown handler on the Outline with specific methods to
      handle delete and enter on the TreeElements.
      (WebInspector.ElementsTreeOutline):
      (WebInspector.ElementsTreeOutline.prototype.get editing):
      Return whether or not an element in the tree is currently being edited.
      (WebInspector.ElementsTreeElement.prototype.ondelete):
      (WebInspector.ElementsTreeElement.prototype.onenter):
      
      * inspector/front-end/Panel.js:
      (WebInspector.Panel.prototype.createSidebar):
      Make the TreeOutline for a Panel's sidebar aware of its enclosing Panel.
      
      * inspector/front-end/ProfilesPanel.js:
      (WebInspector.ProfilesPanel):
      Add the clear button.
      (WebInspector.ProfilesPanel.prototype.get statusBarItems):
      (WebInspector.ProfilesPanel.prototype._clearProfiles):
      Remove the profiles from the backend, the reset the frontend interface.
      (WebInspector.ProfilesPanel.prototype.removeProfileHeader):
      Remove the profile from both the frontend and the backend, and clear the
      view when the last profile is removed.
      (WebInspector.ProfilesPanel.prototype._updateInterface):
      Hide the clear button when profiling is disabled.
      (WebInspector.ProfileSidebarTreeElement.prototype.onselect):
      Replace access to global variable with reference to the Panel held by the
      TreeOutline.
      (WebInspector.ProfileSidebarTreeElement.prototype.ondelete):
      Remove the profile corresponding the tree element when the user deletes
      that tree element.
      
      * inspector/front-end/treeoutline.js:
      (TreeOutline.prototype._treeKeyDown):
      Allow the selected tree element to handle the user pressing a delete
      key or enter key.
      
      WebKit/chromium:
      
      * src/js/InspectorControllerImpl.js:
      (devtools.InspectorBackendImpl):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60414 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b22994f5
  2. 29 May, 2010 24 commits
    • eric@webkit.org's avatar
      2010-05-29 Lucas De Marchi <lucas.demarchi@profusion.mobi> · ff308f40
      eric@webkit.org authored
              Reviewed by Darin Adler.
      
              Check if a CC environment variable is defined before hard-coding gcc's
              path. Simply hard-coding it breaks cross-compilation and Linux
              distributions with more than one gcc installed (or not in the default
              path).
              https://bugs.webkit.org/show_bug.cgi?id=35551
      
              No new functionality, so no new tests.
      
              * bindings/scripts/CodeGeneratorObjC.pm:
              * bindings/scripts/IDLParser.pm:
              * dom/make_names.pl:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60413 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ff308f40
    • eric@webkit.org's avatar
      2010-05-29 Pavel Feldman <pfeldman@chromium.org> · dcd6a733
      eric@webkit.org authored
              Reviewed by Timothy Hatcher.
      
              Web Inspector: [REGRESSION] caller locations are not shown on Timeline Panel.
      
              https://bugs.webkit.org/show_bug.cgi?id=39923
      
              * inspector/front-end/TimelinePanel.js:
              (WebInspector.TimelinePanel.FormattedRecord):
              (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
              (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60412 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dcd6a733
    • eric@webkit.org's avatar
      2010-05-29 Vangelis Kokkevis <vangelis@chromium.org> · 1e448739
      eric@webkit.org authored
              Reviewed by Darin Fisher.
      
              Adding support for a runtime flag to enable accelerated
              compositing in chromium.
              https://bugs.webkit.org/show_bug.cgi?id=39917
      
              * public/WebSettings.h:
              * src/WebSettingsImpl.cpp:
              (WebKit::WebSettingsImpl::setAcceleratedCompositingEnabled):
              * src/WebSettingsImpl.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1e448739
    • eric@webkit.org's avatar
      2010-05-29 Dawit Alemayehu <adawit@kde.org> · a084505e
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              Added a WebAction to stop all pending page refresh/redirect
              requests set through the <meta http-equiv="refresh"...> tag.
      
              https://bugs.webkit.org/show_bug.cgi?id=29899
      
              * Api/qwebpage.cpp:
              (QWebPage::triggerAction):
              * Api/qwebpage.h:
              * tests/qwebpage/tst_qwebpage.cpp:
              (tst_QWebPage::testStopScheduledPageRefresh):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a084505e
    • eric@webkit.org's avatar
      2010-05-29 Eric Seidel <eric@webkit.org> · 98eba819
      eric@webkit.org authored
              Reviewed by Adam Barth.
      
              HTML5 parser should block script execution until stylesheets load
              https://bugs.webkit.org/show_bug.cgi?id=39903
      
              All <script> tag execution now blocks on stylesheet load, including
              inline <script> content which the old parser doesn't support blocking.
      
              Hyatt says we could now get rid of updateLayoutIgnorePendingStylesheets
              once our primary parser knows how to wait for stylesheets
              before executing inline <script> content.
      
              All of http/tests/local passes in --html5-parser mode now.
              Also fixed fast/parser/tokenizer-close-during-document-write.html.
      
              * html/HTML5ScriptRunner.cpp:
              (WebCore::HTML5ScriptRunner::HTML5ScriptRunner):
               - Added a m_hasScriptsWaitingForStylesheets bool so that we can
                 detect when we're actually waiting on stylesheets or not.
                 If we're not waiting on stylesheets then we're still parsing and
                 executing scripts would cause parser/script reentrancy and bad news bears.
              (WebCore::HTML5ScriptRunner::isPendingScriptReady):
               - Re-enable the check that the stylesheets have loaded.
              (WebCore::HTML5ScriptRunner::executePendingScript):
               - ASSERT that stylesheets have loaded.
              (WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad):
               - ASSERT that this is never called reentrantly.
              (WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets):
               - Execute any scripts which were blocked on stylesheet loads.
               - ASSERT (in two ways) that this is never called reentrantly.
              * html/HTML5ScriptRunner.h:
              (WebCore::HTML5ScriptRunner::hasScriptsWaitingForStylesheets):
               - Callers need to check this before calling executeScriptsWaitingForLoad.
              (WebCore::HTML5ScriptRunner::inScriptExecution):
               - Used by callers to ASSERT that we're not called re-entrantly.
              * html/HTML5Tokenizer.cpp:
              (WebCore::HTML5Tokenizer::HTML5Tokenizer):
               - Add m_hasScriptsWaitingForStylesheets for tracking if we've paused
                 due to stylesheets or not.  Callers need to know this to know if they
                 should ignore executeScriptsWaitingForStylesheets calls from
                 Document (which may be generated when parsing </script> tags).
                 We only care about executeScriptsWaitingForStylesheets calls when
                 we've actually blocked the parser due to waiting on a stylesheet load.
              (WebCore::HTML5Tokenizer::end):
               - Move m_source.close() back to this method now that I understand more
                 about when finish() is called.  This should fix several layout test ASSERTS.
              (WebCore::HTML5Tokenizer::finish):
               - This should not close m_source since scripts may still write to
                 the document.  Set m_wasWaitingOnScriptsDuringFinish to indicate
                 that we were not able to end parsing during finish.
              (WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution):
               - ASSERT that this is never caller re-entrantly.
              (WebCore::HTML5Tokenizer::executeScript):
               - ASSERT that the ScriptRunner always thinks we're running scripts when this is called.
              (WebCore::HTML5Tokenizer::executingScript):
               - Added implementation to fix fast/parser/tokenizer-close-during-document-write.html
              (WebCore::HTML5Tokenizer::notifyFinished):
               - ASSERT that this is never called re-entrantly.
              (WebCore::HTML5Tokenizer::executeScriptsWaitingForStylesheets):
               - Call the ScriptRunner to tell it that stylesheets have loaded if
                 it is blocked on stylesheet loads.
               - ASSERT(m_hasScriptsWaitingForStylesheets).  We can't just assert
                 isPaused() since we may be paused for script loads.
              * html/HTML5Tokenizer.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60409 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      98eba819
    • eric@webkit.org's avatar
      2010-05-29 Laszlo Gombos <laszlo.1.gombos@nokia.com> · 6c242be7
      eric@webkit.org authored
              Reviewed by Darin Adler.
      
              Remove set but never used variables
              https://bugs.webkit.org/show_bug.cgi?id=35252
      
              No new tests as there is no new functionality.
      
              * accessibility/AccessibilityRenderObject.cpp:
              (WebCore::lastChildConsideringContinuation):
              * css/CSSFontSelector.cpp:
              (WebCore::CSSFontSelector::addFontFaceRule):
              * css/CSSParser.cpp:
              (WebCore::CSSParser::parseFontFaceUnicodeRange):
              * editing/InsertParagraphSeparatorCommand.cpp:
              (WebCore::InsertParagraphSeparatorCommand::doApply):
              * loader/appcache/ApplicationCacheStorage.cpp:
              (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
              * page/EventHandler.cpp:
              (WebCore::EventHandler::handleWheelEvent):
              * page/animation/AnimationBase.cpp:
              (WebCore::AnimationBase::getTimeToNextEvent):
              * rendering/AutoTableLayout.cpp:
              (WebCore::AutoTableLayout::recalcColumn):
              (WebCore::AutoTableLayout::layout):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::calcInlinePrefWidths):
              * rendering/RenderSVGResourceClipper.cpp:
              (WebCore::RenderSVGResourceClipper::createClipData):
              * storage/DatabaseTracker.cpp:
              (WebCore::DatabaseTracker::canEstablishDatabase):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60408 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6c242be7
    • eric@webkit.org's avatar
      2010-05-29 Sterling Swigart <sswigart@google.com> · b6a287f8
      eric@webkit.org authored
              Reviewed by David Levin.
      
              Adding tests to canvas.html performance test
              https://bugs.webkit.org/show_bug.cgi?id=39883
      
              * demos/canvas-perf/canvas.html:
              Added tests for:
                  strokeText
                  fillText
                  strokeLine
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60407 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b6a287f8
    • eric@webkit.org's avatar
      2010-05-29 Sheriff Bot <webkit.review.bot@gmail.com> · 160f83cf
      eric@webkit.org authored
              Unreviewed, rolling out r60405.
              http://trac.webkit.org/changeset/60405
              https://bugs.webkit.org/show_bug.cgi?id=39921
      
              It broke GTK build. (Requested by Ossy on #webkit).
      
              * dom/Node.cpp:
              (WebCore::Node::getElementsByTagName):
              (WebCore::Node::getElementsByTagNameNS):
              * dom/Node.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60406 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      160f83cf
    • eric@webkit.org's avatar
      2010-05-29 Anton Muhin <antonm@chromium.org> · 844a6c59
      eric@webkit.org authored
              Reviewed by Darin Adler.
      
              Make NodeList getters take AtomicString instead of plain String
              https://bugs.webkit.org/show_bug.cgi?id=39892
      
              Those methods turn String into AtomicString later.  And this conversion
              is faster if underlying string is already atomic.
              That buys small (~2-3%) speed up for Chromium on Dromaeo DOM Core.
              I don't know if Safari benefits from it.
      
              * dom/Node.cpp:
              (WebCore::Node::getElementsByTagName):
              (WebCore::Node::getElementsByTagNameNS):
              * dom/Node.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60405 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      844a6c59
    • eric@webkit.org's avatar
      2010-05-29 Justin Schuh <jschuh@chromium.org> · c2484acd
      eric@webkit.org authored
              Reviewed by Adam Barth.
      
              Allow descendant frame navigation for file URLs when allowFileAccessFromFileURLs is false
              https://bugs.webkit.org/show_bug.cgi?id=39750
      
              Check that descendant file: frames can navigate each other.
      
              * fast/frames/location-change-no-file-access-expected.txt: Added.
              * fast/frames/location-change-no-file-access.html: Added.
              * fast/frames/resources/no-file-access-frame-1.html: Added.
              * fast/frames/resources/no-file-access-frame-2.html: Added.
      2010-05-29  Justin Schuh  <jschuh@chromium.org>
      
              Reviewed by Adam Barth.
      
              Allow descendant frame navigation for file URLs when allowFileAccessFromFileURLs is false
              https://bugs.webkit.org/show_bug.cgi?id=39750
      
              Fix for local HTML package breakage when each file is its own origin.
              In this case we should allow descendant file: frames to navigate each
              other when they share the same top frame.
      
              Test: fast/frames/location-change-no-file-access.html
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::shouldAllowNavigation):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60404 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c2484acd
    • ggaren@apple.com's avatar
      Windows build fix: Updated exported symbols. · 96cb83ea
      ggaren@apple.com authored
              
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60403 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      96cb83ea
    • ggaren@apple.com's avatar
      Disabled ENABLE_JIT_OPTIMIZE_NATIVE_CALL on Windows for now, until I · 3efc331f
      ggaren@apple.com authored
      can figure out why it's crashing.
      
      * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60402 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3efc331f
    • ggaren@apple.com's avatar
      Fixed Windows crash seen on buildbot. · 4e684785
      ggaren@apple.com authored
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::privateCompileCTINativeCall): __fastcall puts the first
      argument in ecx.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60401 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4e684785
    • ggaren@apple.com's avatar
      Qt build fix: Updated for ArgList changes. · 1405f8a0
      ggaren@apple.com authored
      * bridge/qt/qt_runtime.cpp:
      (JSC::Bindings::QtRuntimeConnectionMethod::call):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1405f8a0
    • ggaren@apple.com's avatar
      Qt build fix: Updated for ArgList changes. · 31427ffa
      ggaren@apple.com authored
      * bridge/qt/qt_runtime.cpp:
      (JSC::Bindings::QtRuntimeMetaMethod::call):
      (JSC::Bindings::QtRuntimeConnectionMethod::call):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      31427ffa
    • ggaren@apple.com's avatar
      Qt build fix: Updated for ArgList changes. · ca549372
      ggaren@apple.com authored
      * bridge/qt/qt_pixmapruntime.cpp:
      (JSC::Bindings::QtPixmapInstance::invokeMethod):
      * bridge/qt/qt_runtime.cpp:
      (JSC::Bindings::findMethodIndex):
      (JSC::Bindings::QtRuntimeMetaMethod::call):
      (JSC::Bindings::QtRuntimeConnectionMethod::call):
      * bridge/qt/qt_runtime.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60398 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ca549372
    • ggaren@apple.com's avatar
      Qt build fix: Updated for ArgList changes. · 4450022c
      ggaren@apple.com authored
      * bridge/qt/qt_pixmapruntime.cpp:
      (JSC::Bindings::QtPixmapAssignToElementMethod::invoke):
      (JSC::Bindings::QtPixmapToDataUrlMethod::invoke):
      (JSC::Bindings::QtPixmapToStringMethod::invoke):
      (JSC::Bindings::QtPixmapInstance::invokeMethod):
      * bridge/qt/qt_pixmapruntime.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60397 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4450022c
    • ggaren@apple.com's avatar
      Qt build fix: Keep this borken class limping along. · 17681f97
      ggaren@apple.com authored
      * bridge/qt/qt_instance.cpp:
      (JSC::Bindings::QtInstance::invokeMethod):
      * bridge/qt/qt_instance.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      17681f97
    • ggaren@apple.com's avatar
      Windows build fix: Updated exported symbols. · 2d0e44ec
      ggaren@apple.com authored
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60395 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2d0e44ec
    • ggaren@apple.com's avatar
      Qt build fix: disable a little more stuff when JIT_OPTIMIZE_NATIVE_CALL · edc41f45
      ggaren@apple.com authored
      is disabled.
      
      * runtime/Lookup.cpp:
      (JSC::setUpStaticFunctionSlot):
      * runtime/Lookup.h:
      * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60394 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      edc41f45
    • ggaren@apple.com's avatar
      Windows build fix: Updated exported symbols. · 674e72dd
      ggaren@apple.com authored
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60393 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      674e72dd
    • ggaren@apple.com's avatar
      JavaScriptCore: Simplified the host calling convention. · fea29f1e
      ggaren@apple.com authored
              
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      22.5% speedup on 32-bit host function calls. 9.5% speedup on 64-bit host
      function calls.
              
      No change on SunSpider.
              
      All JS calls (but not constructs, yet) now go through the normal JS
      calling convention via the RegisterFile. As a result, the host calling
      convention, which used to be this
      
          JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*, JSObject*, JSValue thisValue, const ArgList&)
                  
      is now this
      
          JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*)
                  
      Callee, 'this', and argument access all hapen relative to the ExecState*,
      which is a pointer into the RegisterFile.
              
      This patch comes in two parts.
              
      PART ONE: Functional code changes.
              
      * wtf/Platform.h: Disabled optimized calls on platforms I didn't test.
      We can re-enable once we verify that host calls on these platforms are
      correct.
      
      * debugger/DebuggerCallFrame.cpp:
      (JSC::DebuggerCallFrame::functionName):
      (JSC::DebuggerCallFrame::calculatedFunctionName): Updated for change to
      ExecState::callee().
      
      (JSC::DebuggerCallFrame::thisObject): Updated for removal of ExecState::thisValue().
      
      * interpreter/CallFrame.cpp:
      * interpreter/CallFrame.h:
      (JSC::ExecState::callee):
      (JSC::ExecState::scopeChain):
      (JSC::ExecState::init): Changed callee() to be JSObject* instead of
      JSFunction* -- now, it might be some other callable host object.
      
      (JSC::ExecState::hostThisRegister):
      (JSC::ExecState::hostThisValue):
      (JSC::ExecState::argumentCount):
      (JSC::ExecState::argumentCountIncludingThis):
      (JSC::ExecState::argument):
      (JSC::ExecState::setArgumentCountIncludingThis):
      (JSC::ExecState::setCallee): Added convenient accessors for arguments
      from within a host function. Removed thisValue() because it was too
      tempting to use incorrectly, and it only had one or two clients, anyway.
      
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue().
      
      (JSC::Interpreter::throwException): Be sure to shrink the register file
      before invoking the exception handler, to reduce the chances that the
      handler will re-throw in the case of stack overflow. (Re-throwing is now
      more likely than it used to be, since standardizing the calling convention
      implicitly added stack overflow checks to some places where they used to be missing.)
      
      (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope.
      Updated for CallFrame::init API change.
      
      (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope.
      Updated for CallFrame::init API change. Added support for calling a host
      function.
      
      (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope.
      Updated for CallFrame::init API change. 
      
      (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change. 
      
      (JSC::Interpreter::privateExecute): Updated for CallFrame::init API change.
      Added some explicit JSValue(JSObject*) initialization, since relaxing
      the JSFunction* restriction on callee has made register types more ambiguous.
      Removed toThisObject() conversion, since all callees do it themselves now.
      Updated host function call for new host function signature. Updated for
      change to ExecState::argumentCount() API.
      
      * interpreter/Register.h:
      (JSC::Register::):
      (JSC::Register::operator=):
      (JSC::Register::function): Changed callee() to be JSObject* instead of
      JSFunction* -- now, it might be some other callable host object.
      
      * jit/JITOpcodes.cpp:
      (JSC::JIT::privateCompileCTINativeCall):
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::privateCompileCTINativeCall): Deleted a bunch of code that
      set up the arguments to host functions -- all but one of the arguments
      are gone now. This is the actual optimization.
      
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION): Updated for ExecState and Register API
      changes noted above. Removed toThisObject() conversion, since all callees
      do it themselves now.
              
      * runtime/ArgList.h:
      (JSC::ArgList::ArgList): ArgList is getting close to unused. Added a
      temporary shim for converting from ExecState* to ArgList where it's still
      necessary.
      
      * runtime/Arguments.h:
      (JSC::Arguments::getArgumentsData):
      (JSC::Arguments::Arguments): Updated for ExecState and Register API
      changes noted above. 
      
      * runtime/CallData.cpp:
      (JSC::call): Changed call always to call Interpreter::executeCall, even
      for host functions. This ensures that the normal calling convention is
      set up in the RegsiterFile when calling from C++ to host function.
      
      * runtime/CallData.h: Changed host function signature as described above.
      
      * runtime/ConstructData.cpp:
      (JSC::construct): Moved JSFunction::construct code here so I could nix
      JSFunction::call and JSFunction::call. We want a JSFunction-agnostic
      way to call and construct, so that everything works naturally for non-
      JSFunction objects. 
      
      * runtime/JSFunction.cpp:
      (JSC::callHostFunctionAsConstructor):
      * runtime/JSFunction.h: Updated for ExecState and Register API changes
      noted above. Nixed JSFunction::call and JSFunction::construct, noted above.
       
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::init): Ditto.
      
      PART TWO: Global search and replace.
              
      In the areas below, I used global search-and-replace to change
          (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
          args.size() => exec->argumentCount()
          args.at(i) => exec->argument(i)
      
      * API/JSCallbackFunction.cpp:
      (JSC::JSCallbackFunction::call):
      * API/JSCallbackFunction.h:
      * API/JSCallbackObject.h:
      * API/JSCallbackObjectFunctions.h:
      (JSC::::call):
      * JavaScriptCore.exp:
      * jsc.cpp:
      (functionPrint):
      (functionDebug):
      (functionGC):
      (functionVersion):
      (functionRun):
      (functionLoad):
      (functionCheckSyntax):
      (functionSetSamplingFlags):
      (functionClearSamplingFlags):
      (functionReadline):
      (functionQuit):
      * runtime/ArrayConstructor.cpp:
      (JSC::callArrayConstructor):
      (JSC::arrayConstructorIsArray):
      * runtime/ArrayPrototype.cpp:
      (JSC::arrayProtoFuncToString):
      (JSC::arrayProtoFuncToLocaleString):
      (JSC::arrayProtoFuncJoin):
      (JSC::arrayProtoFuncConcat):
      (JSC::arrayProtoFuncPop):
      (JSC::arrayProtoFuncPush):
      (JSC::arrayProtoFuncReverse):
      (JSC::arrayProtoFuncShift):
      (JSC::arrayProtoFuncSlice):
      (JSC::arrayProtoFuncSort):
      (JSC::arrayProtoFuncSplice):
      (JSC::arrayProtoFuncUnShift):
      (JSC::arrayProtoFuncFilter):
      (JSC::arrayProtoFuncMap):
      (JSC::arrayProtoFuncEvery):
      (JSC::arrayProtoFuncForEach):
      (JSC::arrayProtoFuncSome):
      (JSC::arrayProtoFuncReduce):
      (JSC::arrayProtoFuncReduceRight):
      (JSC::arrayProtoFuncIndexOf):
      (JSC::arrayProtoFuncLastIndexOf):
      * runtime/BooleanConstructor.cpp:
      (JSC::callBooleanConstructor):
      * runtime/BooleanPrototype.cpp:
      (JSC::booleanProtoFuncToString):
      (JSC::booleanProtoFuncValueOf):
      * runtime/DateConstructor.cpp:
      (JSC::callDate):
      (JSC::dateParse):
      (JSC::dateNow):
      (JSC::dateUTC):
      * runtime/DatePrototype.cpp:
      (JSC::formatLocaleDate):
      (JSC::fillStructuresUsingTimeArgs):
      (JSC::fillStructuresUsingDateArgs):
      (JSC::dateProtoFuncToString):
      (JSC::dateProtoFuncToUTCString):
      (JSC::dateProtoFuncToISOString):
      (JSC::dateProtoFuncToDateString):
      (JSC::dateProtoFuncToTimeString):
      (JSC::dateProtoFuncToLocaleString):
      (JSC::dateProtoFuncToLocaleDateString):
      (JSC::dateProtoFuncToLocaleTimeString):
      (JSC::dateProtoFuncGetTime):
      (JSC::dateProtoFuncGetFullYear):
      (JSC::dateProtoFuncGetUTCFullYear):
      (JSC::dateProtoFuncToGMTString):
      (JSC::dateProtoFuncGetMonth):
      (JSC::dateProtoFuncGetUTCMonth):
      (JSC::dateProtoFuncGetDate):
      (JSC::dateProtoFuncGetUTCDate):
      (JSC::dateProtoFuncGetDay):
      (JSC::dateProtoFuncGetUTCDay):
      (JSC::dateProtoFuncGetHours):
      (JSC::dateProtoFuncGetUTCHours):
      (JSC::dateProtoFuncGetMinutes):
      (JSC::dateProtoFuncGetUTCMinutes):
      (JSC::dateProtoFuncGetSeconds):
      (JSC::dateProtoFuncGetUTCSeconds):
      (JSC::dateProtoFuncGetMilliSeconds):
      (JSC::dateProtoFuncGetUTCMilliseconds):
      (JSC::dateProtoFuncGetTimezoneOffset):
      (JSC::dateProtoFuncSetTime):
      (JSC::setNewValueFromTimeArgs):
      (JSC::setNewValueFromDateArgs):
      (JSC::dateProtoFuncSetMilliSeconds):
      (JSC::dateProtoFuncSetUTCMilliseconds):
      (JSC::dateProtoFuncSetSeconds):
      (JSC::dateProtoFuncSetUTCSeconds):
      (JSC::dateProtoFuncSetMinutes):
      (JSC::dateProtoFuncSetUTCMinutes):
      (JSC::dateProtoFuncSetHours):
      (JSC::dateProtoFuncSetUTCHours):
      (JSC::dateProtoFuncSetDate):
      (JSC::dateProtoFuncSetUTCDate):
      (JSC::dateProtoFuncSetMonth):
      (JSC::dateProtoFuncSetUTCMonth):
      (JSC::dateProtoFuncSetFullYear):
      (JSC::dateProtoFuncSetUTCFullYear):
      (JSC::dateProtoFuncSetYear):
      (JSC::dateProtoFuncGetYear):
      (JSC::dateProtoFuncToJSON):
      * runtime/ErrorConstructor.cpp:
      (JSC::callErrorConstructor):
      * runtime/ErrorPrototype.cpp:
      (JSC::errorProtoFuncToString):
      * runtime/FunctionConstructor.cpp:
      (JSC::callFunctionConstructor):
      * runtime/FunctionPrototype.cpp:
      (JSC::callFunctionPrototype):
      (JSC::functionProtoFuncToString):
      (JSC::functionProtoFuncApply):
      (JSC::functionProtoFuncCall):
      * runtime/JSGlobalObjectFunctions.cpp:
      (JSC::encode):
      (JSC::decode):
      (JSC::globalFuncEval):
      (JSC::globalFuncParseInt):
      (JSC::globalFuncParseFloat):
      (JSC::globalFuncIsNaN):
      (JSC::globalFuncIsFinite):
      (JSC::globalFuncDecodeURI):
      (JSC::globalFuncDecodeURIComponent):
      (JSC::globalFuncEncodeURI):
      (JSC::globalFuncEncodeURIComponent):
      (JSC::globalFuncEscape):
      (JSC::globalFuncUnescape):
      (JSC::globalFuncJSCPrint):
      * runtime/JSGlobalObjectFunctions.h:
      * runtime/JSONObject.cpp:
      (JSC::JSONProtoFuncParse):
      (JSC::JSONProtoFuncStringify):
      * runtime/JSString.h:
      * runtime/MathObject.cpp:
      (JSC::mathProtoFuncAbs):
      (JSC::mathProtoFuncACos):
      (JSC::mathProtoFuncASin):
      (JSC::mathProtoFuncATan):
      (JSC::mathProtoFuncATan2):
      (JSC::mathProtoFuncCeil):
      (JSC::mathProtoFuncCos):
      (JSC::mathProtoFuncExp):
      (JSC::mathProtoFuncFloor):
      (JSC::mathProtoFuncLog):
      (JSC::mathProtoFuncMax):
      (JSC::mathProtoFuncMin):
      (JSC::mathProtoFuncPow):
      (JSC::mathProtoFuncRandom):
      (JSC::mathProtoFuncRound):
      (JSC::mathProtoFuncSin):
      (JSC::mathProtoFuncSqrt):
      (JSC::mathProtoFuncTan):
      * runtime/NativeErrorConstructor.cpp:
      (JSC::callNativeErrorConstructor):
      * runtime/NumberConstructor.cpp:
      (JSC::callNumberConstructor):
      * runtime/NumberPrototype.cpp:
      (JSC::numberProtoFuncToString):
      (JSC::numberProtoFuncToLocaleString):
      (JSC::numberProtoFuncValueOf):
      (JSC::numberProtoFuncToFixed):
      (JSC::numberProtoFuncToExponential):
      (JSC::numberProtoFuncToPrecision):
      * runtime/ObjectConstructor.cpp:
      (JSC::callObjectConstructor):
      (JSC::objectConstructorGetPrototypeOf):
      (JSC::objectConstructorGetOwnPropertyDescriptor):
      (JSC::objectConstructorGetOwnPropertyNames):
      (JSC::objectConstructorKeys):
      (JSC::objectConstructorDefineProperty):
      (JSC::objectConstructorDefineProperties):
      (JSC::objectConstructorCreate):
      * runtime/ObjectPrototype.cpp:
      (JSC::objectProtoFuncValueOf):
      (JSC::objectProtoFuncHasOwnProperty):
      (JSC::objectProtoFuncIsPrototypeOf):
      (JSC::objectProtoFuncDefineGetter):
      (JSC::objectProtoFuncDefineSetter):
      (JSC::objectProtoFuncLookupGetter):
      (JSC::objectProtoFuncLookupSetter):
      (JSC::objectProtoFuncPropertyIsEnumerable):
      (JSC::objectProtoFuncToLocaleString):
      (JSC::objectProtoFuncToString):
      * runtime/ObjectPrototype.h:
      * runtime/Operations.h:
      (JSC::jsString):
      * runtime/RegExpConstructor.cpp:
      (JSC::callRegExpConstructor):
      * runtime/RegExpObject.cpp:
      (JSC::RegExpObject::test):
      (JSC::RegExpObject::exec):
      (JSC::callRegExpObject):
      (JSC::RegExpObject::match):
      * runtime/RegExpObject.h:
      * runtime/RegExpPrototype.cpp:
      (JSC::regExpProtoFuncTest):
      (JSC::regExpProtoFuncExec):
      (JSC::regExpProtoFuncCompile):
      (JSC::regExpProtoFuncToString):
      * runtime/StringConstructor.cpp:
      (JSC::stringFromCharCodeSlowCase):
      (JSC::stringFromCharCode):
      (JSC::callStringConstructor):
      * runtime/StringPrototype.cpp:
      (JSC::stringProtoFuncReplace):
      (JSC::stringProtoFuncToString):
      (JSC::stringProtoFuncCharAt):
      (JSC::stringProtoFuncCharCodeAt):
      (JSC::stringProtoFuncConcat):
      (JSC::stringProtoFuncIndexOf):
      (JSC::stringProtoFuncLastIndexOf):
      (JSC::stringProtoFuncMatch):
      (JSC::stringProtoFuncSearch):
      (JSC::stringProtoFuncSlice):
      (JSC::stringProtoFuncSplit):
      (JSC::stringProtoFuncSubstr):
      (JSC::stringProtoFuncSubstring):
      (JSC::stringProtoFuncToLowerCase):
      (JSC::stringProtoFuncToUpperCase):
      (JSC::stringProtoFuncLocaleCompare):
      (JSC::stringProtoFuncBig):
      (JSC::stringProtoFuncSmall):
      (JSC::stringProtoFuncBlink):
      (JSC::stringProtoFuncBold):
      (JSC::stringProtoFuncFixed):
      (JSC::stringProtoFuncItalics):
      (JSC::stringProtoFuncStrike):
      (JSC::stringProtoFuncSub):
      (JSC::stringProtoFuncSup):
      (JSC::stringProtoFuncFontcolor):
      (JSC::stringProtoFuncFontsize):
      (JSC::stringProtoFuncAnchor):
      (JSC::stringProtoFuncLink):
      (JSC::stringProtoFuncTrim):
      (JSC::stringProtoFuncTrimLeft):
      (JSC::stringProtoFuncTrimRight):
      
      JavaScriptGlue: Simplified the host calling convention.
      
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      PART ONE: Functional code changes.
              
      [ None in JavaScriptGlue ]
              
      PART TWO: Global search and replace.
              
      In the areas below, I used global search-and-replace to change
          (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
          args.size() => exec->argumentCount()
          args.at(i) => exec->argument(i)
      
      * JSObject.cpp:
      (nativeCallFunction):
      * UserObjectImp.cpp:
      (UserObjectImp::callAsFunction):
      * UserObjectImp.h:
      
      WebCore: Simplified the host calling convention.
      
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      PART ONE: Functional code changes.
              
      [ None in WebCore ]
              
      PART TWO: Global search and replace.
              
      In the areas below, I used global search-and-replace to change
          (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
          args.size() => exec->argumentCount()
          args.at(i) => exec->argument(i)
      
      * bindings/js/JSArrayBufferViewCustom.cpp:
      (WebCore::JSArrayBufferView::slice):
      * bindings/js/JSArrayBufferViewHelper.h:
      (WebCore::setWebGLArrayHelper):
      * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
      (WebCore::JSCanvasRenderingContext2D::setFillColor):
      (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
      (WebCore::JSCanvasRenderingContext2D::strokeRect):
      (WebCore::JSCanvasRenderingContext2D::drawImage):
      (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
      (WebCore::JSCanvasRenderingContext2D::setShadow):
      (WebCore::JSCanvasRenderingContext2D::createPattern):
      (WebCore::JSCanvasRenderingContext2D::createImageData):
      (WebCore::JSCanvasRenderingContext2D::putImageData):
      (WebCore::JSCanvasRenderingContext2D::fillText):
      (WebCore::JSCanvasRenderingContext2D::strokeText):
      * bindings/js/JSClipboardCustom.cpp:
      (WebCore::JSClipboard::clearData):
      (WebCore::JSClipboard::getData):
      (WebCore::JSClipboard::setDragImage):
      * bindings/js/JSDOMApplicationCacheCustom.cpp:
      (WebCore::JSDOMApplicationCache::hasItem):
      (WebCore::JSDOMApplicationCache::add):
      (WebCore::JSDOMApplicationCache::remove):
      * bindings/js/JSDOMFormDataCustom.cpp:
      (WebCore::JSDOMFormData::append):
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::JSDOMWindow::open):
      (WebCore::JSDOMWindow::showModalDialog):
      (WebCore::JSDOMWindow::postMessage):
      (WebCore::JSDOMWindow::setTimeout):
      (WebCore::JSDOMWindow::setInterval):
      (WebCore::JSDOMWindow::addEventListener):
      (WebCore::JSDOMWindow::removeEventListener):
      (WebCore::JSDOMWindow::openDatabase):
      * bindings/js/JSDatabaseCustom.cpp:
      (WebCore::JSDatabase::changeVersion):
      (WebCore::createTransaction):
      (WebCore::JSDatabase::transaction):
      (WebCore::JSDatabase::readTransaction):
      * bindings/js/JSDatabaseSyncCustom.cpp:
      (WebCore::JSDatabaseSync::changeVersion):
      (WebCore::createTransaction):
      (WebCore::JSDatabaseSync::transaction):
      (WebCore::JSDatabaseSync::readTransaction):
      * bindings/js/JSDedicatedWorkerContextCustom.cpp:
      (WebCore::JSDedicatedWorkerContext::postMessage):
      * bindings/js/JSDesktopNotificationsCustom.cpp:
      (WebCore::JSNotificationCenter::requestPermission):
      * bindings/js/JSFloatArrayCustom.cpp:
      (WebCore::JSFloatArray::set):
      * bindings/js/JSGeolocationCustom.cpp:
      (WebCore::JSGeolocation::getCurrentPosition):
      (WebCore::JSGeolocation::watchPosition):
      * bindings/js/JSHTMLAllCollectionCustom.cpp:
      (WebCore::callHTMLAllCollection):
      (WebCore::JSHTMLAllCollection::item):
      (WebCore::JSHTMLAllCollection::namedItem):
      * bindings/js/JSHTMLCanvasElementCustom.cpp:
      (WebCore::JSHTMLCanvasElement::getContext):
      * bindings/js/JSHTMLCollectionCustom.cpp:
      (WebCore::callHTMLCollection):
      (WebCore::JSHTMLCollection::item):
      (WebCore::JSHTMLCollection::namedItem):
      * bindings/js/JSHTMLDocumentCustom.cpp:
      (WebCore::JSHTMLDocument::open):
      (WebCore::documentWrite):
      (WebCore::JSHTMLDocument::write):
      (WebCore::JSHTMLDocument::writeln):
      * bindings/js/JSHTMLInputElementCustom.cpp:
      (WebCore::JSHTMLInputElement::setSelectionRange):
      * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
      (WebCore::JSHTMLOptionsCollection::add):
      (WebCore::JSHTMLOptionsCollection::remove):
      * bindings/js/JSHTMLSelectElementCustom.cpp:
      (WebCore::JSHTMLSelectElement::remove):
      * bindings/js/JSHistoryCustom.cpp:
      (WebCore::JSHistory::pushState):
      (WebCore::JSHistory::replaceState):
      * bindings/js/JSInjectedScriptHostCustom.cpp:
      (WebCore::JSInjectedScriptHost::databaseForId):
      (WebCore::JSInjectedScriptHost::currentCallFrame):
      (WebCore::JSInjectedScriptHost::nodeForId):
      (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
      (WebCore::JSInjectedScriptHost::selectDatabase):
      (WebCore::JSInjectedScriptHost::selectDOMStorage):
      (WebCore::JSInjectedScriptHost::reportDidDispatchOnInjectedScript):
      * bindings/js/JSInspectorFrontendHostCustom.cpp:
      (WebCore::JSInspectorFrontendHost::platform):
      (WebCore::JSInspectorFrontendHost::port):
      (WebCore::JSInspectorFrontendHost::showContextMenu):
      * bindings/js/JSInt16ArrayCustom.cpp:
      (WebCore::JSInt16Array::set):
      * bindings/js/JSInt32ArrayCustom.cpp:
      (WebCore::JSInt32Array::set):
      * bindings/js/JSInt8ArrayCustom.cpp:
      (WebCore::JSInt8Array::set):
      * bindings/js/JSJavaScriptCallFrameCustom.cpp:
      (WebCore::JSJavaScriptCallFrame::evaluate):
      (WebCore::JSJavaScriptCallFrame::scopeType):
      * bindings/js/JSLocationCustom.cpp:
      (WebCore::JSLocation::replace):
      (WebCore::JSLocation::reload):
      (WebCore::JSLocation::assign):
      (WebCore::JSLocation::toString):
      * bindings/js/JSMessageEventCustom.cpp:
      (WebCore::JSMessageEvent::initMessageEvent):
      * bindings/js/JSMessagePortCustom.cpp:
      (WebCore::JSMessagePort::postMessage):
      * bindings/js/JSMessagePortCustom.h:
      (WebCore::handlePostMessage):
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::insertBefore):
      (WebCore::JSNode::replaceChild):
      (WebCore::JSNode::removeChild):
      (WebCore::JSNode::appendChild):
      * bindings/js/JSNodeListCustom.cpp:
      (WebCore::callNodeList):
      * bindings/js/JSPluginElementFunctions.cpp:
      (WebCore::callPlugin):
      * bindings/js/JSSQLResultSetRowListCustom.cpp:
      (WebCore::JSSQLResultSetRowList::item):
      * bindings/js/JSSQLTransactionCustom.cpp:
      (WebCore::JSSQLTransaction::executeSql):
      * bindings/js/JSSQLTransactionSyncCustom.cpp:
      (WebCore::JSSQLTransactionSync::executeSql):
      * bindings/js/JSSVGLengthCustom.cpp:
      (WebCore::JSSVGLength::convertToSpecifiedUnits):
      * bindings/js/JSSVGMatrixCustom.cpp:
      (WebCore::JSSVGMatrix::multiply):
      (WebCore::JSSVGMatrix::inverse):
      (WebCore::JSSVGMatrix::rotateFromVector):
      * bindings/js/JSSVGPODListCustom.h:
      (WebCore::JSSVGPODListCustom::clear):
      (WebCore::JSSVGPODListCustom::initialize):
      (WebCore::JSSVGPODListCustom::getItem):
      (WebCore::JSSVGPODListCustom::insertItemBefore):
      (WebCore::JSSVGPODListCustom::replaceItem):
      (WebCore::JSSVGPODListCustom::removeItem):
      (WebCore::JSSVGPODListCustom::appendItem):
      * bindings/js/JSSVGPathSegListCustom.cpp:
      (WebCore::JSSVGPathSegList::clear):
      (WebCore::JSSVGPathSegList::initialize):
      (WebCore::JSSVGPathSegList::getItem):
      (WebCore::JSSVGPathSegList::insertItemBefore):
      (WebCore::JSSVGPathSegList::replaceItem):
      (WebCore::JSSVGPathSegList::removeItem):
      (WebCore::JSSVGPathSegList::appendItem):
      * bindings/js/JSUint16ArrayCustom.cpp:
      (WebCore::JSUint16Array::set):
      * bindings/js/JSUint32ArrayCustom.cpp:
      (WebCore::JSUint32Array::set):
      * bindings/js/JSUint8ArrayCustom.cpp:
      (WebCore::JSUint8Array::set):
      * bindings/js/JSWebGLRenderingContextCustom.cpp:
      (WebCore::JSWebGLRenderingContext::bufferData):
      (WebCore::JSWebGLRenderingContext::bufferSubData):
      (WebCore::getObjectParameter):
      (WebCore::JSWebGLRenderingContext::getBufferParameter):
      (WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter):
      (WebCore::JSWebGLRenderingContext::getParameter):
      (WebCore::JSWebGLRenderingContext::getProgramParameter):
      (WebCore::JSWebGLRenderingContext::getRenderbufferParameter):
      (WebCore::JSWebGLRenderingContext::getShaderParameter):
      (WebCore::JSWebGLRenderingContext::getTexParameter):
      (WebCore::JSWebGLRenderingContext::getUniform):
      (WebCore::JSWebGLRenderingContext::getVertexAttrib):
      (WebCore::JSWebGLRenderingContext::texImage2D):
      (WebCore::JSWebGLRenderingContext::texSubImage2D):
      (WebCore::dataFunctionf):
      (WebCore::dataFunctioni):
      (WebCore::dataFunctionMatrix):
      (WebCore::JSWebGLRenderingContext::uniform1fv):
      (WebCore::JSWebGLRenderingContext::uniform1iv):
      (WebCore::JSWebGLRenderingContext::uniform2fv):
      (WebCore::JSWebGLRenderingContext::uniform2iv):
      (WebCore::JSWebGLRenderingContext::uniform3fv):
      (WebCore::JSWebGLRenderingContext::uniform3iv):
      (WebCore::JSWebGLRenderingContext::uniform4fv):
      (WebCore::JSWebGLRenderingContext::uniform4iv):
      (WebCore::JSWebGLRenderingContext::uniformMatrix2fv):
      (WebCore::JSWebGLRenderingContext::uniformMatrix3fv):
      (WebCore::JSWebGLRenderingContext::uniformMatrix4fv):
      (WebCore::JSWebGLRenderingContext::vertexAttrib1fv):
      (WebCore::JSWebGLRenderingContext::vertexAttrib2fv):
      (WebCore::JSWebGLRenderingContext::vertexAttrib3fv):
      (WebCore::JSWebGLRenderingContext::vertexAttrib4fv):
      * bindings/js/JSWebSocketCustom.cpp:
      (WebCore::JSWebSocket::send):
      * bindings/js/JSWorkerContextCustom.cpp:
      (WebCore::JSWorkerContext::importScripts):
      (WebCore::JSWorkerContext::setTimeout):
      (WebCore::JSWorkerContext::setInterval):
      (WebCore::JSWorkerContext::openDatabase):
      (WebCore::JSWorkerContext::openDatabaseSync):
      * bindings/js/JSWorkerCustom.cpp:
      (WebCore::JSWorker::postMessage):
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::open):
      (WebCore::JSXMLHttpRequest::send):
      * bindings/js/JSXSLTProcessorCustom.cpp:
      (WebCore::JSXSLTProcessor::importStylesheet):
      (WebCore::JSXSLTProcessor::transformToFragment):
      (WebCore::JSXSLTProcessor::transformToDocument):
      (WebCore::JSXSLTProcessor::setParameter):
      (WebCore::JSXSLTProcessor::getParameter):
      (WebCore::JSXSLTProcessor::removeParameter):
      * bindings/js/ScheduledAction.cpp:
      (WebCore::ScheduledAction::create):
      (WebCore::ScheduledAction::ScheduledAction):
      * bindings/js/ScheduledAction.h:
      * bindings/js/ScriptCallFrame.cpp:
      (WebCore::ScriptCallFrame::ScriptCallFrame):
      * bindings/js/ScriptCallFrame.h:
      * bindings/js/ScriptCallStack.cpp:
      (WebCore::ScriptCallStack::ScriptCallStack):
      (WebCore::ScriptCallStack::initialize):
      * bindings/js/ScriptCallStack.h:
      * bindings/scripts/CodeGeneratorJS.pm:
      * bridge/c/c_instance.cpp:
      (JSC::Bindings::CInstance::invokeMethod):
      (JSC::Bindings::CInstance::invokeDefaultMethod):
      * bridge/c/c_instance.h:
      * bridge/jni/jsc/JavaInstanceJSC.cpp:
      (JavaInstance::invokeMethod):
      * bridge/jni/jsc/JavaInstanceJSC.h:
      * bridge/jsc/BridgeJSC.h:
      (JSC::Bindings::Instance::invokeDefaultMethod):
      * bridge/objc/objc_instance.h:
      * bridge/objc/objc_instance.mm:
      (ObjcInstance::invokeMethod):
      (ObjcInstance::invokeObjcMethod):
      (ObjcInstance::invokeDefaultMethod):
      * bridge/objc/objc_runtime.mm:
      (JSC::Bindings::callObjCFallbackObject):
      * bridge/runtime_method.cpp:
      (JSC::callRuntimeMethod):
      * bridge/runtime_object.cpp:
      (JSC::Bindings::callRuntimeObject):
      
      WebKit/mac: Simplified the host calling convention.
      
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      PART ONE: Functional code changes.
              
      [ None in WebKit ]
              
      PART TWO: Global search and replace.
              
      In the areas below, I used global search-and-replace to change
          (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
          args.size() => exec->argumentCount()
          args.at(i) => exec->argument(i)
      
      * Plugins/Hosted/ProxyInstance.h:
      * Plugins/Hosted/ProxyInstance.mm:
      (WebKit::ProxyInstance::invoke):
      (WebKit::ProxyInstance::invokeMethod):
      (WebKit::ProxyInstance::invokeDefaultMethod):
      
      LayoutTests: Simplified the host calling convention.
      
      Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
      
      Changed these results to expect to fail to stringify their exception
      objects in the case of stack overflow. (Standardizing the calling
      convention has implicitly added stack overflow checks to some places
      where they used to be missing.)
              
      In a future patch, I plan to implement a more reliable way to stringify
      exceptions without invoking a JS function. For now, though, it seems best
      to match other test results, instead of silently overflowing the stack.
      
      * fast/js/global-recursion-on-full-stack-expected.txt:
      * fast/xmlhttprequest/xmlhttprequest-recursive-sync-event-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fea29f1e
    • eric@webkit.org's avatar
      2010-05-28 Stephen White <senorblanco@chromium.org> · c9afdae3
      eric@webkit.org authored
              Reviewed by Darin Fisher.
      
              [CHROMIUM] Chromium port should support image interpolation quality
              https://bugs.webkit.org/show_bug.cgi?id=38686
      
              * platform/chromium/test_expectations.txt:
              Add failure expectations for resizing-based tests, so they can be
              rebaselined by the bots.
      2010-05-28  Stephen White  <senorblanco@chromium.org>
      
              Reviewed by Darin Fisher.
      
              Implement GraphicsContext::setImageInterpolation() for the Chromium
              port.  This is preparatory work for bug 38233.  A number of
              background-resize tests will need a rebaseline, since the images are
              taken during the initial "low quality" phase (<800ms).
      
              [CHROMIUM] Chromium port should support image interpolation quality
              https://bugs.webkit.org/show_bug.cgi?id=38686
      
              Covered by fast/backgrounds/size/backgroundSize15.html, and others.
      
              * platform/graphics/skia/GraphicsContextSkia.cpp:
              Implement WebCore::GraphicsContext::setImageInterpolationQuality.
              * platform/graphics/skia/ImageSkia.cpp:
              (WebCore::computeResamplingMode):  Only enable high quality
              interpolation if it has been requested in the GraphicsContext.
              (WebCore::drawResampledBitmap):  Enable cacheing of resampled images
              even if the size is not full (fix from Brett Wilson).
              (WebCore::paintSkBitmap):  Pass in the PlatformContextSkia to
              computeResamplingMode, so it can query it for interpolation quality.
              (WebCore::Image::drawPattern):  Ibid.
              * platform/graphics/skia/PlatformContextSkia.cpp:
              (PlatformContextSkia::State::State):
              (PlatformContextSkia::interpolationQuality):
              (PlatformContextSkia::setInterpolationQuality):
              * platform/graphics/skia/PlatformContextSkia.h:
              Add a member fn and accessors to retain the image interpolation quality
              in the platform context, and to save/restore it with the state.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c9afdae3
    • eric@webkit.org's avatar
      2010-05-28 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> · d5adab9f
      eric@webkit.org authored
              Reviewed by Geoffrey Garen.
      
              Fix the JSObjectSetPrototype function.
      
              A cycle in a prototype chain can cause an application hang or
              even crash.
              A check for a prototype chain cycles was added to
              the JSObjectSetPrototype.
      
              JSObjectSetPrototype doesn't check for cycle in prototype chain.
              https://bugs.webkit.org/show_bug.cgi?id=39360
      
              * API/JSObjectRef.cpp:
              (JSObjectSetPrototype):
              * API/tests/testapi.c:
              (assertTrue):
              (checkForCycleInPrototypeChain):
              (main):
              * runtime/JSObject.cpp:
              (JSC::JSObject::put):
              * runtime/JSObject.h:
              (JSC::JSObject::setPrototypeWithCycleCheck):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d5adab9f
  3. 28 May, 2010 12 commits
    • eric@webkit.org's avatar
      2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> · 5edb1b76
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [EFL] Remove compiler warnings about uninitialized variable.
              https://bugs.webkit.org/show_bug.cgi?id=39871
      
              No new tests, just cosmetic changes.
      
              * platform/efl/WidgetEfl.cpp:
              (WebCore::Widget::applyCursor):
      2010-05-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
      
              Reviewed by Kenneth Rohde Christiansen.
      
              [EF] Remove compiler warnings and add test for switching page
              encoding.
              https://bugs.webkit.org/show_bug.cgi?id=39871
      
              * efl/EWebLauncher/main.c:
              (print_history):
              (on_key_down):
              (main):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5edb1b76
    • ossy@webkit.org's avatar
      [Qt] Skip new test introduced in r60386, because of · ed8b5209
      ossy@webkit.org authored
      missing layoutTestController.evaluateScriptInIsolatedWorld()
      
      * platform/qt/Skipped: storage/transaction-success-callback-isolated-world.html skipped.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60388 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ed8b5209
    • eric@webkit.org's avatar
      2010-05-28 Eric Uhrhane <ericu@chromium.org> · 37727dcf
      eric@webkit.org authored
              Reviewed by Dmitry Titov.
      
              Refactor DB layout tests so that they work in Web Workers as well as Pages.
              This is a big set of ports, but there are still more to come.
              In general, this is all just trivial changes.  For each test file, I pull out the meat into a .js file [with no functional changes].  Then I include that from both the DOM test and a new worker test; in both cases, the .html files are trivial wrappers.  All boilerplate code is pulled out into the resource files.
      
              In a couple of these tests, there were try/catch wrappers that suppressed errors.  I don't see why you'd want to do that in a test; let's let those errors cause test failures, then fix them.  I took out the wrappers and saw no difference in behavior.
      
              https://bugs.webkit.org/show_bug.cgi?id=34995
      
              * fast/workers/storage/multiple-databases-garbage-collection-expected.txt: Added.
              * fast/workers/storage/multiple-databases-garbage-collection.html: Added.
              * fast/workers/storage/multiple-transactions-expected.txt: Added.
              * fast/workers/storage/multiple-transactions.html: Added.
              * fast/workers/storage/multiple-transactions-on-different-handles-expected.txt: Added.
              * fast/workers/storage/multiple-transactions-on-different-handles.html: Added.
              * fast/workers/storage/change-version-handle-reuse-worker.html: Pulled out even more boilerplate.
              * fast/workers/storage/execute-sql-args-worker.html: Pulled out even more boilerplate.
              * fast/workers/storage/resources/database-worker-controller: Here's where the boilerplate went.
              * fast/workers/storage/resources/database-worker.js:
              * storage/multiple-databases-garbage-collection.html:
              * storage/multiple-databases-garbage-collection.js: Added.
              * storage/multiple-transactions-on-different-handles.html:
              * storage/multiple-transactions-on-different-handles.js: Added.
              * storage/multiple-transactions.html:
              * storage/multiple-transactions.js: Added.
              * storage/hash-change-with-xhr-expected.txt: Trivial whitespace change.
              * storage/hash-change-with-xhr.html:
              * storage/hash-change-with-xhr.js: Added.
              * storage/open-database-while-transaction-in-progress.html:
              * storage/open-database-while-transaction-in-progress.js: Added.
              * storage/read-and-write-transactions-dont-run-together.html:
              * storage/read-and-write-transactions-dont-run-together.js: Added.
              * storage/test-authorizer.html:
              * storage/test-authorizer.js: Added.
              I made a small common include for all the non-worker tests to remove a little boilerplate.
              * storage/resources/database-common.js: Added.
              These two tests had already been ported to workers; I updated them to use the common include file.
              * storage/change-version-handle-reuse.html:
              * storage/execute-sql-args.html:
              * fast/workers/storage/open-database-while-transaction-in-progress-expected.txt: Added.
              * fast/workers/storage/open-database-while-transaction-in-progress.html: Added.
              * fast/workers/storage/read-and-write-transactions-dont-run-together-expected.txt: Added.
              * fast/workers/storage/read-and-write-transactions-dont-run-together.html: Added.
              * fast/workers/storage/test-authorizer-expected.txt: Added.
              * fast/workers/storage/test-authorizer.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      37727dcf
    • eric@webkit.org's avatar
      2010-05-28 Eric Uhrhane <ericu@chromium.org> · 811b05ac
      eric@webkit.org authored
              Reviewed by Dmitry Titov.
      
              We don't test the async DB success callback in an isolated world.
              https://bugs.webkit.org/show_bug.cgi?id=39849
      
              This pretty much a copy of transaction-error-callback-isolated-world.html.
              * storage/transaction-success-callback-isolated-world-expected.txt: Added.
              * storage/transaction-success-callback-isolated-world.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      811b05ac
    • eric@webkit.org's avatar
      2010-05-28 Vangelis Kokkevis <vangelis@chromium.org> · e52f1012
      eric@webkit.org authored
              Reviewed by Dimitri Glazkov.
      
              Prevent chromium composited layers from rendering on top of the scrollbars.
              https://bugs.webkit.org/show_bug.cgi?id=39851
      
              * platform/graphics/chromium/LayerRendererChromium.cpp:
              (WebCore::LayerRendererChromium::drawLayers):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e52f1012
    • eric@webkit.org's avatar
      2010-05-28 Adam Barth <abarth@webkit.org> · 017f1f2c
      eric@webkit.org authored
              Reviewed by David Levin.
      
              webkit-patch should support CHANGE_LOG_EDIT_APPLICATION
              https://bugs.webkit.org/show_bug.cgi?id=39546
      
              One sublty is that we want to wait for the user to finish editing the
              ChangeLog before moving on to the next step.  That means we want to pass
              -W to open.  However, if the user is using Xcode to edit the ChangeLog,
              we don't want them to have to exit the Xcode application.  For this reason,
              we create a new instance of the application with -n.
      
              Overall, xed seems like a better solution, so we recommend that too.
      
              * Scripts/webkitpy/common/system/user.py:
              * Scripts/webkitpy/tool/mocktool.py:
              * Scripts/webkitpy/tool/steps/editchangelog.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      017f1f2c
    • eric@webkit.org's avatar
      2010-05-28 Chao-ying Fu <fu@mips.com> · 34d21a8a
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              Fix MIPS JIT DoubleGreaterThanOrEqual Operands
              https://bugs.webkit.org/show_bug.cgi?id=39504
      
              Swapped two operands of left and right for DoubleGreaterThanOrEqual.
              This patch fixed two layout tests as follows.
              fast/js/comparison-operators-greater.html
              fast/js/comparison-operators-less.html
      
              * assembler/MacroAssemblerMIPS.h:
              (JSC::MacroAssemblerMIPS::branchDouble):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      34d21a8a
    • sullivan@apple.com's avatar
      Add a using declaration for AdoptWK to match the one just added for WKRetainPtr. · 0c50636f
      sullivan@apple.com authored
      Rubber-stamped by Dan Bernstein.
      
      * UIProcess/API/cpp/WKRetainPtr.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0c50636f
    • dpranke@chromium.org's avatar
      2010-05-21 Dirk Pranke <dpranke@chromium.org> · ae9910ca
      dpranke@chromium.org authored
              Reviewed by Ojan Vafai.
      
              new-run-webkit-tests: fix handling of Ctrl-C to exit even if some
              threads are wedged. Also, the script will print the results of the
              tests completed when the interrupt occurs.
      
              https://bugs.webkit.org/show_bug.cgi?id=33238
      
              * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
              * Scripts/webkitpy/layout_tests/layout_package/printing.py:
              * Scripts/webkitpy/layout_tests/layout_package/printing_unittest.py:
              * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ae9910ca
    • darin@apple.com's avatar
      Ignore more Python messiness. · 535884b5
      darin@apple.com authored
      * Scripts/webkitpy/layout_tests/data/platform/test: Added property svn:ignore.
      * Scripts/webkitpy/layout_tests/layout_package: Added property svn:ignore.
      * Scripts/webkitpy/layout_tests/test_types: Added property svn:ignore.
      * Scripts/webkitpy/test: Added property svn:ignore.
      * Scripts/webkitpy/thirdparty/simplejson: Added property svn:ignore.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      535884b5
    • weinig@apple.com's avatar
      Add a using declaration for WKRetainPtr matching what we do for our · 8abf9702
      weinig@apple.com authored
      other smart pointers and fix the destructor.
      
      Reviewed by Anders Carlsson.
      
      * UIProcess/API/cpp/WKRetainPtr.h:
      (WebKit::WKRetainPtr::~WKRetainPtr):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8abf9702
    • barraclough@apple.com's avatar
      Move jit compilation from linking thunks into cti_vm_lazyLink methods. · 831342d8
      barraclough@apple.com authored
      Reviewed by Geoff Garen.
      
      * jit/JITOpcodes.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@60378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      831342d8