mjs@apple.com [Tue, 23 Sep 2008 17:30:46 +0000 (17:30 +0000)]
2008-09-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Camron Zwarich.
- inline the fast case of instanceof
https://bugs.webkit.org/show_bug.cgi?id=20818
~2% speedup on EarleyBoyer test.
* VM/CTI.cpp:
(JSC::CTI::privateCompileMainPass):
(JSC::CTI::privateCompileSlowCases):
* VM/Machine.cpp:
(JSC::Machine::cti_op_instanceof):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36808
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@webkit.org [Tue, 23 Sep 2008 16:34:41 +0000 (16:34 +0000)]
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=21023
Don't use TEC for encodings supported by ICU
* platform/text/mac/mac-encodings.txt: Removed x-mac-centraleurroman, x-mac-cyrillic,
x-mac-greek, and x-mac-turkish.
* platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
Register aliases for these encodings that are not registered automatically; updated comments.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36807
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Tue, 23 Sep 2008 14:18:51 +0000 (14:18 +0000)]
2008-09-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich.
- add forgotten slow case logic for !==
* VM/CTI.cpp:
(JSC::CTI::privateCompileSlowCases):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36806
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Tue, 23 Sep 2008 13:20:23 +0000 (13:20 +0000)]
2008-09-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich.
- inline the fast cases of !==, same as for ===
2.9% speedup on EarleyBoyer benchmark
* VM/CTI.cpp:
(JSC::CTI::compileOpStrictEq): Factored stricteq codegen into this function,
and parameterized so it can do the reverse version as well.
(JSC::CTI::privateCompileMainPass): Use the above for stricteq and nstricteq.
* VM/CTI.h:
(JSC::CTI::): Declare above stuff.
* VM/Machine.cpp:
(JSC::Machine::cti_op_nstricteq): Removed fast cases, now handled inline.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36805
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cwzwarich@webkit.org [Tue, 23 Sep 2008 10:59:42 +0000 (10:59 +0000)]
2008-09-23 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Oliver Hunt.
Bug 20989: Aguments constructor should put 'callee' and 'length' properties in a more efficient way
<https://bugs.webkit.org/show_bug.cgi?id=20989>
Make special cases for the 'callee' and 'length' properties in the
Arguments object.
This is somewhere between a 7.8% speedup and a 10% speedup on the V8
Raytrace benchmark, depending on whether it is run alone or with the
other V8 benchmarks.
* kjs/Arguments.cpp:
(JSC::ArgumentsData::ArgumentsData):
(JSC::Arguments::Arguments):
(JSC::Arguments::mark):
(JSC::Arguments::getOwnPropertySlot):
(JSC::Arguments::put):
(JSC::Arguments::deleteProperty):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36804
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Tue, 23 Sep 2008 10:03:51 +0000 (10:03 +0000)]
Build fix (add file i forgot in r36801)
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36803
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Tue, 23 Sep 2008 07:46:55 +0000 (07:46 +0000)]
JavaScriptCore:
2008-09-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- speed up instanceof some more
https://bugs.webkit.org/show_bug.cgi?id=20818
~2% speedup on EarleyBoyer
The idea here is to record in the StructureID whether the class
needs a special hasInstance or if it can use the normal logic from
JSObject.
Based on this I inlined the real work directly into
cti_op_instanceof and put the fastest checks up front and the
error handling at the end (so it should be fairly straightforward
to split off the beginning to be inlined if desired).
I only did this for CTI, not the bytecode interpreter.
* API/JSCallbackObject.h:
(JSC::JSCallbackObject::createStructureID):
* ChangeLog:
* VM/Machine.cpp:
(JSC::Machine::cti_op_instanceof):
* kjs/JSImmediate.h:
(JSC::JSImmediate::isAnyImmediate):
* kjs/TypeInfo.h:
(JSC::TypeInfo::overridesHasInstance):
(JSC::TypeInfo::flags):
WebCore:
2008-09-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- speed up instanceof some more
https://bugs.webkit.org/show_bug.cgi?id=20818
~2% speedup on EarleyBoyer
(WebCore updates.)
* bindings/js/JSQuarantinedObjectWrapper.h:
(WebCore::JSQuarantinedObjectWrapper::createStructureID):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36802
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Tue, 23 Sep 2008 07:40:49 +0000 (07:40 +0000)]
2008-09-22 Darin Adler <darin@apple.com>
- fix https://bugs.webkit.org/show_bug.cgi?id=21008
getting pixels by index from CanvasPixelArray is unnecessarily slow
Reviewed by Oliver Hunt
* GNUmakefile.am: Added JSCanvasPixelArrayCustom.h.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSCanvasPixelArrayCustom.cpp: Removed indexGetter and
indexSetter. These are now both inlined, so in the header.
* bindings/js/JSCanvasPixelArrayCustom.h: Added. The getByIndex
function is what's used for HasCustomIndexGetter. Also moved the
indexSetter function here.
* bindings/scripts/CodeGeneratorJS.pm: Changed HasCustomIndexGetter
to use a getByIndex member function rather than an indexGetter stat
member function in a property slot. This lets us avoid the property
slot mechanism's rule where it turns numeric property names into
strings in the identifier table, which is good because that's slow.
Also added a new property CustomHeader that allows IDL files to
introduce headers to be included -- useful when we have functions
that we want to inline into the binding.
* html/CanvasPixelArray.idl: Added CustomHeader attribute.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36801
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Tue, 23 Sep 2008 07:23:14 +0000 (07:23 +0000)]
No review, build fix only.
Another blind stab in the dark.
* svg/graphics/cg/SVGResourceClipperCg.cpp: Add missing header.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36800
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Tue, 23 Sep 2008 07:04:11 +0000 (07:04 +0000)]
No review, build fix only.
Third time's the charm, eh? My local build is sadly still not done...
* platform/graphics/AffineTransform.cpp: remove extra &
* platform/graphics/AffineTransform.h: remove extra &
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36799
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Tue, 23 Sep 2008 06:47:51 +0000 (06:47 +0000)]
2008-09-22 Eric Seidel <eric@webkit.org>
No review, build fix only.
* platform/graphics/AffineTransform.cpp: remove extra ;
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36798
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Tue, 23 Sep 2008 06:38:10 +0000 (06:38 +0000)]
No review, build fix only.
Speculative fix for the build while I wait for my compile to finish.
* platform/graphics/AffineTransform.cpp:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36797
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alice.liu@apple.com [Tue, 23 Sep 2008 06:25:03 +0000 (06:25 +0000)]
WebKit/win:
2008-09-22 Alice Liu <alice.liu@apple.com>
Added record-memory-win.vcproj tool to the solution
Reviewed by Steve Falkenburg.
* WebKit.vcproj/WebKit.sln:
WebKitTools:
2008-09-22 Alice Liu <alice.liu@apple.com>
Adding a stand-alone Windows console application to record a process's memory usage
Reviewed by Steve Falkenburg.
* record-memory-win: Added.
* record-memory-win/main.cpp: Added.
* record-memory-win/record-memory-win.vcproj: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36796
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Tue, 23 Sep 2008 06:05:59 +0000 (06:05 +0000)]
2008-09-22 Dirk Schulze <vbs85@gmx.de>
Reviewed by eseidel. Landed by eseidel.
Moved makeMapBetweenRects from SVG/CG to AffineTransform
Make SVGResourceClipper::applyClip more cross-platform
* platform/graphics/AffineTransform.cpp:
* platform/graphics/AffineTransform.h:
* svg/graphics/cg/CgSupport.cpp:
* svg/graphics/cg/CgSupport.h:
* svg/graphics/cg/SVGPaintServerGradientCg.cpp:
(WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
* svg/graphics/cg/SVGResourceClipperCg.cpp:
(WebCore::SVGResourceClipper::applyClip):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36795
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Tue, 23 Sep 2008 05:22:22 +0000 (05:22 +0000)]
2008-09-22 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
- https://bugs.webkit.org/show_bug.cgi?id=21019
make FunctionBodyNode::ref/deref fast
Speeds up v8-raytrace by 7.2%.
* kjs/nodes.cpp:
(JSC::FunctionBodyNode::FunctionBodyNode): Initialize m_refCount to 0.
* kjs/nodes.h:
(JSC::FunctionBodyNode::ref): Call base class ref once, and thereafter use
m_refCount.
(JSC::FunctionBodyNode::deref): Ditto, but the deref side.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36794
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Tue, 23 Sep 2008 05:12:23 +0000 (05:12 +0000)]
2008-09-22 Darin Adler <darin@apple.com>
Pointed out by Sam Weinig.
* kjs/Arguments.cpp:
(JSC::Arguments::fillArgList): Fix bad copy and paste. Oops!
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36793
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Tue, 23 Sep 2008 04:55:51 +0000 (04:55 +0000)]
2008-09-22 Darin Adler <darin@apple.com>
Reviewed by Cameron Zwarich.
- https://bugs.webkit.org/show_bug.cgi?id=20983
ArgumentsData should have some room to allocate some extra arguments inline
Speeds up v8-raytrace by 5%.
* kjs/Arguments.cpp:
(JSC::ArgumentsData::ArgumentsData): Use a fixed buffer if there are 4 or fewer
extra arguments.
(JSC::Arguments::Arguments): Use a fixed buffer if there are 4 or fewer
extra arguments.
(JSC::Arguments::~Arguments): Delete the buffer if necessary.
(JSC::Arguments::mark): Update since extraArguments are now Register.
(JSC::Arguments::fillArgList): Added special case for the only case that's
actually used in the practice, when there are no parameters. There are some
other special cases in there too, but that's the only one that matters.
(JSC::Arguments::getOwnPropertySlot): Updated to use setValueSlot since there's
no operation to get you at the JSValue* inside a Register as a "slot".
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36792
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Tue, 23 Sep 2008 03:08:57 +0000 (03:08 +0000)]
2008-09-22 Alp Toker <alp@nuanti.com>
Reviewed by David Hyatt.
https://bugs.webkit.org/show_bug.cgi?id=16331
[Gtk] no focus when button/checkbox/radiobutton clicked, only when tabbed
Obey GTK+ focusing conventions for controls and anchor elements.
It could be interesting to push these decisions up to Settings or
ChromeClient some day but this gets things working.
Right and middle click events still need some work to match GTK+
conventions.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::isMouseFocusable):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::isMouseFocusable):
* page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEvent):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36791
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Tue, 23 Sep 2008 02:46:31 +0000 (02:46 +0000)]
Fix typo in ChangeLog
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36790
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Tue, 23 Sep 2008 02:44:09 +0000 (02:44 +0000)]
2008-09-22 Sam Weinig <sam@webkit.org>
Reviewed by Maciej Stachowiak.
Patch for https://bugs.webkit.org/show_bug.cgi?id=21014
Speed up for..in by using StructureID to avoid call hasProperty
Speeds up fasta by 8%.
* VM/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::invalidate):
* VM/JSPropertyNameIterator.h:
(JSC::JSPropertyNameIterator::next):
* kjs/PropertyNameArray.h:
(JSC::PropertyNameArrayData::begin):
(JSC::PropertyNameArrayData::end):
(JSC::PropertyNameArrayData::setCachedStructureID):
(JSC::PropertyNameArrayData::cachedStructureID):
* kjs/StructureID.cpp:
(JSC::StructureID::getEnumerablePropertyNames):
(JSC::structureIDChainsAreEqual):
* kjs/StructureID.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36789
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Tue, 23 Sep 2008 01:24:31 +0000 (01:24 +0000)]
2008-09-22 Darin Adler <darin@apple.com>
* page/mac/FrameMac.mm:
(WebCore::Frame::baseWritingDirectionForSelectionStart): Fix indentation.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36788
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Tue, 23 Sep 2008 01:19:56 +0000 (01:19 +0000)]
WebCore:
2008-09-22 Sam Weinig <sam@webkit.org>
Reviewed by Dan Bernstein.
Patch for https://bugs.webkit.org/show_bug.cgi?id=21013
Match Firefox in how we hide HTMLInputElement.selectionStart, selectionEnd
and setSelectionRange. This also allows us to remove the legacy JSHTMLInputElementBase
class!
- selectionStart, selectionEnd and setSelectionRange now are visible in iteration of
non-selectable input types, but return undefined when accessed.
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSHTMLInputElementBase.cpp: Removed.
* bindings/js/JSHTMLInputElementBase.h: Removed.
* bindings/js/JSHTMLInputElementCustom.cpp: Added.
(WebCore::JSHTMLInputElement::customGetOwnPropertySlot):
(WebCore::JSHTMLInputElement::selectionStart):
(WebCore::JSHTMLInputElement::selectionEnd):
* bindings/js/JSHTMLInputElementCustom.h: Added.
* html/HTMLInputElement.idl:
LayoutTests:
2008-09-22 Sam Weinig <sam@webkit.org>
Reviewed by Dan Bernstein.
Tests for https://bugs.webkit.org/show_bug.cgi?id=21013
* fast/forms/selection-functions.html: Update test to match new
behavior that we now share with Firefox.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36787
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Tue, 23 Sep 2008 00:48:17 +0000 (00:48 +0000)]
Reviewed by Sam Weinig.
- fix <rdar://problem/
5699571> Mail: Unable to change writing direction to LTR in an empty message
Not testable in DumpRenderTree or in Safari
* page/mac/FrameMac.mm:
(WebCore::Frame::baseWritingDirectionForSelectionStart): Account for the
case that the selection start node is a block.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36786
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Mon, 22 Sep 2008 23:18:56 +0000 (23:18 +0000)]
2008-09-22 Alexander Orlov <alexander.orlov@loxal.net>
Reviewed by Darin Adler.
* projects/performance/index.html: Remove dead link to the 24fun test.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36785
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Mon, 22 Sep 2008 23:01:43 +0000 (23:01 +0000)]
2008-09-22 Kelvin Sherlock <ksherlock@gmail.com>
Updated and tweaked by Sam Weinig.
Reviewed by Geoffrey Garen.
Bug 20020: Proposed enhancement to JavaScriptCore API
<https://bugs.webkit.org/show_bug.cgi?id=20020>
Add JSObjectMakeArray, JSObjectMakeDate, JSObjectMakeError, and JSObjectMakeRegExp
functions to create JavaScript Array, Date, Error, and RegExp objects, respectively.
* API/JSObjectRef.cpp: The functions
* API/JSObjectRef.h: Function prototype and documentation
* JavaScriptCore.exp: Added functions to exported function list
* API/tests/testapi.c: Added basic functionality tests.
* kjs/DateConstructor.cpp:
Replaced static JSObject* constructDate(ExecState* exec, JSObject*, const ArgList& args)
with JSObject* constructDate(ExecState* exec, const ArgList& args).
Added static JSObject* constructWithDateConstructor(ExecState* exec, JSObject*, const ArgList& args) function
* kjs/DateConstructor.h:
added prototype for JSObject* constructDate(ExecState* exec, const ArgList& args)
* kjs/ErrorConstructor.cpp:
removed static qualifier from ErrorInstance* constructError(ExecState* exec, const ArgList& args)
* kjs/ErrorConstructor.h:
added prototype for ErrorInstance* constructError(ExecState* exec, const ArgList& args)
* kjs/RegExpConstructor.cpp:
removed static qualifier from JSObject* constructRegExp(ExecState* exec, const ArgList& args)
* kjs/RegExpConstructor.h:
added prototype for JSObject* constructRegExp(ExecState* exec, const ArgList& args)
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36784
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt@apple.com [Mon, 22 Sep 2008 22:17:40 +0000 (22:17 +0000)]
WebCore:
2008-09-22 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=21007
Make sure that the scrollbar gets sent a release event on platforms that call handleMouseDoubleClickEvent.
Reviewed by Sam Weinig
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDoubleClickEvent):
LayoutTests:
2008-09-22 David Hyatt <hyatt@apple.com>
Layout test for double click scrollbar bug.
Reviewed by Sam Weinig
* fast/events/scrollbar-double-click-expected.txt: Added.
* fast/events/scrollbar-double-click.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36783
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pewtermoose@webkit.org [Mon, 22 Sep 2008 21:59:45 +0000 (21:59 +0000)]
2008-09-22 Matt Lilek <webkit@mattlilek.com>
Not reviewed, Windows build fix.
* kjs/Arguments.cpp:
* kjs/FunctionPrototype.cpp:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36782
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Mon, 22 Sep 2008 21:44:28 +0000 (21:44 +0000)]
No review, rollback only.
Roll out Peter's change (per his request)
http://trac.webkit.org/changeset/36069
https://bugs.webkit.org/show_bug.cgi?id=19663
This change has been the source of numerous regressions
(several of which were latent bugs revealed by this change,
others were bugs in this change)
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::startAnimation):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/BitmapImage.h:
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/ImageCG.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/wx/ImageWx.cpp:
(WebCore::BitmapImage::draw):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36781
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Mon, 22 Sep 2008 21:32:14 +0000 (21:32 +0000)]
WebCore:
Reviewed by Sam Weinig.
- fix <rdar://problem/
5158514> Switch the complex text code path to Core Text
Tests: platform/mac-snowleopard/fast/text/myanmar-shaping.html
platform/mac-snowleopard/fast/text/thai-combining-mark-positioning.html
* config.h: Use Core Text if not building for Leopard or Tiger.
LayoutTests:
Reviewed by Sam Weinig.
- tests and updated results for <rdar://problem/
5158514> Switch the complex text code path to Core Text
* platform/mac-snowleopard/fast: Added.
* platform/mac-snowleopard/fast/text: Added.
* platform/mac-snowleopard/fast/text/atsui-multiple-renderers-expected.checksum: Added.
* platform/mac-snowleopard/fast/text/atsui-multiple-renderers-expected.png: Added.
* platform/mac-snowleopard/fast/text/atsui-multiple-renderers-expected.txt: Added.
* platform/mac-snowleopard/fast/text/myanmar-shaping-expected.checksum: Added.
* platform/mac-snowleopard/fast/text/myanmar-shaping-expected.png: Added.
* platform/mac-snowleopard/fast/text/myanmar-shaping-expected.txt: Added.
* platform/mac-snowleopard/fast/text/myanmar-shaping.html: Added.
* platform/mac-snowleopard/fast/text/resources: Added.
* platform/mac-snowleopard/fast/text/resources/Garuda.ttf: Added from http://www.w3.org/International/tests/test-webfonts/test-thai-tibetan-myanmar.html.
* platform/mac-snowleopard/fast/text/resources/mm3.ttf: Added from http://www.w3.org/International/tests/test-webfonts/test-thai-tibetan-myanmar.html.
* platform/mac-snowleopard/fast/text/thai-combining-mark-positioning-expected.checksum: Added.
* platform/mac-snowleopard/fast/text/thai-combining-mark-positioning-expected.png: Added.
* platform/mac-snowleopard/fast/text/thai-combining-mark-positioning-expected.txt: Added.
* platform/mac-snowleopard/fast/text/thai-combining-mark-positioning.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36780
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Mon, 22 Sep 2008 21:20:52 +0000 (21:20 +0000)]
JavaScriptCore:
2008-09-22 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Patch for https://bugs.webkit.org/show_bug.cgi?id=20982
Speed up the apply method of functions by special-casing array and 'arguments' objects
1% speedup on v8-raytrace.
Test: fast/js/function-apply.html
* kjs/Arguments.cpp:
(JSC::Arguments::fillArgList):
* kjs/Arguments.h:
* kjs/FunctionPrototype.cpp:
(JSC::functionProtoFuncApply):
* kjs/JSArray.cpp:
(JSC::JSArray::fillArgList):
* kjs/JSArray.h:
LayoutTests:
2008-09-22 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Test for https://bugs.webkit.org/show_bug.cgi?id=20982
* fast/js/function-apply-expected.txt: Added.
* fast/js/function-apply.html: Added.
* fast/js/resources/function-apply.js: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36779
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Mon, 22 Sep 2008 21:04:45 +0000 (21:04 +0000)]
2008-09-22 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
- https://bugs.webkit.org/show_bug.cgi?id=20993
Array.push/pop need optimized cases for JSArray
3% or so speedup on DeltaBlue benchmark.
* kjs/ArrayPrototype.cpp:
(JSC::arrayProtoFuncPop): Call JSArray::pop when appropriate.
(JSC::arrayProtoFuncPush): Call JSArray::push when appropriate.
* kjs/JSArray.cpp:
(JSC::JSArray::putSlowCase): Set m_fastAccessCutoff when appropriate, getting
us into the fast code path.
(JSC::JSArray::pop): Added.
(JSC::JSArray::push): Added.
* kjs/JSArray.h: Added push and pop.
* kjs/operations.cpp:
(JSC::throwOutOfMemoryError): Don't inline this. Helps us avoid PIC branches.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36778
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt@apple.com [Mon, 22 Sep 2008 21:03:02 +0000 (21:03 +0000)]
2008-09-22 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=21006
Add code that paints an NSView-less scroller using HIThemeDrawTrack. This scrollbar is still not
switched on. There are still a few more refinements to make to the rendering and behavior.
Reviewed by Darin Adler
* platform/ScrollbarThemeComposite.cpp:
(WebCore::ScrollbarThemeComposite::paint):
* platform/ScrollbarThemeComposite.h:
(WebCore::ScrollbarThemeComposite::paintTrack):
(WebCore::ScrollbarThemeComposite::paintButton):
(WebCore::ScrollbarThemeComposite::paintThumb):
* platform/mac/ScrollbarThemeMac.h:
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::backButtonRect):
(WebCore::ScrollbarThemeMac::forwardButtonRect):
(WebCore::scrollbarPartToHIPressedState):
(WebCore::ScrollbarThemeMac::paint):
* platform/mac/WidgetMac.mm:
(WebCore::Widget::invalidateRect):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36777
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Mon, 22 Sep 2008 20:19:53 +0000 (20:19 +0000)]
2008-09-22 Chris Marrin <cmarrin@apple.com>
Reviewed by Sam Weinig
transition end event when -webkit-transition-property: all puts wrong
propertyName in event
https://bugs.webkit.org/show_bug.cgi?id=20903
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::sendTransitionEvent):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36774
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cfleizach@apple.com [Mon, 22 Sep 2008 18:47:16 +0000 (18:47 +0000)]
<rdar://problem/
6230234> AXTable should probably not be exposed in there's only one cell
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36773
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cfleizach@apple.com [Mon, 22 Sep 2008 18:30:36 +0000 (18:30 +0000)]
<rdar://problem/
6167779> Setting AXSelectedTextRange for TextAreas in a WebView behaves incorrectly
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36772
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt@apple.com [Mon, 22 Sep 2008 18:21:37 +0000 (18:21 +0000)]
WebCore:
2008-09-22 David Hyatt <hyatt@apple.com>
Clean up some parent relationships in the back end stylesheet code. Make sure parentStyleSheet
properly walks up nested rule blocks to reach the parent sheet instead of giving up at the immediate
parent. Also fix the doc() method so that it is properly set when the parent of the sheet is an import
rule.
Reviewed by Sam Weinig
Added fast/css/nested-rule-parent-sheet.html
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::insertedIntoParent):
* css/CSSRule.cpp:
(WebCore::CSSRule::parentStyleSheet):
(WebCore::CSSRule::parentRule):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::CSSStyleSheet):
* css/CSSStyleSheet.h:
LayoutTests:
2008-09-22 David Hyatt <hyatt@apple.com>
Add new test for .parentStyleSheet.
Reviewed by Sam Weinig
* fast/css/nested-rule-parent-sheet.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36771
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Mon, 22 Sep 2008 18:17:57 +0000 (18:17 +0000)]
Reviewed by Sam Weinig.
- fix https://bugs.webkit.org/show_bug.cgi?id=21002
Make the ATSUI code path respect spacingDisabled()
Fixes svg/text/text-spacing-01-b.svg in run-webkit-tests --complex-text
* platform/graphics/mac/FontMacATSUI.mm:
(WebCore::overrideLayoutOperation):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36770
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Mon, 22 Sep 2008 15:03:52 +0000 (15:03 +0000)]
JavaScriptCore:
2008-09-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich.
- speed up instanceof operator by replacing implementsHasInstance method with a TypeInfo flag
Partial work towards <https://bugs.webkit.org/show_bug.cgi?id=20818>
2.2% speedup on EarleyBoyer benchmark.
* API/JSCallbackConstructor.cpp:
* API/JSCallbackConstructor.h:
(JSC::JSCallbackConstructor::createStructureID):
* API/JSCallbackFunction.cpp:
* API/JSCallbackFunction.h:
(JSC::JSCallbackFunction::createStructureID):
* API/JSCallbackObject.h:
(JSC::JSCallbackObject::createStructureID):
* API/JSCallbackObjectFunctions.h:
(JSC::::hasInstance):
* API/JSValueRef.cpp:
(JSValueIsInstanceOfConstructor):
* JavaScriptCore.exp:
* VM/Machine.cpp:
(JSC::Machine::privateExecute):
(JSC::Machine::cti_op_instanceof):
* kjs/InternalFunction.cpp:
* kjs/InternalFunction.h:
(JSC::InternalFunction::createStructureID):
* kjs/JSObject.cpp:
* kjs/JSObject.h:
* kjs/TypeInfo.h:
(JSC::TypeInfo::implementsHasInstance):
WebCore:
2008-09-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich.
- speed up instanceof operator by replacing implementsHasInstance method with a TypeInfo flag
Partial work towards <https://bugs.webkit.org/show_bug.cgi?id=20818>
2.2% speedup on EarleyBoyer benchmark.
* bindings/js/JSQuarantinedObjectWrapper.cpp:
* bindings/js/JSQuarantinedObjectWrapper.h:
(WebCore::JSQuarantinedObjectWrapper::createStructureID):
* bindings/scripts/CodeGeneratorJS.pm:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36766
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Mon, 22 Sep 2008 14:31:08 +0000 (14:31 +0000)]
Windows build fix
* WebCore.vcproj/WebCore.vcproj: Add a missing </File> tag.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36765
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Mon, 22 Sep 2008 13:59:06 +0000 (13:59 +0000)]
JavaScriptCore:
2008-09-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dave Hyatt.
Based on initial work by Darin Adler.
- replace masqueradesAsUndefined virtual method with a flag in TypeInfo
- use this to JIT inline code for eq_null and neq_null
https://bugs.webkit.org/show_bug.cgi?id=20823
0.5% speedup on SunSpider
~4% speedup on Richards benchmark
* VM/CTI.cpp:
(JSC::CTI::privateCompileMainPass):
* VM/Machine.cpp:
(JSC::jsTypeStringForValue):
(JSC::jsIsObjectType):
(JSC::Machine::privateExecute):
(JSC::Machine::cti_op_is_undefined):
* VM/Machine.h:
* kjs/JSCell.h:
* kjs/JSValue.h:
* kjs/StringObjectThatMasqueradesAsUndefined.h:
(JSC::StringObjectThatMasqueradesAsUndefined::create):
(JSC::StringObjectThatMasqueradesAsUndefined::createStructureID):
* kjs/StructureID.h:
(JSC::StructureID::mutableTypeInfo):
* kjs/TypeInfo.h:
(JSC::TypeInfo::TypeInfo):
(JSC::TypeInfo::masqueradesAsUndefined):
* kjs/operations.cpp:
(JSC::equal):
* masm/X86Assembler.h:
(JSC::X86Assembler::):
(JSC::X86Assembler::setne_r):
(JSC::X86Assembler::setnz_r):
(JSC::X86Assembler::testl_i32m):
WebCore:
2008-09-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dave Hyatt.
Based on initial work by Darin Adler.
- replace masqueradesAsUndefined virtual method with a flag in TypeInfo
- use this to JIT inline code for eq_null and neq_null
https://bugs.webkit.org/show_bug.cgi?id=20823
* WebCore.xcodeproj/project.pbxproj:
* WebCore.vcproj/WebCore.vcproj:
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::nameGetter):
* bindings/js/JSHTMLAllCollection.cpp: Added.
(WebCore::):
* bindings/js/JSHTMLAllCollection.h:
(WebCore::JSHTMLAllCollection::createStructureID):
(WebCore::JSHTMLAllCollection::toBoolean):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36764
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vestbo@webkit.org [Mon, 22 Sep 2008 13:27:51 +0000 (13:27 +0000)]
2008-09-22 Tor Arne Vestbø <tavestbo@trolltech.com>
Reviewed by Simon.
Initialize QCoreApplication in kjs binary/Shell.cpp
This allows us to use QCoreApplication::instance() to
get the main thread in ThreadingQt.cpp
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36763
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vestbo@webkit.org [Mon, 22 Sep 2008 13:27:06 +0000 (13:27 +0000)]
2008-09-22 Tor Arne Vestbø <tavestbo@trolltech.com>
Reviewed by Simon.
Fix the QtWebKit build
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36762
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Mon, 22 Sep 2008 08:53:06 +0000 (08:53 +0000)]
2008-09-22 Alp Toker <alp@nuanti.com>
Suggested by David Hyatt.
Build fix: ScrollView::update() is still used by Document.cpp on !MAC
so make it public.
* platform/ScrollView.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36761
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt@apple.com [Mon, 22 Sep 2008 08:36:44 +0000 (08:36 +0000)]
2008-09-22 David Hyatt <hyatt@apple.com>
Fix a regression in Windows scrollbar painting. (Also fix the same
bug in my new viewless Mac scrollbar painting code). The track rect
was being improperly inflated when painting resulting in the scrollbar
being too tall and painting in the border of overflow sections.
Reviewed by Oliver Hunt
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::trackRect):
* platform/win/ScrollbarThemeSafari.cpp:
(WebCore::ScrollbarThemeSafari::trackRect):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36760
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt@apple.com [Mon, 22 Sep 2008 07:57:52 +0000 (07:57 +0000)]
2008-09-22 David Hyatt <hyatt@apple.com>
Fix a hit testing bug where events are mistakenly passed to subframes
if the mouse is over the border or padding area of the frame. Add
a boolean flag, isOverWidget(), to hit test results so that EventHandler
can check it to tell if the mouse is really over the content box of a
RenderWidget and not just in the border/padding area.
This is not testable, since the old code properly recovered when it detected
that the mouse was outside the bounds of the view, but this prevents
the extra passdown from even occurring (and is basically a nice cleanup).
Reviewed by Oliver Hunt
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::subframeForHitTestResult):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleWheelEvent):
* page/MouseEventWithHitTestResults.h:
(WebCore::MouseEventWithHitTestResults::isOverWidget):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
* rendering/HitTestResult.h:
(WebCore::HitTestResult::isOverWidget):
(WebCore::HitTestResult::setIsOverWidget):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::nodeAtPoint):
* rendering/RenderWidget.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36759
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt@apple.com [Mon, 22 Sep 2008 05:54:40 +0000 (05:54 +0000)]
2008-09-21 David Hyatt <hyatt@apple.com>
Rename FrameView's repaintRectangle method to repaintContentRectangle. Make
both it and ScrollView's updateContents method be off-limits to everyone in
WebCore except for RenderView.
Make repaintViewRectangle the only possible method for WebCore code to do
an invalidation. This ensures that all invalidates triggered by WebCore
cross-platform code that cross ownerElement() boundaries are transform-aware.
Make sure that iframes/frames contained inside objects that have transforms
or reflections are not allowed to blit (this was already true for transparency).
It is not possible to make a test for any of this, since iframe scrolling
still doesn't work on Mac (since the invalidates are not being done
through WebCore's cross-platform invalidation code but are instead going
through NSScrollView's setNeedsDisplay still).
Reviewed by Oliver Hunt
* editing/SelectionController.cpp:
(WebCore::SelectionController::recomputeCaretRect):
(WebCore::SelectionController::invalidateCaretRect):
(WebCore::SelectionController::focusedOrActiveStateChanged):
* page/FrameView.cpp:
(WebCore::FrameView::repaintContentRectangle):
(WebCore::FrameView::endDeferredRepaints):
* page/FrameView.h:
* platform/ScrollView.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintFillLayerExtended):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::enclosingPositionedAncestor):
(WebCore::RenderLayer::requiresSlowRepaints):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::hasTransform):
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
(WebCore::RenderView::repaintViewRectangle):
(WebCore::RenderView::setSelection):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36758
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Mon, 22 Sep 2008 04:07:05 +0000 (04:07 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
- blind attempt to fix non-all-in-one builds
* kjs/JSGlobalObject.cpp: Added includes of Arguments.h and RegExpObject.h.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36757
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Mon, 22 Sep 2008 03:35:07 +0000 (03:35 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
- fix debug build
* kjs/StructureID.cpp:
(JSC::StructureID::addPropertyTransition): Use typeInfo().type() instead of m_type.
(JSC::StructureID::createCachedPrototypeChain): Ditto.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36756
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Mon, 22 Sep 2008 03:15:52 +0000 (03:15 +0000)]
JavaScriptCore:
2008-09-21 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- introduce a TypeInfo class, for holding per-type (in the C++ class sense) date in StructureID
https://bugs.webkit.org/show_bug.cgi?id=20981
* JavaScriptCore.exp:
* JavaScriptCore.xcodeproj/project.pbxproj:
* VM/CTI.cpp:
(JSC::CTI::privateCompileMainPass):
(JSC::CTI::privateCompilePutByIdTransition):
* VM/Machine.cpp:
(JSC::jsIsObjectType):
(JSC::Machine::Machine):
* kjs/AllInOneFile.cpp:
* kjs/JSCell.h:
(JSC::JSCell::isObject):
(JSC::JSCell::isString):
* kjs/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
* kjs/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
* kjs/JSGlobalObject.h:
(JSC::StructureID::prototypeForLookup):
* kjs/JSNumberCell.h:
(JSC::JSNumberCell::createStructureID):
* kjs/JSObject.cpp:
(JSC::JSObject::createInheritorID):
* kjs/JSObject.h:
(JSC::JSObject::createStructureID):
* kjs/JSString.h:
(JSC::JSString::createStructureID):
* kjs/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor::NativeErrorConstructor):
* kjs/RegExpConstructor.cpp:
* kjs/RegExpMatchesArray.h: Added.
(JSC::RegExpMatchesArray::getOwnPropertySlot):
(JSC::RegExpMatchesArray::put):
(JSC::RegExpMatchesArray::deleteProperty):
(JSC::RegExpMatchesArray::getPropertyNames):
* kjs/StructureID.cpp:
(JSC::StructureID::StructureID):
(JSC::StructureID::addPropertyTransition):
(JSC::StructureID::toDictionaryTransition):
(JSC::StructureID::changePrototypeTransition):
(JSC::StructureID::getterSetterTransition):
* kjs/StructureID.h:
(JSC::StructureID::create):
(JSC::StructureID::typeInfo):
* kjs/TypeInfo.h: Added.
(JSC::TypeInfo::TypeInfo):
(JSC::TypeInfo::type):
WebCore:
2008-09-21 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- introduce a TypeInfo class, for holding per-type (in the C++ class sense) date in StructureID
https://bugs.webkit.org/show_bug.cgi?id=20981
* bindings/js/JSAudioConstructor.cpp:
(WebCore::JSAudioConstructor::JSAudioConstructor):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::nameGetter):
* bindings/js/JSDOMBinding.cpp:
(WebCore::createDOMStructure):
* bindings/js/JSDOMBinding.h:
(WebCore::getDOMStructure):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::JSDOMWindowShell):
(WebCore::JSDOMWindowShell::setWindow):
* bindings/js/JSEventTargetNode.cpp:
(WebCore::JSEventTargetNode::createPrototype):
* bindings/js/JSHTMLOptionElementConstructor.cpp:
(WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
* bindings/js/JSImageConstructor.cpp:
(WebCore::JSImageConstructor::JSImageConstructor):
* bindings/js/JSXMLHttpRequestConstructor.cpp:
(WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
* bindings/js/JSXSLTProcessorConstructor.cpp:
(WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
* bindings/scripts/CodeGeneratorJS.pm:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36755
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Mon, 22 Sep 2008 02:12:57 +0000 (02:12 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
Reviewed by Maciej Stachowiak.
- fix problem Maciej noticed where every JSNamedNodesCollection
gets its own StructureID
* bindings/js/JSNamedNodesCollection.cpp:
(WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Use
getDOMStructure to get the structure.
* bindings/js/JSNamedNodesCollection.h:
(WebCore::JSNamedNodesCollection::createPrototype): Return the
object prototype.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36754
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Mon, 22 Sep 2008 00:42:11 +0000 (00:42 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
Reviewed by Cameron Zwarich.
- fix crash logging into Gmail due to recent Arguments change
* kjs/Arguments.cpp:
(JSC::Arguments::Arguments): Fix window where mark() function could
see d->extraArguments with uninitialized contents.
(JSC::Arguments::mark): Check d->extraArguments for 0 to handle two
cases: 1) Inside the constructor before it's initialized.
2) numArguments <= numParameters.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36753
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hyatt@apple.com [Mon, 22 Sep 2008 00:33:19 +0000 (00:33 +0000)]
2008-09-20 David Hyatt <hyatt@apple.com>
Make sure transformed scrollbars in overflow sections position
properly. This patch mimics the same behavior that works for
iframes, namely making sure that the same code that dynamically
adjusts iframe widget positions at paint time for fixed positioning
and transforms also applies to scrollbars. (This is as simple as passing
in the current translation factor at paint time rather than crawling
up the layer tree to compute a "false" absolute position.)
An existing transform test covers this (although only a pixel result
reveals the correct rendering).
Reviewed by Darin Adler
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::positionOverflowControls):
(WebCore::RenderLayer::paintOverflowControls):
(WebCore::RenderLayer::paintLayer):
* rendering/RenderLayer.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36752
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Mon, 22 Sep 2008 00:18:14 +0000 (00:18 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
- fix loose end from the "duplicate constant values" patch
* VM/CodeGenerator.cpp:
(JSC::CodeGenerator::emitLoad): Add a special case for values the
hash table can't handle.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36751
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sfalken@apple.com [Mon, 22 Sep 2008 00:12:28 +0000 (00:12 +0000)]
Removed unnecessary nested timer check.
Rubber-stamped by Dan Bernstein.
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36750
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Mon, 22 Sep 2008 00:12:14 +0000 (00:12 +0000)]
Fix the non-AllInOneFile build.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36749
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sfalken@apple.com [Mon, 22 Sep 2008 00:08:30 +0000 (00:08 +0000)]
Improve timer resolution on WinXP.
https://bugs.webkit.org/show_bug.cgi?id=20979
Removed last-chance timer. It should not be necessary.
Change timeEndPeriod timer to fire in 300ms instead of 20ms. Calling timeBeginPeriod/timeEndPeriod too often throws off accuracy.
Remove Vista checks. We now run the same code on both XP and Vista.
Call through to JSC::getCurrentUTCTimeWithMicroseconds from WebCore::currentTime.
The code previously called GetSystemTimeAsFileTime, which is always low-resolution on XP, even within timeBeginPeriod(1).
Reviewed by Maciej Stachowiak.
* platform/win/SharedTimerWin.cpp:
(WebCore::):
(WebCore::TimerWindowWndProc):
(WebCore::setSharedTimerFireTime):
* platform/win/SystemTimeWin.cpp:
(WebCore::currentTime):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36748
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Mon, 22 Sep 2008 00:01:21 +0000 (00:01 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
Reviewed by Cameron Zwarich and Mark Rowe.
- fix test failure caused by my recent IndexToNameMap patch
* kjs/Arguments.cpp:
(JSC::Arguments::deleteProperty): Added the accidentally-omitted
check of the boolean result from toArrayIndex.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36747
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 23:08:15 +0000 (23:08 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
Reviewed by Maciej Stachowiak.
- https://bugs.webkit.org/show_bug.cgi?id=20975
inline immediate-number case of ==
* VM/CTI.h: Renamed emitJumpSlowCaseIfNotImm to
emitJumpSlowCaseIfNotImmNum, since the old name was incorrect.
* VM/CTI.cpp: Updated for new name.
(JSC::CTI::privateCompileMainPass): Added op_eq.
(JSC::CTI::privateCompileSlowCases): Added op_eq.
* VM/Machine.cpp:
(JSC::Machine::cti_op_eq): Removed fast case, since it's now
compiled.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36746
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Sun, 21 Sep 2008 21:53:59 +0000 (21:53 +0000)]
2008-09-21 Peter Gal <galpter@inf.u-szeged.hu>
Reviewed by Tim Hatcher and Eric Seidel.
Fix the QT/Linux JavaScriptCore segmentation fault.
https://bugs.webkit.org/show_bug.cgi?id=20914
* wtf/ThreadingQt.cpp:
(WTF::initializeThreading): Use currentThread() if
platform is not a MAC (like in pre 36541 revisions)
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36745
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 21:36:41 +0000 (21:36 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
* kjs/debugger.h: Removed some unneeded includes and declarations.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36744
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 21:35:23 +0000 (21:35 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
- https://bugs.webkit.org/show_bug.cgi?id=20972
speed up Arguments further by eliminating the IndexToNameMap
No change on SunSpider. 1.29x as fast on V8 Raytrace.
* kjs/Arguments.cpp: Moved ArgumentsData in here. Eliminated the
indexToNameMap and hadDeletes data members. Changed extraArguments into
an OwnArrayPtr and added deletedArguments, another OwnArrayPtr.
Replaced numExtraArguments with numParameters, since that's what's
used more directly in hot code paths.
(JSC::Arguments::Arguments): Pass in argument count instead of ArgList.
Initialize ArgumentsData the new way.
(JSC::Arguments::mark): Updated.
(JSC::Arguments::getOwnPropertySlot): Overload for the integer form so
we don't have to convert integers to identifiers just to get an argument.
Integrated the deleted case with the fast case.
(JSC::Arguments::put): Ditto.
(JSC::Arguments::deleteProperty): Ditto.
* kjs/Arguments.h: Minimized includes. Made everything private. Added
overloads for the integral property name case. Eliminated mappedIndexSetter.
Moved ArgumentsData into the .cpp file.
* kjs/IndexToNameMap.cpp: Emptied out and prepared for deletion.
* kjs/IndexToNameMap.h: Ditto.
* kjs/JSActivation.cpp:
(JSC::JSActivation::createArgumentsObject): Elminated ArgList.
* GNUmakefile.am:
* JavaScriptCore.pri:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* JavaScriptCoreSources.bkl:
* kjs/AllInOneFile.cpp:
Removed IndexToNameMap.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36743
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 20:41:22 +0000 (20:41 +0000)]
2008-09-21 Darin Adler <darin@apple.com>
* VM/CodeGenerator.cpp:
(JSC::CodeGenerator::emitLoad): One more tweak: Wrote this in a slightly
clearer style.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36742
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 20:35:20 +0000 (20:35 +0000)]
2008-09-21 Judit Jasz <jasy@inf.u-szeged.hu>
Reviewed and tweaked by Darin Adler.
- https://bugs.webkit.org/show_bug.cgi?id=20645
Elminate duplicate constant values in CodeBlocks.
Seems to be a wash on SunSpider.
* VM/CodeGenerator.cpp:
(JSC::CodeGenerator::emitLoad): Use m_numberMap and m_stringMap to guarantee
we emit the same JSValue* for identical numbers and strings.
* VM/CodeGenerator.h: Added overload of emitLoad for const Identifier&.
Add NumberMap and IdentifierStringMap types and m_numberMap and m_stringMap.
* kjs/nodes.cpp:
(JSC::StringNode::emitCode): Call the new emitLoad and let it do the
JSString creation.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36741
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 20:17:51 +0000 (20:17 +0000)]
2008-09-21 Paul Pedriana <webkit@pedriana.com>
Reviewed and tweaked by Darin Adler.
- https://bugs.webkit.org/show_bug.cgi?id=16925
Fixed lack of Vector buffer alignment for both GCC and MSVC.
Since there's no portable way to do this, for now we don't support
other compilers.
* wtf/Vector.h: Added WTF_ALIGH_ON, WTF_ALIGNED, AlignedBufferChar, and AlignedBuffer.
Use AlignedBuffer insteadof an array of char in VectorBuffer.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36740
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 19:15:19 +0000 (19:15 +0000)]
JavaScriptCore:
2008-09-21 Gabor Loki <loki@inf.u-szeged.hu>
Reviewed by Darin Adler.
- https://bugs.webkit.org/show_bug.cgi?id=19408
Add lightweight constant folding to the parser for *, /, + (only for numbers), <<, >>, ~ operators.
1.008x as fast on SunSpider.
* kjs/grammar.y:
(makeNegateNode): Fold if expression is a number > 0.
(makeBitwiseNotNode): Fold if expression is a number.
(makeMultNode): Fold if expressions are both numbers.
(makeDivNode): Fold if expressions are both numbers.
(makeAddNode): Fold if expressions are both numbers.
(makeLeftShiftNode): Fold if expressions are both numbers.
(makeRightShiftNode): Fold if expressions are both numbers.
LayoutTests:
2008-09-21 Gabor Loki <loki@inf.u-szeged.hu>
Reviewed and tweaked by Darin Adler.
- https://bugs.webkit.org/show_bug.cgi?id=19408
Add test case for constant folding.
* fast/js/constant-folding-expected.txt: Added.
* fast/js/constant-folding.html: Added.
* fast/js/resources/constant-folding.js: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36739
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Sun, 21 Sep 2008 10:39:29 +0000 (10:39 +0000)]
2008-09-21 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- speed up === operator by generating inline machine code for the fast paths
https://bugs.webkit.org/show_bug.cgi?id=20820
* VM/CTI.cpp:
(JSC::CTI::emitJumpSlowCaseIfNotImmediateNumber):
(JSC::CTI::emitJumpSlowCaseIfNotImmediateNumbers):
(JSC::CTI::emitJumpSlowCaseIfNotImmediates):
(JSC::CTI::emitTagAsBoolImmediate):
(JSC::CTI::privateCompileMainPass):
(JSC::CTI::privateCompileSlowCases):
* VM/CTI.h:
* VM/Machine.cpp:
(JSC::Machine::cti_op_stricteq):
* masm/X86Assembler.h:
(JSC::X86Assembler::):
(JSC::X86Assembler::sete_r):
(JSC::X86Assembler::setz_r):
(JSC::X86Assembler::movzbl_rr):
(JSC::X86Assembler::emitUnlinkedJnz):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36738
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Sun, 21 Sep 2008 10:37:37 +0000 (10:37 +0000)]
2008-09-21 Dirk Schulze <vbs85@gmx.de>
Reviewed by eseidel. Landed by eseidel.
All platforms use the DashArray in the GraphicsContext.
* svg/graphics/SVGPaintServer.h:
* svg/graphics/cairo/SVGPaintServerGradientCairo.cpp:
(WebCore::SVGPaintServerGradient::setup):
* svg/graphics/cairo/SVGPaintServerPatternCairo.cpp:
(WebCore::SVGPaintServerPattern::setup):
* svg/graphics/cairo/SVGPaintServerSolidCairo.cpp:
(WebCore::SVGPaintServerSolid::setup):
* svg/graphics/qt/SVGPaintServerGradientQt.cpp:
(WebCore::SVGPaintServerGradient::setup):
* svg/graphics/qt/SVGPaintServerQt.cpp:
* svg/graphics/qt/SVGPaintServerSolidQt.cpp:
(WebCore::SVGPaintServerSolid::setup):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36737
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cwzwarich@webkit.org [Sun, 21 Sep 2008 08:46:05 +0000 (08:46 +0000)]
2008-09-21 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej Stachowiak.
Free memory allocated for extra arguments in the destructor of the
Arguments object.
* kjs/Arguments.cpp:
(JSC::Arguments::~Arguments):
* kjs/Arguments.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36736
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cwzwarich@webkit.org [Sun, 21 Sep 2008 08:37:01 +0000 (08:37 +0000)]
2008-09-21 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej Stachowiak.
Bug 20815: 'arguments' object creation is non-optimal
<https://bugs.webkit.org/show_bug.cgi?id=20815>
Fix our inefficient way of creating the arguments object by only
creating named properties for each of the arguments after a use of the
'delete' statement. This patch also speeds up access to the 'arguments'
object slightly, but it still does not use the array fast path for
indexed access that exists for many opcodes.
This is about a 20% improvement on the V8 Raytrace benchmark, and a 1.5%
improvement on the Earley-Boyer benchmark, which gives a 4% improvement
overall.
JavaScriptCore:
* kjs/Arguments.cpp:
(JSC::Arguments::Arguments):
(JSC::Arguments::mark):
(JSC::Arguments::getOwnPropertySlot):
(JSC::Arguments::put):
(JSC::Arguments::deleteProperty):
* kjs/Arguments.h:
(JSC::Arguments::ArgumentsData::ArgumentsData):
* kjs/IndexToNameMap.h:
(JSC::IndexToNameMap::size):
* kjs/JSActivation.cpp:
(JSC::JSActivation::createArgumentsObject):
* kjs/JSActivation.h:
(JSC::JSActivation::uncheckedSymbolTableGet):
(JSC::JSActivation::uncheckedSymbolTableGetValue):
(JSC::JSActivation::uncheckedSymbolTablePut):
* kjs/JSFunction.h:
(JSC::JSFunction::numParameters):
LayoutTests:
* fast/js/arguments-expected.txt: Added.
* fast/js/arguments.html: Added.
* fast/js/resources/arguments.js: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36735
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Sun, 21 Sep 2008 07:59:58 +0000 (07:59 +0000)]
2008-09-21 Dirk Schulze <vbs85@gmx.de>
Reviewed by eseidel. Landed by eseidel.
Moved DashArray to GraphicsContext.
* GNUmakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/DashArray.h: Added.
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setLineDash):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setLineDash):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setLineDash):
* svg/graphics/SVGPaintServer.cpp:
(WebCore::applyStrokeStyleToContext):
* svg/graphics/SVGPaintServer.h:
* svg/graphics/cg/CgSupport.cpp:
* svg/graphics/cg/CgSupport.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36734
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Sun, 21 Sep 2008 07:16:29 +0000 (07:16 +0000)]
Reviewed by Mark Rowe.
- fix linker warnings
* WebCore.base.exp:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36733
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 06:50:35 +0000 (06:50 +0000)]
2008-09-20 Darin Adler <darin@apple.com>
- another try at fixing Qt
* bridge/qt/qt_runtime.cpp: "using namespce WebCore"
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36732
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 06:34:40 +0000 (06:34 +0000)]
2008-09-20 Darin Adler <darin@apple.com>
- blind attempt to fix Qt build
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertQVariantToValue): Use regExpStructure instead
of regExpPrototype to make a RegExpObject. There should really be
some sort of public helper function for this. Same thing for
DateInstance and dateStructure. For JSObject, use constructEmptyObject.
(JSC::Bindings::):
(JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod): Use getDOMStructure.
It is not correct to do this inside the constructor because it could
cause a garbage collect while the QtRuntimeMethod object is half-
allocated, which could lead to a crash; note that RuntimeMethod,
QtRuntimeObjectImp, and RuntimeObjectImp have the same bug.
* bridge/qt/qt_runtime.h: Add s_info and createPrototype.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36731
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
collinj@webkit.org [Sun, 21 Sep 2008 06:26:54 +0000 (06:26 +0000)]
2008-09-20 Collin Jackson <collinj@webkit.org>
Prefetch DNS for hyperlinks that the user mouses over.
https://bugs.webkit.org/show_bug.cgi?id=20931
Reviewed by Sam Weinig.
* page/Chrome.cpp:
(WebCore::Chrome::mouseDidMoveOverElement):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36730
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 06:21:18 +0000 (06:21 +0000)]
2008-09-20 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
- fix crash seen on buildbot
* kjs/JSGlobalObject.cpp:
(JSC::JSGlobalObject::mark): Add back mark of arrayPrototype,
deleted by accident in my recent check-in.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36729
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Sun, 21 Sep 2008 06:16:21 +0000 (06:16 +0000)]
2008-09-20 Maciej Stachowiak <mjs@apple.com>
Not reviewed, build fix.
- speculative fix for non-AllInOne builds
* kjs/operations.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36728
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Sun, 21 Sep 2008 05:54:23 +0000 (05:54 +0000)]
2008-09-20 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- assorted optimizations to === and !== operators
(work towards <https://bugs.webkit.org/show_bug.cgi?id=20820>)
2.5% speedup on earley-boyer test
* VM/Machine.cpp:
(JSC::Machine::cti_op_stricteq): Use inline version of
strictEqualSlowCase; remove unneeded exception check.
(JSC::Machine::cti_op_nstricteq): ditto
* kjs/operations.cpp:
(JSC::strictEqual): Use strictEqualSlowCaseInline
(JSC::strictEqualSlowCase): ditto
* kjs/operations.h:
(JSC::strictEqualSlowCaseInline): Version of strictEqualSlowCase that can be inlined,
since the extra function call indirection is a lose for CTI.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36727
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 21 Sep 2008 02:29:12 +0000 (02:29 +0000)]
JavaScriptCore:
2008-09-20 Darin Adler <darin@apple.com>
Reviewed by Maciej Stachowiak.
- finish https://bugs.webkit.org/show_bug.cgi?id=20858
make each distinct C++ class get a distinct JSC::Structure
This also includes some optimizations that make the change an overall
small speedup. Without those it was a bit of a slowdown.
* API/JSCallbackConstructor.cpp:
(JSC::JSCallbackConstructor::JSCallbackConstructor): Take a structure.
* API/JSCallbackConstructor.h: Ditto.
* API/JSCallbackFunction.cpp:
(JSC::JSCallbackFunction::JSCallbackFunction): Pass a structure.
* API/JSCallbackObject.h: Take a structure.
* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject::JSCallbackObject): Ditto.
* API/JSClassRef.cpp:
(OpaqueJSClass::prototype): Pass in a structure. Call setPrototype
if there's a custom prototype involved.
* API/JSObjectRef.cpp:
(JSObjectMake): Ditto.
(JSObjectMakeConstructor): Pass in a structure.
* JavaScriptCore.exp: Updated.
* VM/Machine.cpp:
(JSC::jsLess): Added a special case for when both arguments are strings.
This avoids converting both strings to with UString::toDouble.
(JSC::jsLessEq): Ditto.
(JSC::Machine::privateExecute): Pass in a structure.
(JSC::Machine::cti_op_construct_JSConstruct): Ditto.
(JSC::Machine::cti_op_new_regexp): Ditto.
(JSC::Machine::cti_op_is_string): Ditto.
* VM/Machine.h: Made isJSString public so it can be used in the CTI.
* kjs/Arguments.cpp:
(JSC::Arguments::Arguments): Pass in a structure.
* kjs/JSCell.h: Mark constructor explicit.
* kjs/JSGlobalObject.cpp:
(JSC::markIfNeeded): Added an overload for marking structures.
(JSC::JSGlobalObject::reset): Eliminate code to set data members to
zero. We now do that in the constructor, and we no longer use this
anywhere except in the constructor. Added code to create structures.
Pass structures rather than prototypes when creating objects.
(JSC::JSGlobalObject::mark): Mark the structures.
* kjs/JSGlobalObject.h: Removed unneeded class declarations.
Added initializers for raw pointers in JSGlobalObjectData so
everything starts with a 0. Added structure data and accessor
functions.
* kjs/JSImmediate.cpp:
(JSC::JSImmediate::nonInlineNaN): Added.
* kjs/JSImmediate.h:
(JSC::JSImmediate::toDouble): Rewrote to avoid PIC branches.
* kjs/JSNumberCell.cpp:
(JSC::jsNumberCell): Made non-inline to avoid PIC branches
in functions that call this one.
(JSC::jsNaN): Ditto.
* kjs/JSNumberCell.h: Ditto.
* kjs/JSObject.h: Removed constructor that takes a prototype.
All callers now pass structures.
* kjs/ArrayConstructor.cpp:
(JSC::ArrayConstructor::ArrayConstructor):
(JSC::constructArrayWithSizeQuirk):
* kjs/ArrayConstructor.h:
* kjs/ArrayPrototype.cpp:
(JSC::ArrayPrototype::ArrayPrototype):
* kjs/ArrayPrototype.h:
* kjs/BooleanConstructor.cpp:
(JSC::BooleanConstructor::BooleanConstructor):
(JSC::constructBoolean):
(JSC::constructBooleanFromImmediateBoolean):
* kjs/BooleanConstructor.h:
* kjs/BooleanObject.cpp:
(JSC::BooleanObject::BooleanObject):
* kjs/BooleanObject.h:
* kjs/BooleanPrototype.cpp:
(JSC::BooleanPrototype::BooleanPrototype):
* kjs/BooleanPrototype.h:
* kjs/DateConstructor.cpp:
(JSC::DateConstructor::DateConstructor):
(JSC::constructDate):
* kjs/DateConstructor.h:
* kjs/DateInstance.cpp:
(JSC::DateInstance::DateInstance):
* kjs/DateInstance.h:
* kjs/DatePrototype.cpp:
(JSC::DatePrototype::DatePrototype):
* kjs/DatePrototype.h:
* kjs/ErrorConstructor.cpp:
(JSC::ErrorConstructor::ErrorConstructor):
(JSC::constructError):
* kjs/ErrorConstructor.h:
* kjs/ErrorInstance.cpp:
(JSC::ErrorInstance::ErrorInstance):
* kjs/ErrorInstance.h:
* kjs/ErrorPrototype.cpp:
(JSC::ErrorPrototype::ErrorPrototype):
* kjs/ErrorPrototype.h:
* kjs/FunctionConstructor.cpp:
(JSC::FunctionConstructor::FunctionConstructor):
* kjs/FunctionConstructor.h:
* kjs/FunctionPrototype.cpp:
(JSC::FunctionPrototype::FunctionPrototype):
(JSC::FunctionPrototype::addFunctionProperties):
* kjs/FunctionPrototype.h:
* kjs/GlobalEvalFunction.cpp:
(JSC::GlobalEvalFunction::GlobalEvalFunction):
* kjs/GlobalEvalFunction.h:
* kjs/InternalFunction.cpp:
(JSC::InternalFunction::InternalFunction):
* kjs/InternalFunction.h:
(JSC::InternalFunction::InternalFunction):
* kjs/JSArray.cpp:
(JSC::JSArray::JSArray):
(JSC::constructEmptyArray):
(JSC::constructArray):
* kjs/JSArray.h:
* kjs/JSFunction.cpp:
(JSC::JSFunction::JSFunction):
(JSC::JSFunction::construct):
* kjs/JSObject.cpp:
(JSC::constructEmptyObject):
* kjs/JSString.cpp:
(JSC::StringObject::create):
* kjs/JSWrapperObject.h:
* kjs/MathObject.cpp:
(JSC::MathObject::MathObject):
* kjs/MathObject.h:
* kjs/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor::NativeErrorConstructor):
(JSC::NativeErrorConstructor::construct):
* kjs/NativeErrorConstructor.h:
* kjs/NativeErrorPrototype.cpp:
(JSC::NativeErrorPrototype::NativeErrorPrototype):
* kjs/NativeErrorPrototype.h:
* kjs/NumberConstructor.cpp:
(JSC::NumberConstructor::NumberConstructor):
(JSC::constructWithNumberConstructor):
* kjs/NumberConstructor.h:
* kjs/NumberObject.cpp:
(JSC::NumberObject::NumberObject):
(JSC::constructNumber):
(JSC::constructNumberFromImmediateNumber):
* kjs/NumberObject.h:
* kjs/NumberPrototype.cpp:
(JSC::NumberPrototype::NumberPrototype):
* kjs/NumberPrototype.h:
* kjs/ObjectConstructor.cpp:
(JSC::ObjectConstructor::ObjectConstructor):
(JSC::constructObject):
* kjs/ObjectConstructor.h:
* kjs/ObjectPrototype.cpp:
(JSC::ObjectPrototype::ObjectPrototype):
* kjs/ObjectPrototype.h:
* kjs/PrototypeFunction.cpp:
(JSC::PrototypeFunction::PrototypeFunction):
* kjs/PrototypeFunction.h:
* kjs/RegExpConstructor.cpp:
(JSC::RegExpConstructor::RegExpConstructor):
(JSC::RegExpMatchesArray::RegExpMatchesArray):
(JSC::constructRegExp):
* kjs/RegExpConstructor.h:
* kjs/RegExpObject.cpp:
(JSC::RegExpObject::RegExpObject):
* kjs/RegExpObject.h:
* kjs/RegExpPrototype.cpp:
(JSC::RegExpPrototype::RegExpPrototype):
* kjs/RegExpPrototype.h:
* kjs/Shell.cpp:
(GlobalObject::GlobalObject):
* kjs/StringConstructor.cpp:
(JSC::StringConstructor::StringConstructor):
(JSC::constructWithStringConstructor):
* kjs/StringConstructor.h:
* kjs/StringObject.cpp:
(JSC::StringObject::StringObject):
* kjs/StringObject.h:
* kjs/StringObjectThatMasqueradesAsUndefined.h:
(JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
* kjs/StringPrototype.cpp:
(JSC::StringPrototype::StringPrototype):
* kjs/StringPrototype.h:
Take and pass structures.
WebCore:
2008-09-20 Darin Adler <darin@apple.com>
Reviewed by Maciej Stachowiak.
- finish https://bugs.webkit.org/show_bug.cgi?id=20858
make each distinct C++ class get a distinct JSC::Structure
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::nameGetter): Pass in a structure
ID. Note that this makes a new structure every time -- we could
optimize this slightly be caching and reusing a single one.
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::RuntimeMethod): Create a unique structure using
getDOMStructure.
* bridge/runtime_method.h:
(JSC::RuntimeMethod::createPrototype): Added createPrototype so
getDOMStructure will work.
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::JSDOMWindowShell): Initialize m_window to
0; needed in case garbage collection happens while creating the
JSDOMWindow.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36726
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Sun, 21 Sep 2008 01:29:08 +0000 (01:29 +0000)]
Roll out r36719 and attempted build fixes r36121 and r36722 due to massive build breakage.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36725
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Sun, 21 Sep 2008 00:52:41 +0000 (00:52 +0000)]
Added Radar link
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36724
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Sun, 21 Sep 2008 00:49:49 +0000 (00:49 +0000)]
Reviewed by Eric Seidel.
- fix https://bugs.webkit.org/show_bug.cgi?id=20950
Reproducible assertion failure running svg/custom/acid3-test-77.html multiple times under guard malloc
* svg/SVGTextContentElement.cpp:
(WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback): Changed to
not include the first character in the extraCharsAvailable count.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36723
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Sun, 21 Sep 2008 00:42:30 +0000 (00:42 +0000)]
- Mac build fix
* WebCore.xcodeproj/project.pbxproj: Made DashArray.h a private header.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36722
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Sun, 21 Sep 2008 00:36:57 +0000 (00:36 +0000)]
Added a file that was missing from r36719
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36721
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kevino@webkit.org [Sat, 20 Sep 2008 23:56:57 +0000 (23:56 +0000)]
Add missing bug reference to ChangeLog.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36720
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Sat, 20 Sep 2008 23:46:23 +0000 (23:46 +0000)]
2008-09-20 Dirk Schulze <vbs85@gmx.de>
Reviewed by eseidel. Landed by eseidel.
Moved DashArray to the GraphicsContext.
* GNUmakefile.am:
* platform/graphics/DashArray.h: Added.
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setLineDash):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setLineDash):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setLineDash):
* svg/graphics/SVGPaintServer.cpp:
(WebCore::applyStrokeStyleToContext):
* svg/graphics/SVGPaintServer.h:
* svg/graphics/cg/CgSupport.cpp:
* svg/graphics/cg/CgSupport.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36719
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kevino@webkit.org [Sat, 20 Sep 2008 23:39:25 +0000 (23:39 +0000)]
Reviewed by Dan Bernstein.
Fix two memory leaks.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36718
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kevino@webkit.org [Sat, 20 Sep 2008 22:31:24 +0000 (22:31 +0000)]
wx build fixes. Added/removed build sources, and nativeWindow->platformWidget updates.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36717
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Sat, 20 Sep 2008 22:21:59 +0000 (22:21 +0000)]
Fix the new Node Search button image to not be blurry.
* page/inspector/Images/nodeSearchButtons.png:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36716
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pewtermoose@webkit.org [Sat, 20 Sep 2008 21:53:43 +0000 (21:53 +0000)]
2008-09-20 Matt Lilek <webkit@mattlilek.com>
Reviewed by Tim Hatcher.
Cut down some of the inspector javascript -> InspectorController glue code
with two new macros. Also rearrange the exposed function list to be grouped
by implementation and to all explicitly use the WebCore namespace.
* page/InspectorController.cpp:
(WebCore::InspectorController::windowScriptObjectAvailable):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36715
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pewtermoose@webkit.org [Sat, 20 Sep 2008 21:53:10 +0000 (21:53 +0000)]
2008-09-20 Matt Lilek <webkit@mattlilek.com>
Reviewed by Tim Hatcher.
Revert r35688. We use a textured window on Leopard, which does not have the
square corners of the standard Aqua window on Tiger.
* WebCoreSupport/WebInspectorClient.mm:
(-[WebInspectorWindowController window]): Add back the call to WKNSWindowMakeBottomCornersSquare.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36714
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pewtermoose@webkit.org [Sat, 20 Sep 2008 21:30:43 +0000 (21:30 +0000)]
2008-09-20 Matt Lilek <webkit@mattlilek.com>
Reviewed by Tim Hatcher.
Fix regression from my previous patch where the breadcrumbs bar was not displayed.
* page/inspector/inspector.css:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36713
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zimmermann@webkit.org [Sat, 20 Sep 2008 20:19:45 +0000 (20:19 +0000)]
Reviewed by Eric.
Refactor HTMLImageLoader/SVGImageLoader code.
Move html/HTMLImageLoader.* to loader/ImageLoader.*
Let HTMLImageLoader & SVGImageLoader inherit from the new base class.
SVGImageLoader used to inherit from HTMLImageLoader which is awkward.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36712
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sat, 20 Sep 2008 14:36:57 +0000 (14:36 +0000)]
2008-09-20 Darin Adler <darin@apple.com>
- fix build
* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::paintCustomScrollbar): Tweaked constant names to make this
compile, but it may not be working correctly. Hyatt should do the real fix.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36711
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sat, 20 Sep 2008 14:29:36 +0000 (14:29 +0000)]
2008-09-20 Darin Adler <darin@apple.com>
* DumpRenderTree/mac/DumpRenderTree.mm:
(convertMIMEType): Turn on Stephanie's workaround for Tiger too.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36710
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zecke@webkit.org [Sat, 20 Sep 2008 14:24:45 +0000 (14:24 +0000)]
[qtwebkit] ScrollBar build fix after r36684.
BackButtonPart was split into Start and End Part
ForwardButtonPart was split into Start and End Part
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36709
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zecke@webkit.org [Sat, 20 Sep 2008 14:24:27 +0000 (14:24 +0000)]
[qtwebkit] Make qt_instance.cpp compile.
Revision of 36675 introduced getDOMStructure to give unique
structure id's to C++ classes. Catch up. RuntimeObjectImp assigns
the the StructureID inside the c'tor, do the same in QtRuntimeObjectImp
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36708
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zecke@webkit.org [Sat, 20 Sep 2008 14:24:10 +0000 (14:24 +0000)]
[svg] Change SVGLocatable to deal with a plain SVGElement
There is no requirement in the code that we have to have a
SVGStyledElement. Remove that artificial limitation and compile
with SVGElement.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36707
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zecke@webkit.org [Sat, 20 Sep 2008 14:23:55 +0000 (14:23 +0000)]
[svg] Use OwnPtr for the SVGExtensions
Use OwnPtr to avoid custom lifetime management.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36706
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Sat, 20 Sep 2008 06:34:35 +0000 (06:34 +0000)]
2008-09-19 Alp Toker <alp@nuanti.com>
Build fix for the 'gold' linker and recent binutils. New behaviour
requires that we link to used libraries explicitly.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36705
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Sat, 20 Sep 2008 05:17:06 +0000 (05:17 +0000)]
2008-09-19 Stephanie Lewis <slewis@apple.com>
Reviewed by Oliver Hunt.
Implement a workaround for an incorrect mime-type on machines with
Dashcode 2.0.1. Dashcode is overriding the UTI type for .js files.
See radar <rdar://problem/
6234318>.
* DumpRenderTree/mac/DumpRenderTree.mm:
(convertMIMEType):
Use correct mime-type for javascript
* svg/webarchive/svg-script-subresouces-expected.webarchive:
* webarchive/test-duplicate-resources-expected.webarchive:
* webarchive/test-script-src-expected.webarchive:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36704
268f45cc-cd09-0410-ab3c-
d52691b4dbfc