1. 27 Jun, 2008 16 commits
    • weinig@apple.com's avatar
      2008-06-27 Sam Weinig <sam@webkit.org> · 2d983abd
      weinig@apple.com authored
              Reviewed by Oliver Hunt.
              Fix platforms that don't use AllInOne.cpp
              * kjs/BooleanConstructor.h:
              * kjs/BooleanPrototype.h:
              * kjs/FunctionPrototype.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34844 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig@apple.com's avatar
      2008-06-27 Sam Weinig <sam@webkit.org> · 282b0a4e
      weinig@apple.com authored
              Rubber-stamped by Oliver Hunt.
              Splits ArrayConstructor out of ArrayPrototype.h/cpp
              Splits BooleanConstructor and BooleanPrototype out of BooleanObject.h/cpp
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * VM/Machine.cpp:
              * kjs/AllInOneFile.cpp:
              * kjs/ArrayConstructor.cpp: Copied from kjs/ArrayPrototype.cpp.
              * kjs/ArrayConstructor.h: Copied from kjs/ArrayPrototype.h.
              * kjs/ArrayPrototype.cpp:
              * kjs/ArrayPrototype.h:
              * kjs/BooleanConstructor.cpp: Copied from kjs/BooleanObject.cpp.
              * kjs/BooleanConstructor.h: Copied from kjs/BooleanObject.h.
              * kjs/BooleanObject.cpp:
              * kjs/BooleanObject.h:
              * kjs/BooleanPrototype.cpp: Copied from kjs/BooleanObject.cpp.
              * kjs/BooleanPrototype.h: Copied from kjs/BooleanObject.h.
              * kjs/CommonIdentifiers.h:
              * kjs/FunctionPrototype.cpp:
              * kjs/JSArray.cpp:
              * kjs/JSGlobalObject.cpp:
              * kjs/JSImmediate.cpp:
              * kjs/Shell.cpp:
              * kjs/internal.cpp:
              * kjs/nodes.cpp:
              * kjs/string_object.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34843 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • oliver@apple.com's avatar
      Bug 18626: SQUIRRELFISH: support the "slow script" dialog... · c8f3a755
      oliver@apple.com authored
      Bug 18626: SQUIRRELFISH: support the "slow script" dialog <https://bugs.webkit.org/show_bug.cgi?id=18626>
      <rdar://problem/5973931> Slow script dialog needs to be reimplemented for squirrelfish
      Reviewed by Sam
      Adds support for the slow script dialog in squirrelfish.  This requires the addition
      of three new op codes, op_loop, op_loop_if_true, and op_loop_if_less which have the
      same behaviour as their simple jump equivalents but have an additional time out check.
      Additional assertions were added to other jump instructions to prevent accidentally
      creating loops with jump types that do not support time out checks.
      Sunspider does not report a regression, however this appears very sensitive to code
      layout and hardware, so i would expect up to a 1% regression on other systems.
      Part of this required moving the old timeout logic from JSGlobalObject and into Machine
      which is the cause of a number of the larger diff blocks.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34842 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig@apple.com's avatar
      2008-06-27 Sam Weinig <sam@webkit.org> · 2d7400ee
      weinig@apple.com authored
              Rubber-stamped by Mark Rowe.
              Clean up sorting in WebCore.xcodeproj.
              * WebCore.xcodeproj/project.pbxproj:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34841 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • jmalonzo@webkit.org's avatar
      2008-06-27 Jan Michael Alonzo <jmalonzo@webkit.org> · 86e13f0e
      jmalonzo@webkit.org authored
              Gtk and Qt build fix: Remove RegisterFileStack from the build
              * GNUmakefile.am:
              * JavaScriptCore.pri:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34840 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • adele@apple.com's avatar
      2008-06-27 Adele Peterson <adele@apple.com> · 2e1114a5
      adele@apple.com authored
              Reviewed by Geoff.
              Build fixes. 
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * VM/RegisterFile.h:
              * kjs/JSGlobalObject.cpp:
              * kjs/collector.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ggaren@apple.com's avatar
      JavaScriptCore: · 82a62d05
      ggaren@apple.com authored
      2008-06-27  Geoffrey Garen  <ggaren@apple.com>
              Reviewed by Oliver Hunt.
              One RegisterFile to rule them all!
              SunSpider reports a 0.2% speedup.
              This patch removes the RegisterFileStack abstraction and replaces it with
              a single register file that
              (a) allocates a fixed storage area, including a fixed area for global
              vars, so that no operation may cause the register file to reallocate
              (b) swaps between global storage areas when executing code in different 
              global objects.
              This patch also changes the layout of the register file so that all call
              frames, including call frames for global code, get a header. This is
              required to support re-entrant global code. It also just makes things simpler.
              * VM/CodeGenerator.cpp:
              (KJS::CodeGenerator::addGlobalVar): New function. Differs from addVar in
              (a) global vars don't contribute to a CodeBlock's numLocals count, since
              global storage is fixed and allocated at startup
              (b) references to global vars get shifted to elide intermediate stack
              between "r" and the global storage area.
              * VM/Machine.cpp:
              (KJS::Machine::dumpRegisters): Updated this function to match the new
              register file layout, and added the ability to dump exact identifiers
              for the different parts of a call frame.
              (KJS::Machine::unwindCallFrame): Updated this function to match the new
              register file layout.
              (KJS::Machine::execute): Updated this function to initialize a call frame
              header for global code, and to swap global storage areas when switching
              to execution in a new global object.
              (KJS::Machine::privateExecute): Got rid of "safeForReentry" and re-reading
              of registerBase because the register file is always safe for reentry now,
              and registerBase never changes.
              * VM/Machine.h: Moved the call frame header enum from Machine to RegisterFile,
              to resolve a header dependency problem (a good sign that the enum belonged
              in RegisterFile all along!)
              * VM/RegisterFile.cpp:
              * VM/RegisterFile.h: Changed RegisterFile to mmap a fixed size register
              area. This allows us to avoid re-allocting the register file later on.
              Instead, we rely on the OS to allocate physical pages to the register
              file as necessary.
              * VM/RegisterFileStack.cpp: Removed. Tada!
              * VM/RegisterFileStack.h: Removed. Tada!
              * kjs/DebuggerCallFrame.cpp: Updated this class to match the new
              register file layout, greatly simplifying it in the process.
              * kjs/JSActivation.h:
              * kjs/JSActivation.cpp: Moved some of this logic up to JSVariableObject,
              since the global object now needs to be able to tear off its registers
              just like the activation object.
              * kjs/JSFunction.cpp: No need to fiddle with the register file anymore.
              * kjs/JSGlobalObject.h:
              * kjs/JSGlobalObject.cpp: Updated JSGlobalObject to support moving its
              global storage area into and out of the register file.
              * kjs/PropertySlot.cpp: No need to fiddle with the register file anymore.
              * kjs/collector.cpp: Renamed markStackObjectConservatively to
              markConservatively, since we don't just mark stack objects this way.
              Also, added code to mark the machine's register file.
              * kjs/config.h: Moved some platforms #defines from here...
              * wtf/Platform.h: ...to here, to support mmap/VirtualAlloc detection
              in RegisterFile.h.
      2008-06-26  Geoffrey Garen  <ggaren@apple.com>
              Reviewed by Oliver Hunt.
              Added a test for what happens when a script exceeds the limit on declared
              global variables.
              * fast/js/global-var-limit-expected.txt: Added.
              * fast/js/global-var-limit.html: Added.
              * fast/js/global-recursion-on-full-stack-expected.txt: Updated for new
              (slightly more correct) behavior. Since the stack overflow happens in the
              middle of a try/catch block, it should be caught, instead of logged to
              the console.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • jmalonzo@webkit.org's avatar
      2008-06-27 Jan Michael Alonzo <jmalonzo@webkit.org> · 0f431a15
      jmalonzo@webkit.org authored
              Reviewed by Christian Dywan.
              [Gtk] Initialize webview settings before running DRT tests
              * DumpRenderTree/gtk/DumpRenderTree.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • jmalonzo@webkit.org's avatar
      2008-06-27 Jan Michael Alonzo <jmalonzo@webkit.org> · 808b6178
      jmalonzo@webkit.org authored
              Reviewed by Darin Adler.
              Remove unnecessary options to make_names.pl command line
              * DerivedSources.make:
              * GNUmakefile.am:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mitz@apple.com's avatar
      PlanetWebKit: · df76851f
      mitz@apple.com authored
              Reviewed by Timothy Hatcher.
              * wwwroot/planetwebkit.css: Reduced text shadow offsets.
              Reviewed by Timothy Hatcher.
              * css/main.css: Reduced text shadow offsets.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • aroben@apple.com's avatar
      Change WebKitGraphics truncation functions to return the length of the truncated string · 0b0f4c64
      aroben@apple.com authored
              Reviewed by Darin Adler.
              * WebKitGraphics.cpp:
              Return the length.
              * WebKitGraphics.h:
              The truncation functions now return an unsigned int that is the length
              of the truncated string. The whole file has been marked extern "C" to
              keep the symbols for these functions from changing (which would break
              nightly builds).
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • abarth@webkit.org's avatar
      Fix mime-types. Not sure how to do this with git. · 0e2a03ae
      abarth@webkit.org authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • abarth@webkit.org's avatar
      WebCore: · de07f858
      abarth@webkit.org authored
      2008-06-27  Adam Barth  <abarth@webkit.org>
              Reviewed by Darin Adler.
              Properly handle untermianted <!-- comments in <textarea>s.
              Tests: fast/parser/open-comment-in-script-tricky.html
              * html/HTMLTokenizer.cpp:
      2008-06-27  Adam Barth  <abarth@webkit.org>
              Reviewed by Darin Adler.
              Test our handling of unterminated <!-- comments in various special
              parsing contexts.  This change does not test our handling of
              unterminated comments in <title> or <iframe> because I'm unsure whether
              our behaviour is correct.
              * fast/parser/open-comment-in-script-tricky-expected.txt: Added.
              * fast/parser/open-comment-in-script-tricky.html: Added.
              * fast/parser/open-comment-in-style.html: Added.
              * fast/parser/open-comment-in-textarea.html: Added.
              * platform/mac/fast/parser/open-comment-in-style-expected.checksum: Added.
              * platform/mac/fast/parser/open-comment-in-style-expected.png: Added.
              * platform/mac/fast/parser/open-comment-in-style-expected.txt: Added.
              * platform/mac/fast/parser/open-comment-in-textarea-expected.checksum: Added.
              * platform/mac/fast/parser/open-comment-in-textarea-expected.png: Added.
              * platform/mac/fast/parser/open-comment-in-textarea-expected.txt: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • abarth@webkit.org's avatar
      WebCore: · 05bd5184
      abarth@webkit.org authored
      2008-06-27  Adam Barth  <abarth@webkit.org>
              Reviewed by Darin Adler.
              Fix <https://bugs.webkit.org/show_bug.cgi?id=19784>:
                Text areas in Wikipedia edit pages are empty, following content is missing
              Don't treat entities as comment starters in parseSpecial.
              Tests: fast/parser/comment-in-iframe.html
              * html/HTMLTokenizer.cpp:
      2008-06-27  Adam Barth  <abarth@webkit.org>
              Reviewed by Darin Adler.
              Test that entities are not used to start comments.
              * fast/parser/comment-in-iframe-expected.txt: Added.
              * fast/parser/comment-in-iframe.html: Added.
              * fast/parser/entity-comment-in-iframe-expected.txt: Added.
              * fast/parser/entity-comment-in-iframe.html: Added.
              * fast/parser/entity-comment-in-script-tricky-expected.txt: Added.
              * fast/parser/entity-comment-in-script-tricky.html: Added.
              * fast/parser/entity-comment-in-style.html: Added.
              * fast/parser/entity-comment-in-textarea.html: Added.
              * fast/parser/entity-comment-in-title-expected.txt: Added.
              * fast/parser/entity-comment-in-title.html: Added.
              * platform/mac/fast/parser/entity-comment-in-style-expected.checksum: Added.
              * platform/mac/fast/parser/entity-comment-in-style-expected.png: Added.
              * platform/mac/fast/parser/entity-comment-in-style-expected.txt: Added.
              * platform/mac/fast/parser/entity-comment-in-textarea-expected.checksum: Added.
              * platform/mac/fast/parser/entity-comment-in-textarea-expected.png: Added.
              * platform/mac/fast/parser/entity-comment-in-textarea-expected.txt: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34831 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti@apple.com's avatar
      WebCore: · e2004296
      antti@apple.com authored
      2008-06-27  Antti Koivisto  <antti@apple.com>
              Reviewed by Oliver.
              REGRESSION: Discrete animation between incompatible paths does not work
              Fall back to discrete path animation if paths are not suitable for morphing.
              Test: svg/custom/animate-path-discrete.svg
              * svg/SVGAnimateElement.cpp:
      2008-06-27  Antti Koivisto  <antti@apple.com>
              Reviewed by Oliver.
              REGRESSION: Discrete animation between incompatible paths does not work
              * svg/custom/animate-path-discrete.svg: Added.
              * platform/mac/svg/custom/animate-path-discrete-expected.txt: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34829 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · 61620cf9
      darin@apple.com authored
              * Scripts/check-for-weak-vtables: Fixed comment.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  2. 26 Jun, 2008 22 commits
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · 99eeddc7
      darin@apple.com authored
              * Scripts/check-for-weak-vtables: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34826 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mrowe@apple.com's avatar
      Speculative fix for the Windows build. · b0edc921
      mrowe@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mrowe@apple.com's avatar
      2008-06-26 Mark Rowe <mrowe@apple.com> · 90bfc79c
      mrowe@apple.com authored
              Reviewed by Darin Adler and Geoff Garen.
              Fix the malloc zone introspection functions so that malloc_zone_statistics does not give
              bogus output in an application that uses JavaScriptCore.
              * kjs/CollectorHeapIntrospector.cpp:
              (KJS::CollectorHeapIntrospector::statistics): Return statistics about memory allocated by the collector.
              * kjs/CollectorHeapIntrospector.h:
              * wtf/FastMalloc.cpp: Zero out the statistics.  FastMalloc doesn't track this information at present.
              Returning zero for all values is preferable to returning bogus data.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • dsmith@webkit.org's avatar
      WebCore: · 6e5aa3f8
      dsmith@webkit.org authored
      2008-06-26  David Smith  <catfish.man@gmail.com>
              Reviewed by Sam Weinig.
              Optimize simple id selectors in querySelector/querySelectorAll. 
              ~4.4x speedup on the 4 subtests of http://webkit.org/perf/slickspeed/ that it applies to.
              * dom/Document.h:
              (WebCore::Document::containsMultipleElementsWithId): Added to allow optimizing the common case of no duplicates
              * dom/Node.cpp:
              (WebCore::Node::querySelector): Uses getElementById instead of DOM traversal where possible now
              * dom/SelectorNodeList.cpp:
              (WebCore::createSelectorNodeList): Uses getElementById instead of DOM traversal where possible now
      2008-06-26  David Smith  <catfish.man@gmail.com>
              Reviewed by Sam Weinig.
              Optimize simple id selectors in querySelector/querySelectorAll. 
              ~4.4x speedup on the 4 subtests of http://webkit.org/perf/slickspeed/ that it applies to.
              * fast/dom/SelectorAPI/dumpNodeList-expected.txt:
              * fast/dom/SelectorAPI/dumpNodeList.html: Add tests for finding ids not in the document, and finding duplicate ids
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mitz@apple.com's avatar
      WebCore: · c13cd254
      mitz@apple.com authored
              Reviewed by Darin Adler.
              - fix <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields)
              Test: editing/selection/find-in-text-control.html
              * WebCore.base.exp: Updated the TextIterator constructor signature.
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): Added an enterTextControls
              boolean parameter that determines whether the iterator should visit text
              inside text areas and text fields. Added code to initialize the
              m_inShadowContent member variable based on whether the range is in
              shadow content.
              (WebCore::TextIterator::advance): Added code to step out of shadow
              (WebCore::TextIterator::handleReplacedElement): Added code to enter
              text controls if desired.
              (WebCore::CharacterIterator::CharacterIterator): Added an
              enterTextControls boolean parameter that determines whether the iterator
              should visit text inside text areas and text fields. This is passed to
              the TextIterator constructor.
              (WebCore::findPlainText): Changed to use a CharacterIterator that
              visits text controls.
              * editing/TextIterator.h: Added member variables to track whether the
              current node is in a shadow tree and whether the iterator should visit
              text controls.
              * page/Frame.cpp:
              (WebCore::Frame::findString): Changed to find inside text controls.
              (WebCore::Frame::markAllMatchesForText): Ditto.
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::innerTextElement): Added.
              * rendering/RenderTextControl.h: Added innerTextElement(), a private
              accessor method that is accessible to TextIterator through class
              Reviewed by Darin Adler.
              - test for <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields)
              * editing/selection/find-in-text-control-expected.txt: Added.
              * editing/selection/find-in-text-control.html: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · 59c4d4eb
      darin@apple.com authored
              Reviewed by Geoff.
              - https://bugs.webkit.org/show_bug.cgi?id=19721
                speed up JavaScriptCore by not wrapping strings in objects just
                to call functions on them
              - optimize UString append and the replace function a bit
              SunSpider says 1.8% faster.
              * JavaScriptCore.exp: Updated.
              * VM/JSPropertyNameIterator.cpp: Added include of JSString.h, now needed
              because jsString returns a JSString*.
              * VM/Machine.cpp:
              (KJS::Machine::privateExecute): Removed the toObject call from native
              function calls. Also removed code to put the this value into a register.
              * kjs/BooleanObject.cpp:
              (KJS::booleanProtoFuncToString): Rewrite to handle false and true
              * kjs/FunctionPrototype.cpp:
              (KJS::constructFunction): Use single-character append rather than building
              a string for each character.
              * kjs/JSFunction.cpp:
              (KJS::globalFuncUnescape): Ditto.
              * kjs/JSImmediate.cpp:
              (KJS::JSImmediate::prototype): Added. Gets the appropriate prototype for
              use with an immediate value. To be used instead of toObject when doing a
              get on an immediate value.
              * kjs/JSImmediate.h: Added prototype.
              * kjs/JSObject.cpp:
              (KJS::JSObject::toString): Tweaked formatting.
              * kjs/JSObject.h:
              (KJS::JSValue::get): Use prototype instead of toObject to avoid creating
              an object wrapper just to search for properties. This also saves an
              unnecessary hash table lookup since the object wrappers themselves don't
              have any properties.
              * kjs/JSString.h: Added toThisString and toThisJSString.
              * kjs/JSValue.cpp:
              (KJS::JSCell::toThisString): Added.
              (KJS::JSCell::toThisJSString): Added.
              (KJS::JSCell::getJSNumber): Added.
              (KJS::jsString): Changed return type to JSString*.
              (KJS::jsOwnedString): Ditto.
              * kjs/JSValue.h:
              (KJS::JSValue::toThisString): Added.
              (KJS::JSValue::toThisJSString): Added.
              (KJS::JSValue::getJSNumber): Added.
              * kjs/NumberObject.cpp:
              (KJS::NumberObject::getJSNumber): Added.
              (KJS::integer_part_noexp): Append C string directly rather than first
              turning it into a UString.
              (KJS::numberProtoFuncToString): Use getJSNumber to check if the value
              is a number rather than isObject(&NumberObject::info). This works for
              immediate numbers, number cells, and NumberObject instances.
              (KJS::numberProtoFuncToLocaleString): Ditto.
              (KJS::numberProtoFuncValueOf): Ditto.
              (KJS::numberProtoFuncToFixed): Ditto.
              (KJS::numberProtoFuncToExponential): Ditto.
              (KJS::numberProtoFuncToPrecision): Ditto.
              * kjs/NumberObject.h: Added getJSNumber.
              * kjs/PropertySlot.cpp: Tweaked comment.
              * kjs/internal.cpp:
              (KJS::JSString::toThisString): Added.
              (KJS::JSString::toThisJSString): Added.
              (KJS::JSString::getOwnPropertySlot): Changed code that searches the
              prototype chain to start with the string prototype and not create a
              string object.
              (KJS::JSNumberCell::toThisString): Added.
              (KJS::JSNumberCell::getJSNumber): Added.
              * kjs/lookup.cpp:
              (KJS::staticFunctionGetter): Moved here, because there's no point in
              having a function that's only used for a function pointer be inline.
              (KJS::setUpStaticFunctionSlot): New function for getStaticFunctionSlot.
              * kjs/lookup.h:
              (KJS::staticValueGetter): Don't mark this inline. It doesn't make sense
              to have a function that's only used for a function pointer be inline.
              (KJS::getStaticFunctionSlot): Changed to get properties from the parent
              first before doing any handling of functions. This is the fastest way
              to return the function once the initial setup is done.
              * kjs/string_object.cpp:
              (KJS::StringObject::getPropertyNames): Call value() instead of getString(),
              avoiding an unnecessary virtual function call (the call to the type()
              function in the implementation of the isString() function).
              (KJS::StringObject::toString): Added.
              (KJS::StringObject::toThisString): Added.
              (KJS::StringObject::toThisJSString): Added.
              (KJS::substituteBackreferences): Rewrote to use a appending algorithm
              instead of a the old one that tried to replace in place.
              (KJS::stringProtoFuncReplace): Merged this function and the replace function.
              Replaced the hand-rolled dynamic arrays for source ranges and replacements
              with Vector.
              (KJS::stringProtoFuncToString): Handle JSString as well as StringObject.
              Removed the separate valueOf implementation, since it can just share this.
              (KJS::stringProtoFuncCharAt): Use toThisString, which handles JSString as
              well as StringObject, and is slightly more efficient than the old code too.
              (KJS::stringProtoFuncCharCodeAt): Ditto.
              (KJS::stringProtoFuncConcat): Ditto.
              (KJS::stringProtoFuncIndexOf): Ditto.
              (KJS::stringProtoFuncLastIndexOf): Ditto.
              (KJS::stringProtoFuncMatch): Ditto.
              (KJS::stringProtoFuncSearch): Ditto.
              (KJS::stringProtoFuncSlice): Ditto.
              (KJS::stringProtoFuncSplit): Ditto.
              (KJS::stringProtoFuncSubstr): Ditto.
              (KJS::stringProtoFuncSubstring): Ditto.
              (KJS::stringProtoFuncToLowerCase): Use toThisJSString.
              (KJS::stringProtoFuncToUpperCase): Ditto.
              (KJS::stringProtoFuncToLocaleLowerCase): Ditto.
              (KJS::stringProtoFuncToLocaleUpperCase): Ditto.
              (KJS::stringProtoFuncLocaleCompare): Ditto.
              (KJS::stringProtoFuncBig): Use toThisString.
              (KJS::stringProtoFuncSmall): Ditto.
              (KJS::stringProtoFuncBlink): Ditto.
              (KJS::stringProtoFuncBold): Ditto.
              (KJS::stringProtoFuncFixed): Ditto.
              (KJS::stringProtoFuncItalics): Ditto.
              (KJS::stringProtoFuncStrike): Ditto.
              (KJS::stringProtoFuncSub): Ditto.
              (KJS::stringProtoFuncSup): Ditto.
              (KJS::stringProtoFuncFontcolor): Ditto.
              (KJS::stringProtoFuncFontsize): Ditto.
              (KJS::stringProtoFuncAnchor): Ditto.
              (KJS::stringProtoFuncLink): Ditto.
              * kjs/string_object.h: Added toString, toThisString, and toThisJSString.
              * kjs/ustring.cpp:
              (KJS::UString::append): Added a version that takes a character pointer and
              size, so we don't have to create a UString just to append to another UString.
              * kjs/ustring.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · ffec04e7
      darin@apple.com authored
              Reviewed by Geoff.
              * bridge/runtime.h: Added include of JSString.h since jsString will soon
              change to return a JSString*.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · a17ba6a5
      darin@apple.com authored
              Reviewed by Geoff.
              * JSUtils.cpp: Added include of <JavaScriptCore/JSString.h> since jsString
              will soon be changed to return a JSString*.
              * UserObjectImp.cpp: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34819 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • adele@apple.com's avatar
      2008-06-26 Adele Peterson <adele@apple.com> · b64f5e4f
      adele@apple.com authored
              Fix suggested by Eric Carlson, added by me, reviewed by Adam.
              Fix for <rdar://problem/5733006> <video> and <audio> element should not prompt user for missing files
              * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::createQTMovie):
              Set object with key QTMovieAskUnresolvedDataRefsAttribute to NO in the attributes dictionary passed to -[QTMovie initWithAttributes:]
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34818 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig@apple.com's avatar
      2008-06-26 Sam Weinig <sam@webkit.org> · 5367c419
      weinig@apple.com authored
              Reviewed by John Sullivan.
              <rdar://problem/6031969> Crash in SecurityOrigin code going Forward to a page in the back/forward cache
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::open): Make sure to update the SecurityOrigin and URL of the 
              DOMWindow when opening a CachedPage.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34817 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • bdakin@apple.com's avatar
      WebKitTools: · d602b686
      bdakin@apple.com authored
      2008-06-26  Beth Dakin  <bdakin@apple.com>
              Reviewed by Sam.
              Do not include AXPosition in the dump of all of the accessibility 
              attributes since it is screen-specific.
              * DumpRenderTree/mac/AccessibilityControllerMac.mm:
      2008-06-26  Beth Dakin  <bdakin@apple.com>
              Reviewed by Sam.
              Updated results that will pass on all platforms.
              * accessibility/document-attributes-expected.txt:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34816 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • eric@webkit.org's avatar
      Reviewed by Beth Dakin. · e0a5162b
      eric@webkit.org authored
              CSS @import statements can cause DocLoader to use
              a dead Frame pointer.
              The fix is to get rid of the Frame pointer on DocLoader.
              I also took this opportunity to clean up Document::detach
              a little to make it clear why we clear the m_frame pointer
              there, and to note that in the future we should stop
              using Node::detach to mean "tear down the whole rendering
              tree and detach from the frame".
              Test: I don't know how to make a good test for this, the test
              we have is network timing dependent and does not make a good
              layout test.
              * dom/Document.cpp:
              * dom/Document.h:
              * loader/DocLoader.cpp:
              * loader/DocLoader.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig@apple.com's avatar
      2008-06-26 Sam Weinig <sam@webkit.org> · 3ca31501
      weinig@apple.com authored
              Update result after adding new progress events to XMLHttpRequest.
              * fast/dom/xmlhttprequest-get-expected.txt:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • bdakin@apple.com's avatar
      2008-06-26 Beth Dakin <bdakin@apple.com> · c8b6a2a3
      bdakin@apple.com authored
              Reviewed by Anders.
              This is a speculative fix for the failing layout test on the build 
              bot. It seems that the problem that the Build Bot is having is 
              Tiger-specific. On Tiger, [NSValue description] was not very smart. 
              So I replaced our call to description with a hand-rolled equivalent 
              that will match on both platforms. 
              * DumpRenderTree/mac/AccessibilityControllerMac.mm:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • andersca@apple.com's avatar
      WebKit: · 04dd6c3b
      andersca@apple.com authored
      2008-06-26  Anders Carlsson  <andersca@apple.com>
              Reviewed by Darin.
              Add MainThreadObjectDeallocator to sources.
              * WebKit.xcodeproj/project.pbxproj:
      2008-06-26  Anders Carlsson  <andersca@apple.com>
              Reviewed by Darin.
              Add a new MainThreadObjectDeallocator which can schedule dealloc calls on the main thread
              if necessary. Use this for the WebView class. 
              * WebView/MainThreadObjectDeallocator.h: Added.
              * WebView/MainThreadObjectDeallocator.mm: Added.
              * WebView/WebView.mm:
              (-[WebViewPrivate dealloc]):
              (+[WebView initialize]):
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34812 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • andersca@apple.com's avatar
      2008-06-26 Anders Carlsson <andersca@apple.com> · 5b003677
      andersca@apple.com authored
              Reviewed by Brady.
              Don't enumerate document.applets trying to determine if a page contains applets.
              Instead, set m_containsPlugIns to true when an applet has been created.
              * loader/FrameLoader.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ap@webkit.org's avatar
      Reviewed by Maciej. · 0b7e63be
      ap@webkit.org authored
              Make JSGlobalData per-thread.
              No change on SunSpider total.
              * wtf/ThreadSpecific.h: Re-enabled the actual implementation.
              * kjs/JSGlobalObject.cpp:
              (KJS::JSGlobalObject::~JSGlobalObject): Re-added a JSLock-related assertion. We'll probably
              want to preserve these somehow to keep legacy behavior in working condition.
              (KJS::JSGlobalObject::init): Initialize globalData pointer earlier, so that it is ready
              when updating JSGlobalObject linked list.
              * kjs/JSGlobalObject.h: (KJS::JSGlobalObject::head): Changed head() to be non-static, and
              to use JSGlobalData associated with the current object.
              * kjs/InitializeThreading.cpp: (KJS::initializeThreadingOnce): Removed a no longer needed
              Heap::registerAsMainThread() call.
              * kjs/JSGlobalData.h: Removed a lying lie comment - parserObjectExtraRefCounts is not
              transient, and while newParserObjects may conceptually be such, there is still some node
              manipulation going on outside Parser::parse which touches it.
              * kjs/JSGlobalData.cpp:
              (KJS::JSGlobalData::~JSGlobalData): Delete recently added members.
              (KJS::JSGlobalData::sharedInstance): Actually use a separate instance.
              * kjs/collector.cpp:
              (KJS::Heap::~Heap): Added a destructor, which unconditionally deletes everything.
              (KJS::Heap::sweep): Removed code related to "collect on main thread only" logic.
              (KJS::Heap::collect): Ditto.
              (KJS::Heap::globalObjectCount): Explicitly use per-thread instance of JSGlobalObject linked
              list now that JSGlobalObject::head() is not static. Curently, WebCoreStatistics methods only
              work with the main thread currently anyway.
              (KJS::Heap::protectedGlobalObjectCount): Ditto.
              * kjs/collector.h: Removed code related to "collect on main thread only" logic.
              * JavaScriptCore.exp: Removed Heap::collectOnMainThreadOnly.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ap@webkit.org's avatar
      Reviewed by Darin. · 66abd69a
      ap@webkit.org authored
              REGRESSION: Crash in sort() when visiting http://www.onnyturf.com/subway/
              * kjs/JSArray.cpp: (KJS::AVLTreeAbstractorForArrayCompare::set_balance_factor):
              Made changing balance factor from -1 to +1 work correctly.
              * wtf/AVLTree.h: (KJS::AVLTreeDefaultBSet::operator[]): Added an assertion that catches
              this slightly earlier.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hausmann@webkit.org's avatar
      2008-06-26 Holger Hans Peter Freyther <zecke@selfish.org> · 647f4529
      hausmann@webkit.org authored
              Reviewed by Simon.
              [svg] Disable plugins for SVG images
              The Qt platform allows to have a plugin factory per Page. Now SVG Images
              are using a Page and dummy/empty clients for Chrome. The only way to get
              the kit from the WebCore::Page is to go through the ChromeClient but this
              is not possible when the ChromeClient is an empty client. This leads to a
              crash in PluginDataQt.cpp. One way to avoid this would have been the
              addition of a rtti like field to ChromeClient to see if it is an empty
              client. The other possibility is to not enable plugins for images.
              The SVGImage relies on the fact that the document is a SVGDocument and
              that the rootElement is a SVGSVGElement. If plugins are used we could
              end up with a PluginDocument and crash badly. Do not try to use plugins
              if plugins are disabled for the WebCore::Page.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hausmann@webkit.org's avatar
      2008-06-25 Holger Hans Peter Freyther <zecke@selfish.org> · e6ad55ae
      hausmann@webkit.org authored
              Reviewed by Simon.
              CodingStyle fixes
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hausmann@webkit.org's avatar
      2008-06-25 Holger Hans Peter Freyther <zecke@selfish.org> · b936785b
      hausmann@webkit.org authored
              Reviewed by Simon.
              [svg] Make QtWebKit build more of the SVG support
              Add the proper defines and files, update SVGResourceFilterQt.cpp
              to be enabled by the filter option and not by experimental svg support
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • andersca@apple.com's avatar
      2008-06-25 Anders Carlsson <andersca@apple.com> · bb7fa9de
      andersca@apple.com authored
              Reviewed by Mark.
              REGRESSION (Tiger only) : Mail crashes because message load is being processed on a secondary thread
              * WebView/WebView.mm:
              New method that makes sure that the final release happens on the main thread.
              (-[WebView release]):
              New method that just calls [super release];
              (+[WebView initialize]):
              When running under Tiger mail, replace the release method with tigerMailReleaseIMP.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34805 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  3. 25 Jun, 2008 2 commits