⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Sep 2, 2008:

11:59 PM Changeset in webkit [36051] by mrowe@apple.com
  • 9 edits
    2 adds in trunk

2008-09-02 Robert Blaut <webkit@blaut.biz>

Reviewed by Geoff Garen.

Fix for <https://bugs.webkit.org/show_bug.cgi?id=16913>
Misplaced elements should not close DL lists.

Test: fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html

  • html/HTMLParser.cpp: (WebCore::HTMLParser::handleError):

2008-09-02 Robert Blaut <webkit@blaut.biz>

Reviewed by Geoff Garen.

Test for <https://bugs.webkit.org/show_bug.cgi?id=16913>
Misplaced elements should not close DL lists.

  • fast/invalid/test-case-tr-th-td-should-not-close-dl-list-expected.txt: Added.
  • fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html: Added.
  • platform/mac/fast/invalid/missing-dl-end-tag-expected.checksum:
  • platform/mac/fast/invalid/missing-dl-end-tag-expected.png:
  • platform/mac/fast/invalid/missing-dl-end-tag-expected.txt:
  • platform/mac/fast/invalid/missing-dt-end-tag-expected.checksum:
  • platform/mac/fast/invalid/missing-dt-end-tag-expected.png:
  • platform/mac/fast/invalid/missing-dt-end-tag-expected.txt:
11:51 PM Changeset in webkit [36050] by mrowe@apple.com
  • 3 edits
    2 adds in trunk

2008-09-02 Glenn Wilson <wilsong@gmail.com>

Reviewed by Darin Adler.

Fix for <https://bugs.webkit.org/show_bug.cgi?id=15360>
Bug 15360: color:#{predefined colorName} is treated as colorName in Safari

We would inappropriately interpret and apply an invalid CSS "color" property
when the value is a predefined color preceded by a '#' symbol. For example,
style="color:#gray;" would apply the color gray when it should not.

In the bison template, "hexcolor" was defined as both "HEX maybe_space" OR "IDENT maybe_space".
This caused identifiers not fitting the appropriate hex format but preceded by a '#' to be
interpreted as a valid color (CSSPrimitiveValue::CSS_PARSER_HEXCOLOR), when it was really just
an ignorable token.

To correct this, "IDENT maybe_space" was removed from "hexcolor" and added under "term" as
'#' IDENT maybe_space, which is then processed as a CSSPrimitiveValue::CSS_STRING instead of
CSSPrimitiveValue::CSS_PARSER_HEXCOLOR.

Test: css1/color_and_background/invalid_color.html

  • css/CSSGrammar.y:

2008-09-02 Glenn Wilson <wilsong@gmail.com>

Reviewed by Darin Adler.

Test for <https://bugs.webkit.org/show_bug.cgi?id=15360>
Bug 15360: color:#{predefined colorName} is treated as colorName in Safari

Added new test to verify that CSS "color" attributes with '#'-preceeded predefined color names
are not rendered in those colors.

  • css1/color_and_background/invalid_color.html: Added.
  • css1/color_and_background/invalid_color-expected.txt: Added.
11:38 PM Changeset in webkit [36049] by mrowe@apple.com
  • 2 edits in trunk/WebKit

Build fix. Remove the now unnecessary check for "4" in the user agent string.

Reviewed by Tim Hatcher.

  • WebKit.xcodeproj/project.pbxproj:
11:28 PM Changeset in webkit [36048] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-09-02 Csaba Osztrogonac <oszi@inf.u-szeged.hu>

Reviewed by Darin Adler.

Bug 20296: OpcodeStats doesn't build on platforms which don't have mergesort().
<https://bugs.webkit.org/show_bug.cgi?id=20296>

  • VM/Opcode.cpp: (KJS::OpcodeStats::~OpcodeStats): mergesort() replaced with qsort()
11:22 PM Changeset in webkit [36047] by mrowe@apple.com
  • 3 edits
    4 adds in trunk

2008-09-02 Mihnea Ovidenie <mihnea@adobe.com>

Reviewed by Darin Adler.

Fix for https://bugs.webkit.org/show_bug.cgi?id=19964
Bug 19964: Divide by zero crash in RenderBox::calculateBackgroundSize with 0,0 bmp background image

Add a check to RenderBox::repaintLayerRectsForImage to make sure the current layer image can be rendered.

Test: css3/khtml-background-size-0x0-bmp.html

  • rendering/RenderBox.cpp: (WebCore::RenderBox::repaintLayerRectsForImage):

2008-09-02 Mihnea Ovidenie <mihnea@adobe.com>

Reviewed by Darin Adler.

Test for https://bugs.webkit.org/show_bug.cgi?id=19964
Bug 19964: Divide by zero crash in RenderBox::calculateBackgroundSize with 0,0 bmp background image

  • css3/khtml-background-size-0x0-bmp-expected.txt: Added.
  • css3/khtml-background-size-0x0-bmp.html: Added.
  • css3/support/0x0.bmp: Added.
11:12 PM Changeset in webkit [36046] by mrowe@apple.com
  • 3 edits
    2 adds in trunk

2008-09-02 Glenn Wilson <wilsong@gmail.com>

Reviewed by Eric Seidel.

Fix https://bugs.webkit.org/show_bug.cgi?id=20397
Bug 20397: Invalid webkit-border-bottom-left-radius property causes crash

The function checkForOrphanedUnits() would change the length of a list whose size was
was already determined before the call to checkForOrphanedUnits was made. Later in
the caller, the old size was being used for boundary management.

This has been fixed by moving the call to checkForOrphanedUnits() earlier in the
calling function, before the size of the list is determined.

Test: fast/css/orphaned_units_crash.html

  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue): Moved call to checkForOrphanedUnits() earlier in the function.

2008-09-02 Glenn Wilson <wilsong@gmail.com>

Reviewed by Eric Seidel.

Tests for https://bugs.webkit.org/show_bug.cgi?id=20397
Bug 20397: Invalid webkit-border-bottom-left-radius property causes crash

Added new tests to check whether an orphaned unit identifier in particular
CSS attributes will crash the browser.

  • fast/css/orphaned_units_crash-expected.txt: Added.
  • fast/css/orphaned_units_crash.html: Added.
11:10 PM Changeset in webkit [36045] by cwzwarich@webkit.org
  • 2 edits in trunk

2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Move the ChangeLog of r35906 to its rightful place.

11:01 PM Changeset in webkit [36044] by mrowe@apple.com
  • 3 edits
    6 adds in trunk

2008-09-02 Dirk Schulze <vbs85@gmx.de>

Reviewed by Darin Adler.

Fallback on invalid fill or stroke styles in Canvas was
transparent black. Changed it to last valid style.

Canvas fillStyle() and strokeStyle() needs fallback
https://bugs.webkit.org/show_bug.cgi?id=20474

Tests: fast/canvas/canvas-invalid-fillstyle.html

fast/canvas/canvas-invalid-strokestyle.html

  • html/CanvasStyle.cpp: (WebCore::CanvasStyle::applyStrokeColor): (WebCore::CanvasStyle::applyFillColor):

2008-09-02 Dirk Schulze <vbs85@gmx.de>

Reviewed by Darin Adler.

Tests for https://bugs.webkit.org/show_bug.cgi?id=20474
Tests behaviour on invalid fillStyle() or strokeStyle() in canvas.

  • fast/canvas/canvas-invalid-fillstyle-expected.txt: Added.
  • fast/canvas/canvas-invalid-fillstyle.html: Added.
  • fast/canvas/canvas-invalid-fillstyle.js: Added.
  • fast/canvas/canvas-invalid-strokestyle-expected.txt: Added.
  • fast/canvas/canvas-invalid-strokestyle.html: Added.
  • fast/canvas/canvas-invalid-strokestyle.js: Added.
10:49 PM Changeset in webkit [36043] by mrowe@apple.com
  • 5 edits
    3 adds in trunk

2008-09-02 Dirk Schulze <vbs85@gmx.de>

Reviewed by Darin Adler.

Fix https://bugs.webkit.org/show_bug.cgi?id=20468
Updated drawImage() in canvas to match the current specification.

Test: fast/canvas/drawImage-with-negative-source-destination.html

  • html/CanvasRenderingContext2D.cpp: (WebCore::normalizeRect): (WebCore::CanvasRenderingContext2D::drawImage):

2008-09-02 Dirk Schulze <vbs85@gmx.de>

Reviewed by Darin Adler.

Tests for https://bugs.webkit.org/show_bug.cgi?id=20468
Test negative source and destination rect in drawImage()

  • fast/canvas/drawImage-with-invalid-args-expected.txt:
  • fast/canvas/drawImage-with-invalid-args.html:
  • fast/canvas/drawImage-with-negative-source-destination-expected.txt: Added.
  • fast/canvas/drawImage-with-negative-source-destination.html: Added.
  • fast/canvas/drawImage-with-negative-source-destination.js: Added.
10:41 PM Changeset in webkit [36042] by mrowe@apple.com
  • 4 edits in trunk/WebCore

<rdar://problem/5768210> Switch back to the system version of SQLite

Reviewed by Darin Adler.

Use the system version of SQLite when it is new enough to provide the functionality
that WebCore requires.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/WebCore.xcconfig:
10:23 PM Changeset in webkit [36041] by mrowe@apple.com
  • 4 edits in tags/Safari-6528.3

Versioning.

10:13 PM Changeset in webkit [36040] by mrowe@apple.com
  • 4 edits in trunk

Versioning.

10:04 PM Changeset in webkit [36039] by ggaren@apple.com
  • 5 edits in trunk/JavaScriptCore

2008-09-02 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Fast path for array.length and string.length.


SunSpider says 0.5% faster.

8:19 PM Changeset in webkit [36038] by mitz@apple.com
  • 2 edits in trunk/LayoutTests
  • update expected results now that log() et al. report line numbers
  • fast/dom/Window/console-functions-expected.txt:
7:59 PM Changeset in webkit [36037] by mitz@apple.com
  • 2 edits in trunk/WebCore
  • build fix
  • page/animation/AnimationBase.h:
7:58 PM Changeset in webkit [36036] by ggaren@apple.com
  • 9 edits in trunk/JavaScriptCore

2008-09-02 Geoffrey Garen <ggaren@apple.com>

Reviewed by Anders Carlsson.


Added optimized paths for comparing to null.


SunSpider says 0.5% faster.

7:46 PM Changeset in webkit [36035] by cwzwarich@webkit.org
  • 2 edits in trunk/SunSpider

2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Remove a local change that was accidentally committed in r36034.

  • resources/sunspider-standalone-driver.js:
7:42 PM Changeset in webkit [36034] by cwzwarich@webkit.org
  • 2 edits
    3 adds in trunk

2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver Hunt.

Tests for bug 17936: "ASSERTION FAILED: false" (GetterSetterImp::toObject is called)
<https://bugs.webkit.org/show_bug.cgi?id=17936>

This bug was fixed by the rewrite of much of the code handling getters
and setters in r36016, the revision that introduced the polymorphic
inline cache.

  • fast/js/delete-getters-setters-expected.txt: Added.
  • fast/js/delete-getters-setters.html: Added.
  • fast/js/resources/delete-getters-setters.js: Added.
7:39 PM Changeset in webkit [36033] by ggaren@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-09-02 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.

Changed jsDriver.pl to dump the exact text you would need in order to
reproduce a test result. This enables a fast workflow where you copy
and paste a test failure in the terminal.

  • tests/mozilla/jsDriver.pl:
7:31 PM Changeset in webkit [36032] by ggaren@apple.com
  • 25 edits
    4 adds in trunk

JavaScriptCore:

2008-09-02 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.


Implemented the rest of Darin's review comments for the 09-01 inline
caching patch.


SunSpider says 0.5% faster, but that seems like noise.

  • JavaScriptCore.xcodeproj/project.pbxproj: Put PutPropertySlot into its own file, and added BatchedTransitionOptimizer.
  • VM/CodeBlock.cpp: (KJS::CodeBlock::~CodeBlock): Use array indexing instead of a pointer iterator.
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator): Used BatchedTransitionOptimizer to make batched put and remove for declared variables fast, without forever pessimizing the global object. Removed the old getDirect/removeDirect hack that tried to do the same in a more limited way.
  • VM/CodeGenerator.h: Moved IdentifierRepHash to the KJS namespace since it doesn't specialize anything in WTF.
  • VM/Machine.cpp: (KJS::Machine::Machine): Nixed the DummyConstruct tag because it was confusingly named.

(KJS::Machine::execute): Used BatchedTransitionOptimizer, as above. Fixed
up some comments.

(KJS::cachePrototypeChain): Cast to JSObject*, since it's more specific.

(KJS::Machine::tryCachePutByID): Use isNull() instead of comparing to
jsNull(), since isNull() leaves more options open for the future.
(KJS::Machine::tryCacheGetByID): ditto
(KJS::Machine::privateExecute): ditto

  • VM/SamplingTool.cpp: (KJS::SamplingTool::dump): Use C++-style cast, to match our style guidelines.
  • kjs/BatchedTransitionOptimizer.h: Added. New class that allows host code to add a batch of properties to an object in an efficient way.
  • kjs/JSActivation.cpp: Use isNull(), as above.
  • kjs/JSArray.cpp: Get rid of DummyConstruct tag, as above.
  • kjs/JSArray.h:
  • kjs/JSGlobalData.cpp: Nixed two unused StructureIDs.
  • kjs/JSGlobalData.h:
  • kjs/JSImmediate.cpp: Use isNull(), as above.
  • kjs/JSObject.cpp: (KJS::JSObject::mark): Moved mark tracing code elsewhere, to make this function more readable.

(KJS::JSObject::put): Use isNull(), as above.

(KJS::JSObject::createInheritorID): Return a raw pointer, since the
object is owned by a data member, not necessarily the caller.

  • kjs/JSObject.h:
  • kjs/JSString.cpp: Use isNull(), as above.
  • kjs/PropertyMap.h: Updated to use PropertySlot::invalidOffset.
  • kjs/PropertySlot.h: Changed KJS_INVALID_OFFSET to WTF::notFound because C macros are so 80's.
  • kjs/PutPropertySlot.h: Added. Split out of PropertySlot.h. Also renamed PutPropertySlot::SlotType to PutPropertySlot::Type, and slotBase to base, since "slot" was redundant.
  • kjs/StructureID.cpp: Added a new transition *away* from dictionary status, to support BatchedTransitionOptimizer.

(KJS::StructureIDChain::StructureIDChain): No need to store m_size as
a data member, so keep it in a local, which might be faster.

  • kjs/StructureID.h:
  • kjs/SymbolTable.h: Moved IdentifierRepHash to KJS namespace, as above.
  • kjs/ustring.h:

JavaScriptGlue:

2008-09-02 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.


Implemented the rest of Darin's review comments for the 09-01 inline
caching patch.


  • ForwardingHeaders/kjs/PutPropertySlot.h: Added.
6:32 PM Changeset in webkit [36031] by dino@apple.com
  • 6 edits
    1 move
    10 adds
    1 delete in trunk/WebCore

2008-09-02 Chris Marrin <cmarrin@apple.com>

Reviewed by Dave Hyatt.

AnimationController.cpp should be split into separate files
https://bugs.webkit.org/show_bug.cgi?id=20604

Note: All makefiles, except WebCore.xcodeproj have been changed without testing, upon
recommendation of Dave Hyatt.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:

Build files.

  • page/AnimationController.cpp: Removed.
  • page/AnimationController.h: Removed.
  • page/animation: Added.
  • page/animation/AnimationBase.cpp: Added.
  • page/animation/AnimationBase.h: Added.
  • page/animation/AnimationController.cpp: Copied from WebCore/page/AnimationController.cpp.
  • page/animation/AnimationController.h: Copied from WebCore/page/AnimationController.h.
  • page/animation/CompositeAnimation.cpp: Added.
  • page/animation/CompositeAnimation.h: Added.
  • page/animation/ImplicitAnimation.cpp: Added.
  • page/animation/ImplicitAnimation.h: Added.
  • page/animation/KeyframeAnimation.cpp: Added.
  • page/animation/KeyframeAnimation.h: Added.
5:57 PM Changeset in webkit [36030] by mitz@apple.com
  • 2 edits in trunk/WebCore
  • release build fix
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::calculateDrawingMode):
2:35 PM Changeset in webkit [36029] by timothy@apple.com
  • 5 edits in trunk/WebCore

Make console functions log the correct resource URL and
line number for where the call originated.

https://bugs.webkit.org/show_bug.cgi?id=17234
<rdar://problem/5732837>

Reviewed by Kevin McCullough.

Test: manual-tests/inspector/console-call-line-numbers.html

  • bindings/js/JSConsoleCustom.cpp: (WebCore::JSConsole::count): Call the impl. (WebCore::JSConsole::timeEnd): Ditto.
  • manual-tests/inspector/console-call-line-numbers.html: Added.
  • manual-tests/inspector/resources/script-console-calls.js: Added.
  • page/Console.cpp: (WebCore::retrieveLastCaller): Helper to get the URL and line. (WebCore::Console::error): Call retrieveLastCaller to get the URL and line number to pass to addMessageToConsole. (WebCore::Console::info): Ditto. (WebCore::Console::log): Ditto. (WebCore::Console::assertCondition): Ditto. (WebCore::Console::count): Ditto. (WebCore::Console::timeEnd): Ditto. (WebCore::Console::warn): Ditto.
  • page/Console.h:
  • page/Console.idl: Make count and timeEnd custom.
2:30 PM Changeset in webkit [36028] by timothy@apple.com
  • 2 edits in trunk/WebCore

Removed IDL files from WebCore's framework resources.

  • WebCore.xcodeproj/project.pbxproj:
2:11 PM Changeset in webkit [36027] by cwzwarich@webkit.org
  • 2 edits in trunk/SunSpider

2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Rubber-stamped by Oliver Hunt.

Make SunSpider work with JavaScript shells that don't take filenames
after a '-f' argument.

  • sunspider:
1:39 PM Changeset in webkit [36026] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Dave Hyatt.

  • html/HTMLParser.cpp: (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Added a cap on the number of consecutive identical residual style tags to reopen. (WebCore::HTMLParser::popBlock): Ditto.
9:16 AM Changeset in webkit [36025] by ap@webkit.org
  • 5 edits in trunk/WebCore

Reviewed by Adam Roben.

A little database quota management cleanup.

  • storage/OriginQuotaManager.cpp: (WebCore::OriginQuotaManager::OriginQuotaManager): (WebCore::OriginQuotaManager::lock): (WebCore::OriginQuotaManager::unlock): (WebCore::OriginQuotaManager::trackOrigin): (WebCore::OriginQuotaManager::tracksOrigin): (WebCore::OriginQuotaManager::addDatabase): (WebCore::OriginQuotaManager::removeDatabase): (WebCore::OriginQuotaManager::removeOrigin): (WebCore::OriginQuotaManager::markDatabase): (WebCore::OriginQuotaManager::diskUsage):
  • storage/OriginQuotaManager.h: Changed to assert that a lock is taken more directly and reliably. Removed comments about main/background threads, as this is likely to stop being true with synchronous Database calls being made on worker threads.
  • storage/OriginUsageRecord.cpp: (WebCore::OriginUsageRecord::OriginUsageRecord): (WebCore::OriginUsageRecord::addDatabase): (WebCore::OriginUsageRecord::removeDatabase): (WebCore::OriginUsageRecord::markDatabase): (WebCore::OriginUsageRecord::diskUsage):
  • storage/OriginUsageRecord.h: (WebCore::OriginUsageRecord::DatabaseEntry::DatabaseEntry): Don't use a magic value for unknown. It is totally unnecessary for DatabaseEntry, and can be replaced with a single boolean for OriginUsageRecord. Added assertions for string parameters being unshared.
8:15 AM Changeset in webkit [36024] by Adam Roben
  • 3 edits in trunk/JavaScriptCore

Windows build fixes

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Add StructureID.{cpp,h} to the project. Also let VS reorder this file.
  • VM/CodeBlock.cpp: Include StringExtras so that snprintf will be defined on Windows.

Sep 1, 2008:

10:08 PM Changeset in webkit [36023] by mrowe@apple.com
  • 1 copy in tags/Safari-6528.3

New tag.

9:26 PM Changeset in webkit [36022] by abarth@webkit.org
  • 10 edits in trunk

WebCore:

2008-09-01 Adam Barth <abarth@webkit.org>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=19760

Make granting LoadLocalResources conditional on a policy.

  • WebCore.base.exp:
  • dom/Document.cpp: (WebCore::Document::initSecurityContext):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::setLocalLoadPolicy): (WebCore::FrameLoader::restrictAccessToLocal):
  • loader/FrameLoader.h: (WebCore::FrameLoader::):
  • platform/SecurityOrigin.cpp: (WebCore::SecurityOrigin::grantLoadLocalResources):
  • platform/SecurityOrigin.h:

WebKit/mac:

2008-09-01 Adam Barth <abarth@webkit.org>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=19760

Add a linked-on-or-after check to prevent substitute data from loading
local resources on newer users of WebKit.

  • Misc/WebKitVersionChecks.h:
  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):
4:34 PM Changeset in webkit [36021] by dino@apple.com
  • 3 edits
    23 adds in trunk

2008-09-01 Dean Jackson <dino@apple.com>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=20571
Make sure Window object can assign Animation/Transition event
listeners via attributes.

Also added a bunch of transition event tests, although
only transition-end-event-window is directly relevant to this patch.

(WebCore::JSDOMWindowBase::put):

Tests: transitions/transition-end-event-all-properties.html

transitions/transition-end-event-attributes.html
transitions/transition-end-event-container.html
transitions/transition-end-event-left.html
transitions/transition-end-event-multiple-01.html
transitions/transition-end-event-multiple-02.html
transitions/transition-end-event-multiple-03.html
transitions/transition-end-event-multiple-04.html
transitions/transition-end-event-nested.html
transitions/transition-end-event-transform.html
transitions/transition-end-event-window.html

4:05 PM Changeset in webkit [36020] by dino@apple.com
  • 2 edits in trunk/WebCore

2008-09-01 Dean Jackson <dino@apple.com>

Reviewed by Sam Weinig

Code styling cleanup.

  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::getValueProperty): (WebCore::JSDOMWindowBase::put):
3:55 PM Changeset in webkit [36019] by weinig@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Fix release build.

3:49 PM Changeset in webkit [36018] by jmalonzo@webkit.org
  • 4 edits in trunk/JavaScriptCore

2008-09-01 Jan Michael Alonzo <jmalonzo@webkit.org>

Reviewed by Oliver Hunt.

Gtk buildfix

  • GNUmakefile.am:
  • kjs/PropertyMap.cpp: rename Identifier.h to identifier.h
  • kjs/StructureID.cpp: include JSObject.h
3:40 PM Changeset in webkit [36017] by weinig@apple.com
  • 7 edits in trunk/JavaScriptGlue

2008-09-01 Geoffrey Garen <ggaren@apple.com>

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.


Updated for JavaScriptCore changes. Mostly mechanical addition of StructureIDs
to JavaScriptGlue classes, and PutPropertySlot& arguments to put functions.

2:22 PM Changeset in webkit [36016] by weinig@apple.com
  • 100 edits
    20 adds in trunk

JavaScriptCore:

2008-09-01 Geoffrey Garen <ggaren@apple.com>

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.


SunSpider says 4% faster. Tests heavy on dictionary-like access have
regressed a bit -- we have a lot of room to improve in this area,
but this patch is over-ripe as-is.


JSCells now have a StructureID that uniquely identifies their layout,
and holds their prototype.


JSValue::put takes a PropertySlot& argument, so it can fill in details
about where it put a value, for the sake of caching.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator): Avoid calling removeDirect if we can, since it disables inline caching in the global object. This can probably improve in the future.
  • kjs/JSGlobalObject.cpp: Nixed reset(), since it complicates caching, and wasn't really necessary.
  • kjs/JSObject.cpp: Tweaked getter / setter behavior not to rely on the IsGetterSetter flag, since the flag was buggy. This is necessary in order to avoid accidentally accessing a getter / setter as a normal property.


Also changed getter / setter creation to honor ReadOnly, matching Mozilla.


  • kjs/PropertyMap.cpp: Nixed clear(), since it complicates caching and isn't necessary.
  • kjs/Shell.cpp: Moved SamplingTool dumping outside the loop. This allows you to aggregate sampling of multiple files (or the same file repeatedly), which helped me track down regressions.
  • kjs/ustring.h: Moved IdentifierRepHash here to share it.

WebCore:

2008-09-01 Geoffrey Garen <ggaren@apple.com>

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.

Updated for JavaScriptCore changes. Mostly mechanical addition of StructureIDs
to WebCore classes, and PutPropertySlot& arguments to put functions.

(WebCore::JSCSSStyleDeclaration::customPut): Be sure to play nice with
inline caching for global properties, so global assignment can be optimized.

  • ForwardingHeaders/kjs/StructureID.h: Added.
  • bindings/js/JSDOMBinding.h: (WebCore::DOMObject::DOMObject):
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::put):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWindowCustom.h: (WebCore::JSDOMWindow::customPut):
  • bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::JSDOMWindowShell): (WebCore::JSDOMWindowShell::put):
  • bindings/js/JSDOMWindowShell.h:
  • bindings/js/JSEventTargetBase.h: (WebCore::JSEventTargetBase::put):
  • bindings/js/JSEventTargetNode.h: (WebCore::JSEventTargetNode::put):
  • bindings/js/JSHTMLAppletElementCustom.cpp: (WebCore::JSHTMLAppletElement::customPut):
  • bindings/js/JSHTMLEmbedElementCustom.cpp: (WebCore::JSHTMLEmbedElement::customPut):
  • bindings/js/JSHTMLInputElementBase.cpp: (WebCore::JSHTMLInputElementBase::put):
  • bindings/js/JSHTMLInputElementBase.h:
  • bindings/js/JSHTMLObjectElementCustom.cpp: (WebCore::JSHTMLObjectElement::customPut):
  • bindings/js/JSHistoryCustom.cpp: (WebCore::JSHistory::customPut):
  • bindings/js/JSInspectedObjectWrapper.cpp: (WebCore::JSInspectedObjectWrapper::wrap): (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper):
  • bindings/js/JSInspectedObjectWrapper.h:
  • bindings/js/JSInspectorCallbackWrapper.cpp: (WebCore::JSInspectorCallbackWrapper::wrap): (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper):
  • bindings/js/JSInspectorCallbackWrapper.h:
  • bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::customPut):
  • bindings/js/JSPluginElementFunctions.cpp: (WebCore::runtimeObjectCustomPut):
  • bindings/js/JSPluginElementFunctions.h:
  • bindings/js/JSQuarantinedObjectWrapper.cpp: (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper): (WebCore::JSQuarantinedObjectWrapper::put):
  • bindings/js/JSQuarantinedObjectWrapper.h:
  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::customPut):
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject setValue:forKey:]):
  • bindings/scripts/CodeGeneratorJS.pm:
  • bridge/NP_jsobject.cpp: (_NPN_SetProperty):
  • bridge/jni/jni_jsobject.mm: (JavaJSObject::setMember):
  • bridge/objc/objc_class.mm: (KJS::Bindings::ObjcClass::fallbackObject):
  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm: (ObjcFallbackObjectImp::ObjcFallbackObjectImp): (ObjcFallbackObjectImp::put):
  • bridge/runtime.cpp: (KJS::Bindings::Instance::createRuntimeObject):
  • bridge/runtime_array.cpp: (RuntimeArray::put):
  • bridge/runtime_array.h:
  • bridge/runtime_object.cpp: (RuntimeObjectImp::RuntimeObjectImp): (RuntimeObjectImp::put):
  • bridge/runtime_object.h:

LayoutTests:

2008-09-01 Geoffrey Garen <ggaren@apple.com>

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.


Tests for things I broke along the way.


  • fast/dom/getter-on-window-object2-expected.txt:
  • fast/js/pic: Added.
  • fast/js/pic/cached-deleted-properties-expected.txt: Added.
  • fast/js/pic/cached-deleted-properties.html: Added.
  • fast/js/pic/cached-getter-dictionary-and-proto-expected.txt: Added.
  • fast/js/pic/cached-getter-dictionary-and-proto.html: Added.
  • fast/js/pic/cached-getter-setter-expected.txt: Added.
  • fast/js/pic/cached-getter-setter.html: Added.
  • fast/js/pic/cached-prototype-setter-expected.txt: Added.
  • fast/js/pic/cached-prototype-setter.html: Added.
  • fast/js/pic/cached-single-entry-transition-expected.txt: Added.
  • fast/js/pic/cached-single-entry-transition.html: Added.
  • fast/js/pic/get-empty-string-expected.txt: Added.
  • fast/js/pic/get-empty-string.html: Added.
  • fast/js/pic/get-set-proxy-object-expected.txt: Added.
  • fast/js/pic/get-set-proxy-object.html: Added.
  • fast/js/pic/rehash-poisons-structure-expected.txt: Added.
  • fast/js/pic/rehash-poisons-structure.html: Added.
12:51 PM Changeset in webkit [36015] by weinig@apple.com
  • 3 edits in trunk/JavaScriptCore

2008-09-01 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.

Eagerly allocate the Math object's numeric constants. This avoids
constantly reallocating them in loops, and also ensures that the Math
object will not use the single property optimization, which makes
properties ineligible for caching.

SunSpider reports a small speedup, in combination with inline caching.

  • kjs/MathObject.cpp: (KJS::MathObject::MathObject): (KJS::MathObject::getOwnPropertySlot):
  • kjs/MathObject.h:
12:46 PM Changeset in webkit [36014] by jmalonzo@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-09-01 Jan Michael Alonzo <jmalonzo@webkit.org>

Gtk build fix, not reviewed.

  • GNUmakefile.am: Add SmallStrings.cpp in both release and debug builds
10:18 AM Changeset in webkit [36013] by cwzwarich@webkit.org
  • 1 edit in trunk/JavaScriptCore/ChangeLog

2008-09-01 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Fix a typo in the ChangeLog for r36009.

5:44 AM Changeset in webkit [36012] by jmalonzo@webkit.org
  • 3 edits in trunk/WebKit/gtk

2008-09-01 Alp Toker <alp@nuanti.com>

Reviewed by Eric Seidel.

https://bugs.webkit.org/show_bug.cgi?id=19939
[GTK] webkit_web_history_item_get_title() fails with assertion

Make sure newly constructed WebHistoryItem objects wrap a WebCore
history item when necessary. Avoid G_PARAM_CONSTRUCT since it destroys
history data -- use WEBKIT_PARAM flags instead as they do the right
thing. This restores history functionality.

Also use CString to simplify UTF-8 string management.

  • webkit/webkitwebbackforwardlist.cpp: (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): No need to initialize the vector with a size since it's cleared by the callee.
  • webkit/webkitwebhistoryitem.cpp: (_WebKitWebHistoryItemPrivate::webkit_web_history_item_finalize): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri):
5:43 AM Changeset in webkit [36011] by jmalonzo@webkit.org
  • 2 edits in trunk/WebCore

2008-09-01 Dirk Schulze <vbs85@gmx.de>

Reviewed by Eric Seidel.

Fixed border-radius for Cairo.

  • platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::strokeArc):
5:43 AM Changeset in webkit [36010] by jmalonzo@webkit.org
  • 5 edits in trunk/WebCore

2008-09-01 Dirk Schulze <vbs85@gmx.de>

Reviewed by Eric Seidel.

Added canvas's globalAlpha to cairo.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::fillPath): (WebCore::GraphicsContext::strokePath): (WebCore::GraphicsContext::setAlpha): (WebCore::GraphicsContext::getAlpha):
  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
  • platform/graphics/cairo/ImageCairo.cpp: (WebCore::BitmapImage::draw):
Note: See TracTimeline for information about the timeline view.