Timeline
Apr 7, 2008:
- 11:24 PM Changeset in webkit [31717] by
-
- 3 edits1 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
-
- 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog
fix changelog, bokay?
- 11:12 PM Changeset in webkit [31715] by
-
- 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
-
- 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
-
- 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
-
- 12 edits2 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
-
- 1 edit in trunk/WebCore/GNUmakefile.am
build fix for gtk. hopefully the only one
- 8:01 PM Changeset in webkit [31710] by
-
- 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
-
- 1 edit in trunk/WebCore/WebCoreSources.bkl
I "objeect" to that previous build fix
- 7:56 PM squirrelfish edited by
- (diff)
- 7:54 PM Changeset in webkit [31708] by
-
- 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
- (diff)
- 6:57 PM Changeset in webkit [31707] by
-
- 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
-
- 1 edit in trunk/WebCore/WebCore.pro
qt build fix. third time is hopefully the charm.
- 6:23 PM Changeset in webkit [31705] by
-
- 1 edit in trunk/WebCore/WebCoreSources.bkl
attempt at wx build fix
- 6:16 PM Changeset in webkit [31704] by
-
- 1 edit in trunk/WebCore/WebCore.pro
another attempt at qt build fix
- 6:08 PM Changeset in webkit [31703] by
-
- 1 edit in trunk/WebCore/WebCore.pro
attempt at fixing qt build
- 6:01 PM Changeset in webkit [31702] by
-
- 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
-
- 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
-
- 4 edits in trunk
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
-
- 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
-
- 6 edits1 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
-
- 29 edits19 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
- (diff)
- 2:04 PM Changeset in webkit [31691] by
-
- 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
-
- 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
-
- 2 edits in trunk/WebCore
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=18311 <rdar://problem/5842980> REGRESSION (r31620): Font variants (e.g. Helvetica Neue *Light*) don't render correctly
- 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
-
- 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
-
- 6 edits1 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
-
- 3 edits2 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
-
- 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
-
- 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
-
- 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
-
- 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
- Typo fixes from timeless (diff)
- 5:24 AM Changeset in webkit [31681] by
-
- 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
-
- 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
-
- 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
-
- 7 edits12 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
-
- 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
-
- 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
-
- 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
- Remove ReadModifyDotNode (diff)
- 3:25 PM Changeset in webkit [31674] by
-
- 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
- Re-add NewExprNode as it still needs a bit of love (diff)
- 2:51 PM squirrelfish edited by
- Remove another LocalVar nodes as we don't need to emit anything for them (diff)
- 2:50 PM squirrelfish edited by
- Remove more nods (diff)
- 2:49 PM Changeset in webkit [31673] by
-
- 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
- Remove more nodes that now have emitCode support (diff)
- 12:34 PM squirrelfish edited by
- Remove LocalVar nodes as we don't need to emit anything for them (diff)
- 12:27 PM Changeset in webkit [31672] by
-
- 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
-
- 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
-
- 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.