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

Timeline



Apr 7, 2008:

11:24 PM Changeset in webkit [31717] by ggaren@apple.com
  • 3 edits
    1 add in branches/squirrelfish/SunSpider

2008-04-06 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.


A little more love for --squirrelfish mode:


Fixed a misplaced sort. Results properly sort now.


Added a test list just for squirrelfish, and updated it to include
all currently passing SunSpider tests.


Fixed the pruning regexp to match 3d-morph.js.

  • sunspider:
11:13 PM Changeset in webkit [31716] by ggaren@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

fix changelog, bokay?

11:12 PM Changeset in webkit [31715] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-04-07 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.


Fixed crasing SunSpider tests.


Let's just pretend this never happened, bokay?

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
  • VM/CodeGenerator.h:
  • VM/RegisterFile.cpp: (KJS::RegisterFile::addGlobals):
10:24 PM Changeset in webkit [31714] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

2008-04-07 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Restored dumping of generated code as a command-line switch:
run-testkjs -d will do it.

10:20 PM Changeset in webkit [31713] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

2008-04-07 Brady Eidson <beidson@apple.com>

Rubberstamped by Geoff Garen

Forgot to update these results after I added the Prototype

  • fast/dom/Window/window-properties-expected.txt:
9:53 PM Changeset in webkit [31712] by ggaren@apple.com
  • 12 edits
    2 adds in branches/squirrelfish/JavaScriptCore

2008-04-07 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Next step toward supporting re-entrant evaluation: Moved register file
maintenance code into a proper "RegisterFile" class.


There's a subtle change to the register file's internal layout: for
global code / the global object, registerOffset is always 0 now. In
other words, all register counting starts at 0, not 0 + (number of
global variables). The helps simplify accounting when the number of
global variables changes.

8:12 PM Changeset in webkit [31711] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/GNUmakefile.am

build fix for gtk. hopefully the only one

8:01 PM Changeset in webkit [31710] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

2008-04-07 Brady Eidson <beidson@apple.com>

I can't fathom why the new storage tests could be hanging, but alas they are on Windows
Disable until I can figure out why

  • platform/win/Skipped:
8:00 PM Changeset in webkit [31709] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCoreSources.bkl

I "objeect" to that previous build fix

7:56 PM squirrelfish edited by ggaren@apple.com
(diff)
7:54 PM Changeset in webkit [31708] by beidson@apple.com
  • 2 edits in trunk/WebKitTools

2008-04-07 Brady Eidson <beidson@apple.com>

OMG, BUILD - please!

  • Scripts/build-webkit:
7:50 PM squirrelfish edited by oliver@apple.com
(diff)
6:57 PM Changeset in webkit [31707] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-04-07 Brady Eidson <beidson@apple.com>

Touch JSStorageCustom.cpp to try to FORCE a recompile on bots that haven't gotten the message

  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::customPut):
6:28 PM Changeset in webkit [31706] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCore.pro

qt build fix. third time is hopefully the charm.

6:23 PM Changeset in webkit [31705] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCoreSources.bkl

attempt at wx build fix

6:16 PM Changeset in webkit [31704] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCore.pro

another attempt at qt build fix

6:08 PM Changeset in webkit [31703] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCore.pro

attempt at fixing qt build

6:01 PM Changeset in webkit [31702] by beidson@apple.com
  • 5 edits in trunk

WebCore:

2008-04-07 Brady Eidson <beidson@apple.com>

Reviewed by John Honeycutt

ENABLE_DOM_STORAGE for Windows

  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcproj/build-generated-files.sh:

WebKit/win:

2008-04-07 Brady Eidson <beidson@apple.com>

Reviewed by John Honeycutt

ENABLE_DOM_STORAGE for Windows

  • WebKit.vcproj/WebKit.vcproj:
5:44 PM Changeset in webkit [31701] by oliver@apple.com
  • 13 edits in branches/squirrelfish/JavaScriptCore

Bug 18338: Support exceptions in SquirrelFish <http://bugs.webkit.org/show_bug.cgi?id=18338>

Reviewed by Geoff

Initial support for exceptions in SquirrelFish, only supports finalisers in the
simple cases (eg. exceptions and non-goto/return across finaliser boundaries).
This doesn't add the required exception checks to existing code, it merely adds
support for throw, catch, and the required stack unwinding.

5:21 PM Changeset in webkit [31700] by beidson@apple.com
  • 4 edits in trunk

JavaScriptCore:

2008-04-07 Brady Eidson <beidson@apple.com>

Add "ENABLE_DOM_STORAGE" to keep in sync with the rest of the project

  • Configurations/JavaScriptCore.xcconfig:

WebKit/mac:

2008-04-07 Brady Eidson <beidson@apple.com>

Add "ENABLE_DOM_STORAGE" to keep in sync with the rest of the project

  • Configurations/WebKit.xcconfig:
5:16 PM Changeset in webkit [31699] by beidson@apple.com
  • 3 edits in trunk/WebCore

2008-04-07 Brady Eidson <beidson@apple.com>

Fix build for builds without DOM_STORAGE enabled

  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchStorageEvent):
  • dom/EventTargetNode.h:
4:47 PM Changeset in webkit [31698] by alice.liu@apple.com
  • 6 edits
    1 add in trunk/WebCore

2008-04-07 Alice Liu <alice.liu@apple.com>

Reviewed by Beth Dakin.

  • WebCore.vcproj/WebCore.vcproj:

Added a few cross-platform accessibility source files


  • WebCore.xcodeproj/project.pbxproj:

Added AXObjectCache.cpp


  • page/AXObjectCache.cpp: Added.

These were made cross-platform:

(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::childrenChanged):


  • page/AXObjectCache.h:

These were made platform-specific

(WebCore::AXObjectCache::isIDinUse):
(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postNotificationToElement):


  • page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::detach):

Since only the mac has a wrapper for now, so temporarily
wrapping this line in #if PLATFORM(MAC)


(WebCore::AccessibilityObject::removeAXObjectID):

Since only the mac has uses Accessibility Object IDs,
wrap this line in #if PLATFORM(MAC)


  • page/mac/AXObjectCacheMac.mm:

Detaching and attaching the wrapper is platform-specific
since each wrapper class is platform-specific.

(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):

4:11 PM Changeset in webkit [31697] by beidson@apple.com
  • 29 edits
    19 adds in trunk

WebCore:

2008-04-07 Brady Eidson <beidson@apple.com>

Lovingly reviewed by Sam Weinig

<rdar://problem/5797684> - HTML5 SessionStorage and underpinnings for LocalStorage

Tests: storage/domstorage/sessionstorage/iframe-events.html

storage/domstorage/sessionstorage/index-get-and-set.html
storage/domstorage/sessionstorage/simple-events.html
storage/domstorage/sessionstorage/simple-usage.html
storage/domstorage/sessionstorage/window-open.html
storage/domstorage/window-attributes-exist.html

  • Configurations/WebCore.xcconfig: Define to enable DOM_STORAGE
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::mark): Add optionalSessionStorage case
  • bindings/js/JSEventCustom.cpp: (WebCore::toJS): Add StorageEvent case
  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::canGetItemsForName): (WebCore::JSStorage::nameGetter): If the property doesn't exist on the object, call through to getItem() (WebCore::JSStorage::customPut): If the property doesn't exist on the object, call through to setItem()
  • dom/Event.cpp: (WebCore::Event::isStorageEvent):
  • dom/Event.h:
  • dom/EventNames.h: Add "storage"
  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchStorageEvent):
  • dom/EventTargetNode.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::createWindow): After a new page has been created, set its SessionStorage object to a copy of the previous Page's
  • page/DOMWindow.cpp: (WebCore::DOMWindow::sessionStorage): Accessor to pull the appropriate OriginStorage out of the Page's SessionStorage. (WebCore::DOMWindow::localStorage): To be filled in later
  • page/DOMWindow.h: (WebCore::DOMWindow::optionalSessionStorage): Return the session Storage object for this window to mark, if any exists
  • page/DOMWindow.idl:
  • page/Page.cpp: (WebCore::Page::sessionStorage): Create and/or return the SessionStorage for this Page. (WebCore::Page::setSessionStorage): Set the SessionStorage for this Page - used in FrameLoader after a Window.open();
  • page/Page.h:
  • storage/OriginStorage.cpp: Intermediate layer between individual Storage objects, and shared StorageMap objects. There is one OriginStorage object per SecurityOrigin in each "unique set of storage areas", such as the SessionStorage. This layer forwards DOM-level calls down to the backing StorageMap, handles copy-on-write along with the StorageMap, fires StorageEvents to the DOM when a value is changed, and will eventually handle quota enforcement. (WebCore::OriginStorage::create): (WebCore::OriginStorage::OriginStorage): (WebCore::OriginStorage::~OriginStorage): (WebCore::OriginStorage::copy): (WebCore::OriginStorage::length): (WebCore::OriginStorage::key): (WebCore::OriginStorage::getItem): (WebCore::OriginStorage::setItem): (WebCore::OriginStorage::removeItem): (WebCore::OriginStorage::contains): (WebCore::OriginStorage::dispatchStorageEvent):
  • storage/OriginStorage.h:
  • storage/SessionStorage.cpp: From the HTML5 spec: "Each top-level browsing context has a unique set of session storage areas, one for each origin." This object represents that "unique set of session storage areas", and creates or returns the Storage object for the requested SecurityOrigin (WebCore::SessionStorage::create): (WebCore::SessionStorage::SessionStorage): (WebCore::SessionStorage::copy): (WebCore::SessionStorage::originStorage):
  • storage/SessionStorage.h: (WebCore::SessionStorage::page):
  • storage/Storage.cpp: Representation of the DOM-level object, wrapped by JSStorage. There is a unique Storage object per Window (per-Frame) that wraps a specific shared OriginStorage object. (WebCore::Storage::create): (WebCore::Storage::Storage): (WebCore::Storage::length): (WebCore::Storage::key): (WebCore::Storage::getItem): (WebCore::Storage::setItem): (WebCore::Storage::removeItem): (WebCore::Storage::contains):
  • storage/Storage.h:
  • storage/Storage.idl:
  • storage/StorageEvent.cpp: (WebCore::StorageEvent::StorageEvent): (WebCore::StorageEvent::initStorageEvent):
  • storage/StorageEvent.h: (WebCore::StorageEvent::isStorageEvent):
  • storage/StorageMap.cpp: The physical map of key/value pairs that is shared between OriginStorage objects, and implements copy-on-write semantics whenever a value is changed (WebCore::StorageMap::create): (WebCore::StorageMap::StorageMap): (WebCore::StorageMap::copy): (WebCore::StorageMap::invalidateIterator): Used to support the key(unsigned i) part of the API (WebCore::StorageMap::setIteratorToIndex): Ditto (WebCore::StorageMap::length): (WebCore::StorageMap::key): (WebCore::StorageMap::getItem): (WebCore::StorageMap::setItem): (WebCore::StorageMap::removeItem): (WebCore::StorageMap::contains):
  • storage/StorageMap.h:

LayoutTests:

2008-04-07 Brady Eidson <beidson@apple.com>

Begrudgingly reviewed by Sam Weinig

Initial suite of layout tests for HTML5 key/value SessionStorage (<rdar://problem/5797684>)

  • fast/dom/Window/window-properties-expected.txt:
  • storage/domstorage: Added.
  • storage/domstorage/localstorage: Added.
  • storage/domstorage/sessionstorage: Added.
  • storage/domstorage/sessionstorage/iframe-events-expected.txt: Added.
  • storage/domstorage/sessionstorage/iframe-events.html: Added.
  • storage/domstorage/sessionstorage/index-get-and-set-expected.txt: Added.
  • storage/domstorage/sessionstorage/index-get-and-set.html: Added.
  • storage/domstorage/sessionstorage/resources: Added.
  • storage/domstorage/sessionstorage/resources/clearSessionStorage.js: Added.
  • storage/domstorage/sessionstorage/resources/iframe-events-second.html: Added.
  • storage/domstorage/sessionstorage/resources/window-open-second.html: Added.
  • storage/domstorage/sessionstorage/simple-events-expected.txt: Added.
  • storage/domstorage/sessionstorage/simple-events.html: Added.
  • storage/domstorage/sessionstorage/simple-usage-expected.txt: Added.
  • storage/domstorage/sessionstorage/simple-usage.html: Added.
  • storage/domstorage/sessionstorage/window-open-expected.txt: Added.
  • storage/domstorage/sessionstorage/window-open.html: Added.
  • storage/domstorage/window-attributes-exist-expected.txt: Added.
  • storage/domstorage/window-attributes-exist.html: Added.
3:18 PM Changeset in webkit [31696] by timothy@apple.com
  • 2 edits in trunk/WebCore

Renamed various functions that are internal to the Console object to have an underscore prefix.

Rubber-stamped by Adam Roben.

  • page/inspector/Console.js:
3:10 PM Changeset in webkit [31695] by timothy@apple.com
  • 3 edits in trunk/WebCore

Renamed various functions and properties that are internal to an object to have an underscore prefix.

Rubber-stamped by Adam Roben.

  • page/inspector/Resource.js:
  • page/inspector/ResourcesPanel.js:
3:04 PM Changeset in webkit [31694] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Windows build fix

  • wtf/ThreadingWin.cpp: Back out some changes I didn't mean to land.
2:45 PM Changeset in webkit [31693] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes coding style for two utility getters.

  • page/inspector/utilities.js: Fix coding style for the

totalOffsetLeft and totalOffsetTop getters.

2:34 PM Changeset in webkit [31692] by sullivan@apple.com
  • 4 edits in trunk/WebKit

2008-04-07 John Sullivan <sullivan@apple.com>

Reviewed by Tim


  • made the JavaScript text input panel not block Quit (part of 4133196)
  • English.lproj/WebJavaScriptTextInputPanel.nib/classes.nib:
  • English.lproj/WebJavaScriptTextInputPanel.nib/info.nib:
  • English.lproj/WebJavaScriptTextInputPanel.nib/keyedobjects.nib: Made the panel be a NonBlockingPanel
2:20 PM squirrelfish edited by oliver@apple.com
(diff)
2:04 PM Changeset in webkit [31691] by Adam Roben
  • 3 edits in trunk/WebKit/win

Export some more WTF functions from WebKit.dll

Reviewed by Alexey Proskuryakov.

  • WebKit.vcproj/WebKit.def:
  • WebKit.vcproj/WebKit_debug.def:
2:04 PM Changeset in webkit [31690] by Adam Roben
  • 6 edits in trunk/JavaScriptCore

Add WTF::isMainThread

Reviewed by Alexey Proskuryakov.

  • wtf/Threading.h: Declare the new function.
  • wtf/ThreadingGtk.cpp: (WTF::initializeThreading): Initialize the main thread identifier. (WTF::isMainThread): Added.
  • wtf/ThreadingNone.cpp: Ditto ThreadingGtk.cpp. (WTF::initializeThreading): (WTF::isMainThread):
  • wtf/ThreadingPthreads.cpp: Ditto. (WTF::initializeThreading): (WTF::isMainThread):
  • wtf/ThreadingWin.cpp: Ditto. (WTF::initializeThreading): (WTF::isMainThread):
1:08 PM Changeset in webkit [31689] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Dave Hyatt.

  • platform/mac/WebFontCache.mm: (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Changed to match by family name first, and only if that fails, look for a match by full (PostScript) name. Reverted the full name-based match logic to only distinguish between the broad categories of "bold" and "not bold".
1:01 PM Changeset in webkit [31688] by timothy@apple.com
  • 4 edits in trunk/WebCore

When the WebInspector.currentFocusElement changes, move the caret selection to be inside the focused element. This makes sure the caret moves in and out of the console when the focus changes.

Reviewed by Adam Roben.

  • page/inspector/TextPrompt.js:

(TextPrompt.prototype.isCaretInsidePrompt): Just call isInsertionCaretInside.

  • page/inspector/inspector.js:

(WebInspector.set currentFocusElement): Make a caret selection inside
the focused element if there isn't a range selection and there isn't
already a caret selection inside.

  • page/inspector/utilities.js:

(Element.prototype.isInsertionCaretInside): Added. Tests if the
selection is collapsed and is inside the element.

12:17 PM Changeset in webkit [31687] by beidson@apple.com
  • 6 edits
    1 add in trunk/WebCore

2008-04-07 Brady Eidson <beidson@apple.com>

Reviewed by Tim Hatcher

Add 1 more empty file for upcoming work, as a separate step, to keep all build-systems working

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • bindings/js/JSStorageCustom.cpp: Added.
11:50 AM Changeset in webkit [31686] by ap@webkit.org
  • 3 edits
    2 adds in trunk

Reviewed by Dan Bernstein.

<rdar://problem/5574946> Inline frame ISO-8859-1 even though parent character set is UTF-8

Test: fast/loader/inherit-charset-to-empty-frame.html

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::write): Treat an empty m_encoding the same as null one.
10:33 AM Changeset in webkit [31685] by timothy@apple.com
  • 8 edits in trunk/WebCore

Rename some Inspector panel objects to facilitate the up-coming
UI refresh changes.

Reviewed by Adam Roben.

  • page/inspector/DatabasesPanel.js: Renamed ResourcePanel to ResourceView.
  • page/inspector/ElementsPanel.js: Renamed SourcePanel to SourceView.
  • page/inspector/FontView.js: Renamed FontPanel to FontView.
  • page/inspector/ImageView.js: Renamed ImagePanel to ImageView.
  • page/inspector/Resource.js: Instantiate the new "View" named objects.
  • page/inspector/ResourceView.js: Renamed ResourcePanel to ResourceView.
  • page/inspector/SourceView.js: Renamed SourcePanel to SourceView.
10:14 AM Changeset in webkit [31684] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fix an exception and remove code that was missed when TextPrompt
was added. This makes the Console work again.

Reviewed by Adam Roben.

  • page/inspector/Console.js: Removed code that used non-existent

properties.

9:41 AM Changeset in webkit [31683] by timothy@apple.com
  • 2 edits in trunk/WebCore

Remove the workaround for bug 11399 now that it is fixed.

Reviewed by Adam Roben.

  • page/inspector/Console.js: Removed the 'with' statement

around the eval and call eval directly on the inspected window.

6:34 AM Changeset in webkit [31682] by alp@webkit.org
  • 3 edits in trunk/WebCore

2008-04-07 Luca Bruno <lethalman88@gmail.com>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18297
Bug #18297 - Acid2/Acid3 -tests don't load load with soup.

Fixes in the libsoup backend: data url parsing, acid tests, redirects,
response headers handling and re-entrancy issues on job cancellation.
Thanks to Dan Winship for libsoup hints.

  • platform/network/ResourceHandleInternal.h: (WebCore::ResourceHandleInternal::ResourceHandleInternal): add m_cancelled and remove unuseful m_session
  • platform/network/soup/ResourceHandleSoup.cpp: (WebCore::restartedCallback): added to route redirects to webkit (WebCore::dataCallback): add response headers, some checks and fix re-entrancy (WebCore::parseDataUrl): be an idle callback for the main loop (WebCore::ResourceHandle::start): (WebCore::ResourceHandle::cancel): fixed re-entrancy
5:34 AM HackingGtk edited by alp@atoker.com
Typo fixes from timeless (diff)
5:24 AM Changeset in webkit [31681] by ap@webkit.org
  • 4 edits in trunk

Build fix, rubber-stamped and landed by ap.

  • configure.ac: Add autoconf flag for HTML5 client-side session and persistent storage support.

WebCore:

  • GNUmakefile.am: Fix dom_storage conditional and typo: ENABLE_DOM_STORAG.
12:07 AM Changeset in webkit [31680] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-04-07 Brady Eidson <beidson@apple.com>

Whoops, idls don't go in the vcproj!

  • WebCore.vcproj/WebCore.vcproj:

Apr 6, 2008:

11:55 PM Changeset in webkit [31679] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-04-06 Brady Eidson <beidson@apple.com>

Attempt to tickle Windows build into accepting this idl

  • storage/StorageEvent.idl:
11:39 PM Changeset in webkit [31678] by beidson@apple.com
  • 7 edits
    12 adds in trunk/WebCore

2008-04-06 Brady Eidson <beidson@apple.com>

Reviewed by Sam

HTML5 Session and Local Storage

Land a bunch of empty files and interfaces to keep things building while
I finish off the rest of the implementation of SessionStorage

  • DerivedSources.make:
  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • storage/OriginStorage.cpp: Added.
  • storage/OriginStorage.h: Added.
  • storage/SessionStorage.cpp: Added.
  • storage/SessionStorage.h: Added.
  • storage/Storage.cpp: Added. (WebCore::Storage::length): (WebCore::Storage::key): (WebCore::Storage::getItem): (WebCore::Storage::setItem): (WebCore::Storage::removeItem):
  • storage/Storage.h: Added.
  • storage/Storage.idl: Added.
  • storage/StorageEvent.cpp: Added.
  • storage/StorageEvent.h: Added. (WebCore::StorageEvent::key): (WebCore::StorageEvent::oldValue): (WebCore::StorageEvent::newValue): (WebCore::StorageEvent::uri): (WebCore::StorageEvent::source): (WebCore::StorageEvent::initStorageEvent):
  • storage/StorageEvent.idl: Added.
  • storage/StorageMap.cpp: Added.
  • storage/StorageMap.h: Added.
11:33 PM Changeset in webkit [31677] by ap@webkit.org
  • 5 edits in trunk/JavaScriptCore

Reviewed by Darin.

Make UString thread-safe.

No change on SunSpider total, although individual tests have changed a lot, up to 3%.

  • kjs/InitializeThreading.cpp: (KJS::initializeThreading): Call UString::null() to initialize a static.


  • kjs/identifier.cpp: (KJS::CStringTranslator::translate): (KJS::UCharBufferTranslator::translate): Use "true" for a boolean value instead of 1, because it's C++.
  • kjs/ustring.h: (KJS::CString::adopt): Added a method to create from a char* buffer without copying. (KJS::UString::Rep::ref): Removed an assertion for JSLock::lockCount, as it's no longer necessary to hold JSLock when working with strings. (KJS::UString::Rep::deref): Ditto. (KJS::UString::Rep::isStatic): Added a field to quickly determine that this is an empty or null static string.
  • kjs/ustring.cpp: (KJS::): Removed normalStatBufferSize and statBufferSize, as there is no reason to have such an advanced implementation of a debug-only ascii() method. Removed a long-obsolete comment about UChar. (KJS::UString::Rep::createCopying): Removed an assertion for JSLock::lockCount. (KJS::UString::Rep::create): Ditto. (KJS::UString::Rep::destroy): Ditto. Do not do anything for static null and empty strings, as refcounting is not reliable for those. Reordered branches for a noticeable speed gain - apparently this functiton is hot enough for SunSpider to see an effect from this! (KJS::UString::null): Moved a star, added a comment. (KJS::UString::cstring): Reimplemented to not call ascii(), which is not thread-safe. (KJS::UString::ascii): Simplified statBuffer handling logic. (KJS::UString::toDouble): Use cstring() instead of ascii().
5:09 PM Changeset in webkit [31676] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2008-04-06 Luca Bruno <lethalman88@gmail.com>

Reviewed by Alp Toker.

Fix webkit_web_view_get_transparent() return value.

  • webkit/webkitwebview.cpp:
5:06 PM Changeset in webkit [31675] by ggaren@apple.com
  • 11 edits in branches/squirrelfish/JavaScriptCore

2008-04-06 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


First step toward supporting re-entrant evaluation: Switch register
clients from using "registers", a pointer to a register vector, to
"registerBase", an indirect pointer to the logical first entry in the
register file. (The logical first entry is the first entry that is not
a global variable).


With a vector, offsets into the register file remain good when the
underlying buffer reallocates, but they go bad when the logical
first entry moves. (The logical first entry moves when new global
variables get added to the beginning of the register file.) With an
indirect pointer to the logical first entry, offsets will remain good
regardless.

1.4% speedup on sunspider --squirrelfish. I suspect this is due to
reduced allocation when creating closures, and reduced indirection
through the register vector.

  • wtf/Vector.h: Added an accessor for an indirect pointer to the vector's buffer, which we currently use (incorrectly) for registerBase. This is temporary scaffolding to allow us to change client code without changing behavior.
3:26 PM squirrelfish edited by weinig@apple.com
Remove ReadModifyDotNode (diff)
3:25 PM Changeset in webkit [31674] by weinig@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-04-06 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Implement codegen for ReadModifyDotNode.

  • kjs/nodes.cpp: (KJS::ReadModifyDotNode::emitCode):
  • kjs/nodes.h:
3:19 PM squirrelfish edited by weinig@apple.com
Re-add NewExprNode as it still needs a bit of love (diff)
2:51 PM squirrelfish edited by weinig@apple.com
Remove another LocalVar nodes as we don't need to emit anything for them (diff)
2:50 PM squirrelfish edited by weinig@apple.com
Remove more nods (diff)
2:49 PM Changeset in webkit [31673] by weinig@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-04-06 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Fix codegen for PostIncDotNode and implement codegen for PostIncBracketNode,
PostDecBracketNode and PostDecDotNode.

  • kjs/nodes.cpp: (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode):
  • kjs/nodes.h:
12:35 PM squirrelfish edited by weinig@apple.com
Remove more nodes that now have emitCode support (diff)
12:34 PM squirrelfish edited by weinig@apple.com
Remove LocalVar nodes as we don't need to emit anything for them (diff)
12:27 PM Changeset in webkit [31672] by weinig@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-04-06 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Implement codegen for PreDecResolveNode, PreIncBracketNode, PreDecBracketNode,
PreIncDotNode and PreDecDotNode. This required adding one new op code, op_pre_dec.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitPreDec):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::PreDecResolveNode::emitCode): (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode):
  • kjs/nodes.h:
10:51 AM Changeset in webkit [31671] by ggaren@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

2008-04-06 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.


Improved register dumping, plus a liberal smattering of "const". Here's
what the new format looks like:

(gdb) call (void)dumpCallFrame(codeBlock, scopeChain, registers->begin(), r)
4 instructions; 48 bytes at 0x509210; 3 locals (2 parameters); 1 temporaries

[ 0] load lr1, undefined(@k0)
[ 3] load lr1, 2(@k1)
[ 6] add tr0, lr2, lr1
[ 10] ret tr0

Constants:

k0 = undefined
k1 = 2

Register frame:

----------------------------------------

use | address | value

----------------------------------------
[return info] | 0x80ac08 | 0x5081c0
[return info] | 0x80ac0c | 0x508e90
[return info] | 0x80ac10 | 0x504acc
[return info] | 0x80ac14 | 0x2
[return info] | 0x80ac18 | 0x0
[return info] | 0x80ac1c | 0x7
[return info] | 0x80ac20 | 0x0
----------------------------------------
[param] | 0x80ac24 | 0x1
[param] | 0x80ac28 | 0x7
[var] | 0x80ac2c | 0xb
[temp] | 0x80ac30 | 0xf

12:58 AM Changeset in webkit [31670] by ggaren@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

2008-04-06 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.

Support for evaluating multiple scripts in the same global environment.
(Still don't support re-entrant evaluation yet.)

The main changes here are:

(1) Obey the ECMA 10.1.3 rules regarding how to resolve collisions when
a given symbol is declared more than once. (This patch fixes the same
issue for function code, too.)


(2) In the case of var and/or function collisions, reuse the existing
storage slot. For global code, this is required for previously
generated instructions to continue to work. For function code, it's
more of a "nice to have": it makes register layout in the case of
collisions easier to understand, and has the added benefit of saving
memory.


(3) Allocate slots in the CodeGenerator's m_locals vector in parallel
to register indexes in the symbol table. This ensures that, given an
index in the symbol table, we can find the corresponding RegisterID
without hashing, which speeds up codegen.


I moved responsibility for emitting var and function initialization
instructions into the CodeGenerator, because bookkeeping in cases where
var, function, and/or parameter names collide requires a lot of
internal knowledge about the CodeGenerator.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addVar): Removed responsibility for checking whether a var declaration overwrites "arguments", because the check is inappropriate for global code, which may not have a pre-existing "arguments" symbol in scope. Also changed this function to return a boolean indicating whether addVar actually created a new RegisterID, or just reused an old one.


(KJS::CodeGenerator::CodeGenerator): Split out the constructors for
function code and global code, since they're quite different now.


(KJS::CodeGenerator::registerForLocal): This function does its job
without any hashing now.


  • VM/Machine.cpp: Move old globals and update "r" before executing a new script. That way, old globals stay at a constant offset from "r", and previously optimized code still works.


  • VM/RegisterID.h: Added the ability to allocate a RegisterID before initializing its index field. We use this for parameters now.
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTableGet): Changed the ungettable getter ASSERT to account for the fact that symbol indexes are all negative.
Note: See TracTimeline for information about the timeline view.