Timeline
Apr 18, 2008:
- 10:46 PM Changeset in webkit [32260] by
-
- 2 edits in trunk/WebKit/win
2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>
Fix build after r32231.
- WebFrame.cpp: (WebFrame::renderTreeAsExternalRepresentation): renderer() -> contentRenderer()
- 10:39 PM Changeset in webkit [32259] by
-
- 7 edits1 move in trunk/JavaScriptCore
wx build fixes. Rename LocalStorage.h to LocalStorageEntry.h to avoid header detection issues between WebCore/storage/LocalStorage.h and it, and add $(PROFILER_SOURCES) to the wx JSCore build.
- 10:19 PM Changeset in webkit [32258] by
-
- 4 edits in trunk
Fix changelog entries for r32257 (reference to wrong bug).
This commit was unrelated to plugin support.
- 10:16 PM Changeset in webkit [32257] by
-
- 8 edits in trunk
2008-04-18 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=14750
[gtk] Implement plugin support in GTK backend
Cleanups.
- 10:08 PM Changeset in webkit [32256] by
-
- 2 edits in trunk/WebKit/win
2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>
Fix build after r32231.
- WebView.cpp: (WebView::paintIntoBackingStore): renderer() -> contentRenderer() (WebView::elementAtPoint): Same.
- 10:02 PM Changeset in webkit [32255] by
-
- 2 edits in trunk/JavaScriptCore
2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Windows build fix.
- 9:01 PM Changeset in webkit [32254] by
-
- 2 edits in trunk/WebKit/win
2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>
- AccessibleBase.cpp: Build fix for copy/paste error.
- 8:54 PM Changeset in webkit [32253] by
-
- 3 edits in trunk/WebKit/win
2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
Implement IAccessible::get_accChild().
- AccessibleBase.cpp: (AccessibleBase::get_accChild): Call getAccessibilityObjectForChild to find the AccessibilityObject for the VARIANT vChild. Get the AccessibilityObjectWrapper for the child, add a ref, and pass it back. (AccessibleBase::getAccessibilityObjectForChild): Added; finds the AccessibilityObject referred to by a VARIANT, or returns a COM error on failure. (AccessibleBase::wrapper): Added; returns the wrapper for the AccessibilityObject. Creates one if necessary.
- AccessibleBase.h: Added definitions for wrapper() and getAccessibilityObjectForChild().
- 8:53 PM Changeset in webkit [32252] by
-
- 6 edits in trunk
2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin, Ollie.
- AccessibleBase.cpp: (AccessibleBase::get_accChildCount): Implement get_accChildCount.
- 8:53 PM Changeset in webkit [32251] by
-
- 4 edits in trunk/WebKit/win
2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
Implement IAccessible::get_accParent().
- AccessibleBase.cpp: (AccessibleBase::get_accParent): Call AccessibleObjectFromWindow with OBJID_WINDOW. This will be handled by Windows to return the default accessible object for the WebView, because we only handle OBJID_CLIENT.
- WebView.cpp: (WebView::AccessibleObjectFromWindow): Added; calls through to the AccessibleObjectFromWindow in the MSAA DLL.
- WebView.h: Added definition for AccessibleObjectFromWindow.
- 8:52 PM Changeset in webkit [32250] by
-
- 4 edits2 adds in trunk/WebKit/win
2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
Return an AccessibleDocument when our root accessible object is queried
for.
- AccessibleDocument.cpp: Added; represents an AccessibilityObject that itself represents a Document. (AccessibleDocument::AccessibleDocument): Initialize AccessibleBase with the AccessibilityObject for this Document.
- AccessibleDocument.h: Added.
- WebFrame.cpp: (WebFrame::accessible): If m_accessible is 0, or if Document in this frame does not match the Document in the cached m_accessible object, create a new AccessibleDocument for this frame's Document.
- WebFrame.h: Swap AccessibleBase.h for AccessibleDocument.h
- WebKit.vcproj/WebKit.vcproj: Add AccessibleDocument.{h,cpp}
- 8:52 PM Changeset in webkit [32249] by
-
- 2 edits in trunk/WebCore
2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin, Alice.
Implement AXObjectCache::detachWrapper() on Windows.
- page/win/AXObjectCacheWin.cpp: (WebCore::AXObjectCache::detachWrapper): If this object has a wrapper, call its detach() method.
- 8:51 PM Changeset in webkit [32248] by
-
- 5 edits in trunk/WebKit/win
2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
Respond to WM_GETOBJECT messages. Currently returns NULL.
- WebFrame.cpp: (WebFrame::accessible): Added; will return the root accessible object for this frame.
- WebFrame.h: Added definition for accessible().
- WebView.cpp: (WebViewWndProc): Handle WM_GETOBJECT messages by calling onGetObject(). (WebView::onGetObject): Added; enables the AXObjectCache in WebCore, queries the top-level frame for its root accessible object, and loads the MSAA DLL and locates its LresultFromObject function. If calling LresultFromObject succeeds, it returns a reference to the accessible object to pass back to Windows. If not, we return false and let Windows handle the request through DefWindowProc.
- WebView.h: Added definition for onGetObject().
- 8:37 PM Changeset in webkit [32247] by
-
- 5 edits in trunk/LayoutTests
2008-04-18 Antti Koivisto <Antti Koivisto>
Update test results.
- platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
- platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
- platform/mac/svg/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
- platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
- 8:32 PM Changeset in webkit [32246] by
-
- 2 edits in trunk/WebCore
2008-04-18 Marco Barisione <marco.barisione@collabora.co.uk>
Reviewed by Alexey.
http://bugs.webkit.org/show_bug.cgi?id=18357
[GTK] Enter on buttons doesn't work
- platform/gtk/KeyEventGtk.cpp: (WebCore::singleCharacterString): Set the text of a keyboard event for GDK_ISO_Enter, GDK_KP_Enter, GDK_Return to "\r" instead of an empty string.
- 8:29 PM Changeset in webkit [32245] by
-
- 2 edits in trunk/WebCore
2008-04-18 Marco Barisione <marco@barisione.org>
Reviewed by Alp Toker.
https://bugs.webkit.org/show_bug.cgi?id=18576
[GTK] windowsKeyCodeForKeyEvent doesn't handle GDK_ISO_Enter and
GDK_KP_Enter
- platform/gtk/KeyEventGtk.cpp: (WebCore::windowsKeyCodeForKeyEvent): handle GDK_ISO_Enter and GDK_KP_Enter in windowsKeyCodeForKeyEvent.
- 7:58 PM SuccessfulPortHowTo created by
- 7:50 PM Changeset in webkit [32244] by
-
- 2 edits1 move1 add in trunk/WebCore
Gtk build fix.
- 7:34 PM WikiStart edited by
- Added link to Successful Port How To page. (diff)
- 6:34 PM Changeset in webkit [32243] by
-
- 5 edits in trunk/WebCore
2008-04-18 Antti Koivisto <Antti Koivisto>
Reviewed by Oliver.
Implement path animation for <animateMotion>.
SVG test suite tests
animate-elem-07-t.svg
animate-elem-08-t.svg
animate-elem-24-t.svg
animate-elem-30-t.svg
- svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement): (WebCore::SVGAnimateMotionElement::hasValidTarget): (WebCore::SVGAnimateMotionElement::parseMappedAttribute): (WebCore::SVGAnimateMotionElement::rotateMode): (WebCore::SVGAnimateMotionElement::animationPath): (WebCore::SVGAnimateMotionElement::calculateAnimatedValue): (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
- svg/SVGAnimateMotionElement.h: (WebCore::SVGAnimateMotionElement::):
- svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::animationMode): (WebCore::SVGAnimationElement::startedActiveInterval):
- svg/SVGAnimationElement.h: (WebCore::SVGAnimationElement::): (WebCore::SVGAnimationElement::calculateDistance): (WebCore::SVGAnimationElement::animationPath):
- 6:31 PM Changeset in webkit [32242] by
-
- 9 edits in trunk
Silence some warnings that GCC 4.3 triggers.
Rubber-stamped by Antti Koivisto.
- 6:12 PM Changeset in webkit [32241] by
-
- 4 edits in trunk/WebKit
WebKit/mac:
2008-04-18 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig
Don't clear the PageGroup on _close, as the WebCore::Page destructor already does this.
No reason to do the work twice...
- WebView/WebView.mm: (-[WebView _close]):
WebKit/win:
2008-04-18 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig
Don't clear the PageGroup on _close, as the WebCore::Page destructor already does this.
No reason to do the work twice...
- WebView.cpp: (WebView::close):
- 6:01 PM Changeset in webkit [32240] by
-
- 2 edits in trunk/WebKit/gtk
Gtk build fix after r32231.
- 5:15 PM Changeset in webkit [32239] by
-
- 2 edits in trunk/WebCore
2008-04-18 Brady Eidson <beidson@apple.com>
Rubberstamped by Mark Rowe
Roll out http://trac.webkit.org/projects/webkit/changeset/32204 as it was an incorrect build fix.
The feature in question was NOT database support.
The proper build fix was later applied by Mark in http://trac.webkit.org/projects/webkit/changeset/32225
- page/PageGroup.cpp: (WebCore::PageGroup::localStorage):
- 4:58 PM Changeset in webkit [32238] by
-
- 1 edit1 move in trunk/LayoutTests
2008-04-18 Sam Weinig <sam@webkit.org>
Disable this test until we can figure out why it is failing on some systems.
- fast/canvas/toDataURL-supportedTypes.html: Removed.
- fast/canvas/toDataURL-supportedTypes.html-disabled: Copied from fast/canvas/toDataURL-supportedTypes.html.
- 4:56 PM Changeset in webkit [32237] by
-
- 2 edits in trunk/WebCore
2008-04-18 Brady Eidson <beidson@apple.com>
Reviewed by Darin and Sam
Don't forget PageGroups when their last Page goes away, as this hurts visited links and anything
else that will be per-PageGroup in the future (such as LocalStorage).
This also fixes a leak, since PageGroups are ref-counted and therefore clearing the raw pointer out
of the PageGroups map without manual deletion leaked it!
- page/Page.cpp: (WebCore::Page::setGroupName):
- 4:19 PM Changeset in webkit [32236] by
-
- 3 edits2 adds in trunk
WebCore:
Reviewed by Brady Eidson.
- fix <rdar://problem/5872671> REGRESSION (3.1.1-TOT): Repro crash going to Ortega Park home page
Test: fast/dynamic/5872671.html
- rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Added a missing null check.
LayoutTests:
Reviewed by Brady Eidson.
- test for <rdar://problem/5872671> REGRESSION (3.1.1-TOT): Repro crash going to Ortega Park home page
- fast/dynamic/5872671-expected.txt: Added.
- fast/dynamic/5872671.html: Added.
- 3:58 PM Changeset in webkit [32235] by
-
- 5 edits in trunk/WebCore
2008-04-18 Sam Weinig <sam@webkit.org>
Rubber-stamped by Mark Rowe.
responseText and responseXML don't throw exceptions so they don't need an ExceptionCode parameter.
- bindings/js/JSXMLHttpRequestCustom.cpp:
- xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseText): (WebCore::XMLHttpRequest::responseXML):
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequest.idl:
- 3:41 PM Changeset in webkit [32234] by
-
- 3 edits in trunk/JavaScriptCore
2008-04-18 Kevin McCullough <kmccullough@apple.com>
Reviewed by Sam.
-<rdar://problem/5770054> JavaScript profiler (10928)
- Use Deque instead of Vector since the profiler uses prepend a lot and deque is faster at that.
- profiler/FunctionCallProfile.h: (KJS::FunctionCallProfile::milliSecs): Corrected the name to match its output.
- wtf/Deque.h: (WTF::deleteAllValues):
- 3:17 PM Changeset in webkit [32233] by
-
- 4 edits in trunk/WebCore
2008-04-18 Kevin McCullough <kmccullough@apple.com>
Reviewed by Sam.
- Build fix.
- page/Console.cpp: (WebCore::Console::profile):
- page/Console.h:
- page/Console.idl:
- 2:59 PM Changeset in webkit [32232] by
-
- 4 edits in trunk/WebCore
Reviewed by darin.
Fix probable crasher caused by invalid static_cast
https://bugs.webkit.org/show_bug.cgi?id=18585
- page/Frame.cpp: (WebCore::Frame::contentRenderer): (WebCore::Frame::ownerRenderer):
- rendering/RenderObject.h: sort the "is*" functions (WebCore::RenderObject::isApplet): (WebCore::RenderObject::isBR): (WebCore::RenderObject::isBlockFlow): (WebCore::RenderObject::isCounter): (WebCore::RenderObject::isFrame): (WebCore::RenderObject::isFrameSet): (WebCore::RenderObject::isImage): (WebCore::RenderObject::isInlineBlockOrInlineTable): (WebCore::RenderObject::isInlineFlow): (WebCore::RenderObject::isListBox): (WebCore::RenderObject::isListItem): (WebCore::RenderObject::isListMarker): (WebCore::RenderObject::isMedia): (WebCore::RenderObject::isMenuList): (WebCore::RenderObject::isRenderBlock): (WebCore::RenderObject::isRenderImage): (WebCore::RenderObject::isRenderInline): (WebCore::RenderObject::isRenderPart): (WebCore::RenderObject::isRenderView): (WebCore::RenderObject::isSlider): (WebCore::RenderObject::isTable): (WebCore::RenderObject::isTableCell): (WebCore::RenderObject::isTableCol): (WebCore::RenderObject::isTableRow): (WebCore::RenderObject::isTableSection): (WebCore::RenderObject::isTextArea):
- rendering/RenderPart.h:
- 2:59 PM Changeset in webkit [32231] by
-
- 14 edits in trunk
Reviewed by beth.
Rename Frame::renderer() to contentRenderer() and fix uses.
- WebCore.base.exp:
- editing/Editor.cpp: (WebCore::Editor::respondToChangedContents):
- loader/FrameLoader.cpp: (WebCore::FrameLoader::gotoAnchor):
- page/DragController.cpp: (WebCore::DragController::canProcessDrag): (WebCore::DragController::mayStartDragAtEventLocation): (WebCore::DragController::startDrag):
- page/EventHandler.cpp: (WebCore::EventHandler::eventMayStartDrag): (WebCore::EventHandler::updateSelectionForMouseDrag): (WebCore::EventHandler::hitTestResultAtPoint): (WebCore::EventHandler::hoverTimerFired): (WebCore::EventHandler::handleDrag):
- page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): (WebCore::Frame::contentRenderer): (WebCore::Frame::paint): (WebCore::Frame::markAllMatchesForText): (WebCore::Frame::documentAtPoint):
- page/Frame.h:
- page/FrameView.cpp: (WebCore::FrameView::~FrameView): (WebCore::FrameView::adjustViewSize): (WebCore::FrameView::layout): (WebCore::FrameView::scheduleRelayoutOfSubtree): (WebCore::FrameView::needsLayout): (WebCore::FrameView::setNeedsLayout): (WebCore::FrameView::updateControlTints):
- rendering/RenderTreeAsText.cpp: (WebCore::write):
- svg/graphics/SVGImage.cpp: (WebCore::SVGImage::nativeImageForCurrentFrame):
- 2:56 PM Changeset in webkit [32230] by
-
- 3 edits in trunk/WebCore
2008-04-18 Antti Koivisto <Antti Koivisto>
Reviewed by Oliver.
https://bugs.webkit.org/show_bug.cgi?id=18551
REGRESSION (r31801?): Crash in ContainerNode::removedFromDocument on many SVG tests
Fix for test svg/W3C-SVG-1.1/animate-elem-62-t.svg which was still
crashing under guard malloc after the previous fix.
If the event base element was a parent of the current element, dereffing it during
removedFromDocument() would cause problems. Avoid this by not holding ref pointer
to the event base but instead checking from the ref count of the event listener whether
it is still alive and in need for unregistering.
This shold not be a problem for syncbase pointers since those are always animation elements
and leaf nodes.
- svg/animation/SVGSMILElement.cpp: (WebCore::ConditionEventListener::ConditionEventListener): (WebCore::ConditionEventListener::unregister): (WebCore::ConditionEventListener::handleEvent): (WebCore::SVGSMILElement::connectConditions): (WebCore::SVGSMILElement::disconnectConditions): (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
- svg/animation/SVGSMILElement.h:
- 2:50 PM Changeset in webkit [32229] by
-
- 4 edits2 adds in trunk/WebCore
2008-04-18 Kevin McCullough <kmccullough@apple.com>
Reviewed by Sam and Adam.
-<rdar://problem/5770054> JavaScript profiler (10928)
- Added support for console.profile() and console.profileEnd().
- ForwardingHeaders/kjs/FunctionCallProfile.h: Added.
- ForwardingHeaders/kjs/Profiler.h: Added.
- page/Console.cpp: (WebCore::Console::profile): (WebCore::Console::profileEnd):
- page/Console.h:
- page/Console.idl:
- 2:49 PM Changeset in webkit [32228] by
-
- 7 edits in trunk/JavaScriptCore
2008-04-18 Kevin McCullough <kmccullough@apple.com>
Reviewed by Sam and Adam.
-<rdar://problem/5770054> JavaScript profiler (10928)
- Cleaned up the header file and made some functions static, added a new, sane, printing function, and fixed a few minor bugs.
- JavaScriptCore.exp:
- JavaScriptCore.xcodeproj/project.pbxproj:
- profiler/FunctionCallProfile.cpp:
(KJS::FunctionCallProfile::didExecute): Removed assertion that time is
0 because at ms resolution that may not be true and only cross-
- profiler/FunctionCallProfile.h:
- profiler/Profiler.cpp: Moved functions that could be static into the implementation, and chaned the ASSERTs to early returns. I did this because console.profile() is a JS function and so was being profiled but asserting because the profiler had not been started! In the future I would like to put the ASSERTs back and not profile the calls to console.profile() and console.profileEnd(). (KJS::Profiler::willExecute): (KJS::Profiler::didExecute): (KJS::getStackNames): Fixed a bug where the wrong ExecState was being used. (KJS::getFunctionName): (KJS::Profiler::printDataInspectorStyle):
- profiler/Profiler.h:
- 2:25 PM Changeset in webkit [32227] by
-
- 4 edits in trunk
wx build 'fix'. Add loader/appcache sources to the build, and define ENABLE_DOM_STORAGE.
- 2:18 PM Changeset in webkit [32226] by
-
- 46 edits4 adds in trunk
WebCore:
Reviewed by Darin Adler.
- fix https://bugs.webkit.org/show_bug.cgi?id=17921 Extra white space at the end of right-aligned or justified text with -webkit-line-break: after-white-space
Test: fast/text/trailing-white-space.html
Made trailing white space on the line always behave like it has the base
bidi level of the block, meaning it will always go on the right (left)
of the line in a left-to-right (right-to-left) block. Made the trailing
white space vanish when it is next to a margin that the text should
be touching, and made its width not count when computing the center
point for center alignment.
- platform/text/BidiResolver.h: (WebCore::::prependRun): Added.
- rendering/RenderBlock.h:
- rendering/bidi.cpp: (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed the logicallyLastRun parameter to an optional trailingSpaceRun and changed the alignment logic to implement the above rules. (WebCore::RenderBlock::layoutInlineChildren): Added code to identify when there is trailing white space that needs to be split into its own run and optionally re-ordered. (WebCore::RenderBlock::findNextLineBreak): Removed code that split some trailing space into a separate run in one special case.
LayoutTests:
Reviewed by Darin Adler.
- test and updated results for https://bugs.webkit.org/show_bug.cgi?id=17921 Extra white space at the end of right-aligned or justified text with -webkit-line-break: after-white-space
- fast/text/trailing-white-space.html: Added.
- http/tests/misc/acid3-expected.txt:
- platform/mac/editing/deleting/delete-block-table-expected.txt:
- platform/mac/editing/deleting/delete-to-select-table-expected.txt:
- platform/mac/editing/deleting/deletionUI-single-instance-expected.txt:
- platform/mac/editing/execCommand/5482023-expected.txt:
- platform/mac/editing/execCommand/boldSelection-expected.txt:
- platform/mac/editing/execCommand/italicizeByCharacter-expected.txt:
- platform/mac/editing/execCommand/modifyForeColorByCharacter-expected.txt:
- platform/mac/editing/execCommand/print-expected.txt:
- platform/mac/editing/execCommand/selectAll-expected.txt:
- platform/mac/editing/execCommand/strikethroughSelection-expected.txt:
- platform/mac/editing/inserting/editable-html-element-expected.txt:
- platform/mac/editing/inserting/insert-div-027-expected.txt:
- platform/mac/editing/pasteboard/5028447-expected.txt:
- platform/mac/editing/pasteboard/block-wrappers-necessary-expected.checksum:
- platform/mac/editing/pasteboard/block-wrappers-necessary-expected.png:
- platform/mac/editing/pasteboard/block-wrappers-necessary-expected.txt:
- platform/mac/editing/pasteboard/nested-blocks-with-text-area-expected.checksum:
- platform/mac/editing/pasteboard/nested-blocks-with-text-area-expected.png:
- platform/mac/editing/pasteboard/nested-blocks-with-text-area-expected.txt:
- platform/mac/editing/pasteboard/nested-blocks-with-text-field-expected.checksum:
- platform/mac/editing/pasteboard/nested-blocks-with-text-field-expected.png:
- platform/mac/editing/pasteboard/nested-blocks-with-text-field-expected.txt:
- platform/mac/editing/selection/5081257-1-expected.txt:
- platform/mac/editing/selection/after-line-wrap-expected.txt:
- platform/mac/editing/selection/mixed-editability-1-expected.txt:
- platform/mac/editing/selection/select-all-001-expected.txt:
- platform/mac/editing/selection/select-all-002-expected.txt:
- platform/mac/editing/selection/select-all-003-expected.txt:
- platform/mac/editing/style/apple-style-editable-mix-expected.txt:
- platform/mac/editing/style/create-block-for-style-012-expected.checksum:
- platform/mac/editing/style/create-block-for-style-012-expected.png:
- platform/mac/editing/style/create-block-for-style-012-expected.txt:
- platform/mac/fast/clip/outline-overflowClip-expected.txt:
- platform/mac/fast/forms/textarea-rows-cols-expected.txt:
- platform/mac/fast/replaced/width100percent-textarea-expected.txt:
- platform/mac/fast/text/embed-at-end-of-pre-wrap-line-expected.txt:
- platform/mac/fast/text/justified-text-rect-expected.txt:
- platform/mac/fast/text/trailing-white-space-expected.checksum: Added.
- platform/mac/fast/text/trailing-white-space-expected.png: Added.
- platform/mac/fast/text/trailing-white-space-expected.txt: Added.
- platform/mac/fast/text/whitespace/pre-wrap-last-char-expected.txt:
- platform/mac/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
- platform/mac/fast/text/whitespace/pre-wrap-spaces-after-newline-expected.txt:
- 1:54 PM Changeset in webkit [32225] by
-
- 5 edits in trunk/WebCore
Fix builds that do not have DOM storage enabled.
- 1:33 PM Changeset in webkit [32224] by
-
- 2 edits in trunk/WebCore
Fixes the regression where style rules in the Inspector always show "inline stylesheet"
for the source of the rule and not the URL or other sources.
https://bugs.webkit.org/show_bug.cgi?id=18592
Reviewed by Dan Bernstein.
- page/inspector/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype.update): Add parentStyleSheet to the anonymous obejct
that we make for each matched rule. The parentStyleSheet property is used later to make the subtitle.
- 1:14 PM Changeset in webkit [32223] by
-
- 4 edits in trunk/WebCore
Fixed marquee suspension on wrong document. Passes current
document into Frame::clearTimers.
Reviewed by hyatt.
- history/CachedPage.cpp:
(WebCore::CachedPage::clear):
- page/Frame.cpp:
(WebCore::Frame::clearTimers):
- page/Frame.h:
- 12:46 PM Changeset in webkit [32222] by
-
- 5 edits in trunk/JavaScriptCore
Reviewed by Darin.
Fix leaks during plugin tests (which actually excercise background JS), and potential
PAC brokenness that was not reported, but very likely.
The leaks shadowed a bigger problem with Identifier destruction. Identifier::remove involves
an IdentifierTable lookup, which is now a per-thread instance. Since garbage collection can
currently happen on a different thread than allocation, a wrong table was used.
No measurable change on SunSpider total, ~1% variation on individual tests.
- kjs/ustring.cpp: (KJS::): (KJS::UString::Rep::create): (KJS::UString::Rep::destroy):
- kjs/ustring.h: Replaced isIdentifier with a pointer to IdentifierTable, so that destruction can be done correctly. Took one bit from reportedCost, to avoid making UString::Rep larger (performance effect was measurable on SunSpider).
- kjs/identifier.cpp: (KJS::IdentifierTable::IdentifierTable): (KJS::IdentifierTable::~IdentifierTable): (KJS::IdentifierTable::add): (KJS::IdentifierTable::remove): Make IdentifierTable a real class. Its destructor needs to zero out outstanding references, because some identifiers may briefly outlive it during thread destruction, and we don't want them to use their stale pointers.
(KJS::LiteralIdentifierTable):
(KJS::Identifier::add):
Now that LiteralIdentifierTable is per-thread and can be destroyed not just during application
shutdown, it is not appropriate to simply bump refcount for strings that get there; changed
the table to hold RefPtrs.
(KJS::CStringTranslator::translate):
(KJS::UCharBufferTranslator::translate):
(KJS::Identifier::addSlowCase):
(KJS::Identifier::remove):
- kjs/identifier.h: (KJS::Identifier::add): Use and update UString::Rep::identifierTable as appropriate. Updating it is now done in IdentifierTable::add, not in translators.
- 12:45 PM Changeset in webkit [32221] by
-
- 4 edits in trunk/WebCore
Add 'ease' timing function to transitions and
make it the default. See latest specification proposal at:
http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html
Reviewed by hyatt.
NOTE: still working on a way to test animating/transitioning content
- css/CSSParser.cpp:
(WebCore::CSSParser::parseTransitionTimingFunction):
- css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::mapTransitionTimingFunction):
- css/CSSValueKeywords.in:
- 12:02 PM Changeset in webkit [32220] by
-
- 2 edits in trunk/JavaScriptCore
Reviewed by Darin.
Get rid of static compareWithCompareFunctionArguments in array_instance.cpp.
No change on SunSpider, CelticKane or iBench JavaScript. It is probable that in some cases,
merge sort is still faster, but more investigation is needed to determine a new cutoff.
Or possibly, it would be better to do what FIXME says (change to tree sort).
Also, made arguments a local variable - not sure why it was a member of
CompareWithCompareFunctionArguments.
- kjs/array_instance.cpp: (KJS::CompareWithCompareFunctionArguments::CompareWithCompareFunctionArguments): (KJS::CompareWithCompareFunctionArguments::operator()): (KJS::ArrayInstance::sort):
- 11:03 AM Changeset in webkit [32219] by
-
- 10 edits in trunk
Change JavaScriptDebugListener to use KJS::UString instead of WebCore::String
WebCore:
Change JavaScriptDebugListener to use KJS::UString instead of
WebCore::String
This should reduce the number of string allocations performed while
debugging.
Reviewed by Tim Hatcher.
- page/InspectorController.cpp: Updated JavaScriptDebugListener functions.
- page/InspectorController.h: Ditto.
- page/JavaScriptDebugListener.h: Changed to use KJS::UString instead of WebCore::String.
- page/JavaScriptDebugServer.cpp: Ditto.
- platform/win/BString.cpp: (WebCore::BString::BString): Added a constructor that takes a KJS::UString.
- platform/win/BString.h:
WebKit/win:
Update WebScriptDebugServer for JavaScriptDebugListener changes
Reviewed by Tim Hatcher.
- WebScriptDebugServer.cpp: Changed to use KJS::UString instead of WebCore::String.
- WebScriptDebugServer.h: Ditto.
- 10:27 AM Changeset in webkit [32218] by
-
- 2 edits in trunk/WebCore
Mac build fix
- WebCore.xcodeproj/project.pbxproj: Mark JavaScriptDebugListener.h private.
- 9:32 AM Changeset in webkit [32217] by
-
- 3 edits in trunk/WebCore
Make InspectorController a JavaScriptDebugListener
I added two new functions to the InspectorController JS object:
reloadInspectedPageAndStartDebugging and stopDebugging. These control
when the InspectorController adds/removes itself to/from the
JavaScriptDebugServer.
Reviewed by Tim Hatcher.
- page/InspectorController.cpp: (WebCore::reloadInspectedPageAndStartDebugging): Added. Just calls through to InspectorController. (WebCore::stopDebugging): Ditto. (WebCore::InspectorController::~InspectorController): Make sure we stop debugging before we are destroyed so the JavaScriptDebugServer won't be left with a stale pointer. (WebCore::InspectorController::windowScriptObjectAvailable): Added two new functions to our JS object. (WebCore::InspectorController::closeWindow): Stop debugging when the window closes. (WebCore::InspectorController::reloadInspectedPageAndStartDebugging): Added. (WebCore::InspectorController::stopDebugging): Added.
(WebCore::InspectorController::didParseSource):
(WebCore::InspectorController::failedToParseSource):
(WebCore::InspectorController::didEnterCallFrame):
(WebCore::InspectorController::willExecuteStatement):
(WebCore::InspectorController::willLeaveCallFrame):
Added empty implementations of the JavaScriptDebugListener functions.
- page/InspectorController.h:
- 9:01 AM Changeset in webkit [32216] by
-
- 2 edits in trunk/LayoutTests
- add css2.1/t1506-c525-font-wt-00-b.html to the Windows skipped list
- platform/win/Skipped:
- 8:43 AM Changeset in webkit [32215] by
-
- 2 edits in trunk/WebCore
Rename ExecState* instances from state to exec
Requested by Darin Adler and Sam Weinig.
- bindings/js/JSConsoleCustom.cpp:
- 8:41 AM Changeset in webkit [32214] by
-
- 2 edits in trunk/LayoutTests
- platform/win/Skipped: Added another failing test.
- 8:38 AM Changeset in webkit [32213] by
-
- 2 edits in trunk/WebCore
Clean up InspectorController's use of JSStringRef
All JSStringRef creation now happens through a helper function,
jsStringRef, which takes either a const char* or a const String& and
returns a JSRetainPtr<JSStringRef>.
Reviewed by Mitz Pettel.
- page/InspectorController.cpp: Added jsStringRef and converted all callers to JSStringCreateWithUTF8CString or JSStringCreateWithCharacters to use it.
- 8:34 AM Changeset in webkit [32212] by
-
- 2 edits in trunk/WebKitTools
Drop the hang timer to 30 seconds
This matches what DRT/mac was using.
Reviewed by Mitz Pettel.
- Scripts/run-webkit-tests:
- 8:33 AM Changeset in webkit [32211] by
-
- 4 edits4 deletes in trunk/WebKitTools
Get rid of DRT's Watchdog
run-webkit-tests now detects hangs and samples DRT as needed.
Reviewed by Mitz Pettel.
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Removed Watchdog* files from the project.
- DumpRenderTree/Watchdog.cpp: Removed.
- DumpRenderTree/Watchdog.h: Removed.
- DumpRenderTree/mac/DumpRenderTree.mm: Removed uses of Watchdog (dumpRenderTree): (runTest):
- DumpRenderTree/mac/WatchdogMac.h: Removed.
- DumpRenderTree/mac/WatchdogMac.mm: Removed.
- Scripts/run-webkit-tests: (sub testCrashedOrTimedOut): Call sampleDumpTool() if we timed out. (sub sampleDumpTool): Added. Writes a sample report to ~/Library/Logs/DumpRenderTree/HangReport.txt.
- 8:19 AM Changeset in webkit [32210] by
-
- 3 edits in trunk/WebCore
Add wrappers around InspectorClient::{show,close}Window
This will let us perform actions when the window is actually
showing/closing (InspectorController::show doesn't always directly
show the window).
Reviewed by Tim Hatcher.
- page/InspectorController.cpp: (WebCore::InspectorController::scriptObjectReady): Call showWindow() instead of m_client->showWindow(). (WebCore::InspectorController::show): Ditto. (WebCore::InspectorController::close): Ditto for closeWindow(). (WebCore::InspectorController::showWindow): (WebCore::InspectorController::closeWindow):
- page/InspectorController.h:
- 7:53 AM Changeset in webkit [32209] by
-
- 22 edits in trunk
Many API changes and additions after a full review with Jasmin Blanchette <jasmin@trolltech.com>
The diff is too big to mention the changes individually, but most of the changes were of cosmetic
nature where methods or enums have been renamed or prefixed/suffixed according to the consistency
rules of the Qt API.
- 7:37 AM Changeset in webkit [32208] by
-
- 2 edits in trunk/WebCore
2008-04-18 Ariya Hidayat <ariya.hidayat@trolltech.com>
Reviewed by Adam Roben.
No resize indication is shown when moving/hovering over the frame
border/splitter.
- 7:32 AM Changeset in webkit [32207] by
-
- 5 edits in trunk/WebKit/qt
Added QWebView::find/QWebFrame::find.
- 7:07 AM Changeset in webkit [32206] by
-
- 2 edits in trunk/WebCore
Windows build fix
Same as before, but for fabs/fabsf.
- svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::calculateDistance): Changed to use fabsf and removed narrowPrecisionToFloat.
- 6:57 AM Changeset in webkit [32205] by
-
- 3 edits in trunk/WebCore
Windows build fix
In MSVC, sqrt() has three overloads: float, double, and long
double. In GCC, sqrt() is only for doubles. Both MSVC and GCC have
sqrtf() to operate explicitly on floats.
- svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::calculateDistance): Changed to use sqrtf and removed narrowPrecisionToFloat.
- svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::calculateDistance): Ditto.
- 5:47 AM Changeset in webkit [32204] by
-
- 2 edits in trunk/WebCore
Fix the build without Database support (fixes the Qt/win build).
- 4:13 AM Changeset in webkit [32203] by
-
- 2 edits in trunk/WebKit/gtk
2008-04-18 Alp Toker <alp@atoker.com>
Rubber-stamped by Holger Freyther.
http://bugs.webkit.org/show_bug.cgi?id=18218
[Gtk] segfault when clicking on a disabled button
Always use the main frame for mouse events (not the focused frame)
since it knows best how to get the event through to the right target.
This also fixes a null crasher.
- webkit/webkitwebview.cpp:
- 4:03 AM Changeset in webkit [32202] by
-
- 2 edits in trunk/WebCore
Fix the Gtk build on the build bot.
- 3:44 AM Changeset in webkit [32201] by
-
- 2 edits in trunk/WebCore
Prospective wx build fix.
- 3:40 AM Changeset in webkit [32200] by
-
- 2 edits in trunk/WebCore
Build fix. Back out previous #include fix for PageGroup.h as it broke
the Mac build due to forwarding headers.
- 3:00 AM Changeset in webkit [32199] by
-
- 3 edits in trunk/WebCore
Build fix for Qt and gcc 4.3.
- 2:31 AM Changeset in webkit [32198] by
-
- 6 edits in trunk
Build fix for gcc 4.3 and Gtk.
- 12:40 AM Changeset in webkit [32197] by
-
- 7 edits in trunk/WebCore
2008-04-17 Antti Koivisto <Antti Koivisto>
Reviewed by Oliver.
Implement supplemental transforms and use them for <animateMotion> instead of the transform list.
This will allow <animateTransform> and <animateMotion> combine properly.
- svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::resetToBaseValue): (WebCore::SVGAnimateMotionElement::calculateAnimatedValue): (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
- svg/SVGElement.h: (WebCore::SVGElement::supplementalTransform):
- svg/SVGStyledTransformableElement.cpp: (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
- svg/SVGStyledTransformableElement.h: (WebCore::SVGStyledTransformableElement::supplementalTransform):
- svg/SVGTextElement.cpp: (WebCore::SVGTextElement::animatedLocalTransform):
- svg/SVGTextElement.h: (WebCore::SVGTextElement::supplementalTransform):
Apr 17, 2008:
- 11:59 PM Changeset in webkit [32196] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
Remove unnecessary files from testkjs, testapi and minidom targets.
Rubber-stamped by Oliver Hunt.
- JavaScriptCore.xcodeproj/project.pbxproj:
- 11:59 PM Changeset in webkit [32195] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed ASSERT seen during run-sunspider of a debug build.
- VM/CodeGenerator.h: Made the default codegen buffers bigger. SunSpider runs all tests in one global environment, so you end up with more than 128 locals. This is just a stop-gap until we code up a real solution to arbitrary symbol and label limits.
- 11:59 PM Changeset in webkit [32194] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed a bug in exception unwinding, where we wouldn't deref the scope
chain in global scope, so we would leak ScopeChainNodes when exceptions
were thrown inside "with" and "catch" scopes.
Also did some cleanup of the unwinding code along the way.
Scope chain reference counting is still wrong in a few ways. I thought
I would fix this portion of it first.
run-sunspider shows no change.
- VM/Machine.cpp: (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::privateExecute):
- VM/Machine.h:
- 11:59 PM Changeset in webkit [32193] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
Add more exception checking to toNumber conversions
Reviewed by Maciej
This corrects op_pre_dec, op_negate, op_mod and op_sub.
- 11:59 PM Changeset in webkit [32192] by
-
- 11 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com> and Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Oliver Hunt.
Behold: eval.
Introduced a new opcode: op_call_eval. In the normal case, it performs
an eval. In the case where eval has been overridden in some way, it
performs a function call.
- VM/CodeGenerator.h: Added a feature so the code generator knows not to optimized locals in eval code.
- 11:59 PM Changeset in webkit [32191] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Added some ASSERTs to document codegen failures in
run-javascriptcore-tests.
For all tests, program-level codegen now either succeeds, or fails with
an ASSERT.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::addVar): (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::newTemporary): (KJS::CodeGenerator::newLabel):
- 11:59 PM Changeset in webkit [32190] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed another case of a dst register being an unreferenced temporary
(caused an ASSERT when running the full sunspider suite).
- kjs/nodes.cpp: (KJS::CaseBlockNode::emitCodeForBlock):
- 11:59 PM Changeset in webkit [32189] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- add documentation (and meaningful parameter names) for arithmetic and bitwise binary ops
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitMul): (KJS::CodeGenerator::emitDiv): (KJS::CodeGenerator::emitMod): (KJS::CodeGenerator::emitSub): (KJS::CodeGenerator::emitLeftShift): (KJS::CodeGenerator::emitRightShift): (KJS::CodeGenerator::emitUnsignedRightShift): (KJS::CodeGenerator::emitBitAnd): (KJS::CodeGenerator::emitBitXOr): (KJS::CodeGenerator::emitBitOr):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::emitReadModifyAssignment): (KJS::ReadModifyResolveNode::emitCode):
- 11:59 PM Changeset in webkit [32188] by
-
- 17 edits in branches/squirrelfish/JavaScriptCore
Exception checks for toNumber in op_pre_inc
Reviewed by Geoff
This is somewhat more convoluted than the simple hadException checks
we currently use. Instead we use special toNumber conversions that
select between the exception and ordinary vPC. This allows us to
remove any branches in the common case (incrementing a number).
- 11:58 PM Changeset in webkit [32187] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- ensure that activations are kept in a register to protect them from GC
Also renamed OptionalCalleeScopeChain constant to OptionalCalleeActivation, since
that is what is now kept there, and there is no more need to keep the scope chain in
the register file.
- VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::scopeChainForCall):
- VM/Machine.h: (KJS::Machine::):
- 11:58 PM Changeset in webkit [32186] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Made "this" work in program code / global scope.
The machine can initialize "this" prior to execution because it knows
that, for program code, "this" is always stored in lr1.
- VM/Machine.cpp: (KJS::Machine::execute):
- VM/Machine.h: (KJS::Machine::):
- kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
- 11:58 PM Changeset in webkit [32185] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed a codegen bug when returning from inside a dynamic scope (a with
or catch block): we need to pop any dynamic scope(s) that have been
added so op_ret can find the activation object at the top of the scope
chain.
- kjs/nodes.cpp: (KJS::ReturnNode::emitCode): If we're returning from inside a dynamic scope, emit a jmp_scopes to take care of popping any dynamic scope(s) and then branching to the return instruction.
- 11:58 PM Changeset in webkit [32184] by
-
- 5 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- document the add and get_prop_id opcodes
In addition to adding documentation in comments, I changed
references to register IDs or indices relating to these opcodes to
have meaningful names instead of r0 r1 r2.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitAdd):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- kjs/nodes.cpp: (KJS::DotAccessorNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::AddNode::emitCode): (KJS::ReadModifyDotNode::emitCode):
- 11:58 PM Changeset in webkit [32183] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt and Maciej Stachowiak.
Fixed a codegen bug in with and switch, and added an ASSERT to
make sure it doesn't happen again.
emitCode() assumes that dst, if non-zero, is either referenced or
non-temporary (i.e., it assumes that newTemporary() will return a
register not equal to dst). Certain callers to emitCode() weren't
guaranteeing that to be so, so temporary register values were being
overwritten.
- VM/CodeGenerator.h: (KJS::CodeGenerator::emitNode): ASSERT that dst is referenced or non-temporary.
- kjs/nodes.cpp: (KJS::CommaNode::emitCode): Reference the dst we pass.
(KJS::WithNode::emitCode): No need to pass an explicit dst register.
(KJS::CaseBlockNode::emitCodeForBlock): No need to pass an explicit dst register.
(KJS::SwitchNode::emitCode): No need to pass an explicit dst register.
- kjs/nodes.h: Made dst the last parameter to emitCodeForBlock, to match emitCode.
- 11:58 PM Changeset in webkit [32182] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
Bug 18526: Throw exceptions when resolve fails for op_resolve_base_and_func.
<https://bugs.webkit.org/show_bug.cgi?id=18526>
Reviewed by Maciej
Very simple fix, sunspider shows a 0.7% progression, ubench shows a 0.4% regression.
- 11:58 PM Changeset in webkit [32181] by
-
- 2 edits in branches/squirrelfish/SunSpider
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Oliver.
- add newly working tests to squirrelfish list
- tests/LIST-SQUIRRELFISH: Add 3d-raytrace and string-unpack-code
- 11:58 PM Changeset in webkit [32180] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fix incorrect result on 3d-raytrace test
Oliver found and tracked down this bug, I just typed in the fix.
- VM/Machine.cpp: (KJS::slideRegisterWindowForCall): When setting omitted parameters to undefined, account for the space for local variables.
- 11:58 PM Changeset in webkit [32179] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fix codegen handling of dst registers
1.006x speedup (not sure why).
Most emitCode functions take an optional "dst" parameter that says
where the output of the instruction should be written. I made some
functions for convenient handling of the dst register:
- VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): Takes the dst register. Returns it if it is not null and is a temporary, otherwise allocates a new temporary. This is intended for cases where an intermediate value might be written into the dst
(KJS::CodeGenerator::finalDestination): Takes the dst register and an optional
register that was used as a temp destination. Picks the right thing for the final
output. Intended to be used as the output register for the instruction that generates
the final value of a particular node.
(KJS::CodeGenerator::moveToDestinationIfNeeded): Takes dst and a
RegisterID; moves from the register to dst if dst is defined and
different from the register. This is intended for cases where the
result of a node is already in a specific register (likely a
local), and so no code needs to be generated unless a specific
destination has been requested, in which case a move is needed.
I also applied these methods throughout emitCode functions. In
some cases this was just cleanup, in other cases I fixed actual
codegen bugs. Below I have given specific comments for the cases
where I believe I fixed a codegen bug, or improved quality of codegen.
- kjs/nodes.cpp: (KJS::NullNode::emitCode): (KJS::FalseNode::emitCode): (KJS::TrueNode::emitCode): (KJS::NumberNode::emitCode): (KJS::StringNode::emitCode): (KJS::RegExpNode::emitCode): (KJS::ThisNode::emitCode): Now avoids emitting a mov when dst is the same as the this register (the unlikely case of "this = this"); (KJS::ResolveNode::emitCode): Now avoids emitting a mov when dst is the same as the local regiester, in the local var case (the unlikely case of "x = x"); (KJS::ArrayNode::emitCode): Fixed a codegen bug where array literal element expressions may have observed an intermediate value of constructing the array. (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): Fixed a codegen bug where object literal property definition expressions may have obesrved an intermediate value of constructing the object. (KJS::BracketAccessorNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::NewExprNode::emitCode): (KJS::FunctionCallValueNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode): (KJS::VoidNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode): (KJS::PreIncResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreDecResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode): (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::AddNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::LessNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::InstanceOfNode::emitCode): (KJS::InNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode): (KJS::ConditionalNode::emitCode): (KJS::emitReadModifyAssignment): Allow an out argument separate from the operands, needed for fixes below. (KJS::ReadModifyResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::AssignResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyDotNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyBracketNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::CommaNode::emitCode): Avoid writing temporary value to dst register. (KJS::ReturnNode::emitCode): Void return should return undefined, not null. (KJS::FuncExprNode::emitCode):
- 11:58 PM Changeset in webkit [32178] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- fix huge performance regression (from trunk) in string-unpack-code
This restores string-unpack-code performance to parity with
trunk (2.27x speedup relative to previous SquirrelFish)
- VM/Machine.cpp: (KJS::Machine::execute): Shrink register file after call to avoid growing repeatedly.
- 11:58 PM Changeset in webkit [32177] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed dumpCallFrame to match our new convention of passing around a
ScopeChainNode* instead of a ScopeChain*.
- JavaScriptCore.exp:
- VM/Machine.cpp: (KJS::Machine::dumpCallFrame):
- VM/Machine.h:
- 11:58 PM Changeset in webkit [32176] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
Bug 18436: Need to throw exception on read/modify/write or similar resolve for nonexistent property
<https://bugs.webkit.org/show_bug.cgi?id=18436>
Reviewed by Maciej.
Add op_resolve_base_and_property for read/modify/write operations,
this adds a "superinstruction" to resolve the base and value of a
property simultaneously. Just using resolveBase and resolve results
in an 5% regression in ubench, 30% in loop-empty-resolve (which is
expected). 1.3% progression in sunspider, 2.1% in ubench, with a
21% gain in loop-empty-resolve. The only outlier is function-missing-args
which gets a 3% regression that I could never resolve.
- 11:58 PM Changeset in webkit [32175] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fixed "SquirrelFish crashes due to bad scope chain on some SunSpider tests" https://bugs.webkit.org/show_bug.cgi?id=18508
3d-raytrace and string-unpack-code now run.
The basic approach is to pass around ScopeChainNode* instead of
ScopeChain*, which in addition to not becoming suddenly an invalid
pointer also saves an indirection.
This is an 0.4% speedup on SunSpider --squirrelfish (1.8% on --ubench)
- VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::resolveBaseAndFunc): (KJS::initializeCallFrame): (KJS::scopeChainForCall): (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::execute): (KJS::Machine::privateExecute):
- VM/Machine.h:
- VM/Register.h: (KJS::Register::):
- kjs/nodes.cpp: (KJS::EvalNode::generateCode): (KJS::FunctionBodyNode::generateCode): (KJS::ProgramNode::generateCode): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations): (KJS::FuncDeclNode::makeFunction): (KJS::FuncExprNode::makeFunction):
- kjs/nodes.h: (KJS::ProgramNode::): (KJS::EvalNode::): (KJS::FunctionBodyNode::):
- kjs/object.h:
- kjs/scope_chain.h: (KJS::ScopeChainNode::ScopeChainNode): (KJS::ScopeChainNode::deref): (KJS::ScopeChainIterator::ScopeChainIterator): (KJS::ScopeChainIterator::operator*): (KJS::ScopeChainIterator::operator->): (KJS::ScopeChain::ScopeChain): (KJS::ScopeChain::node): (KJS::ScopeChain::deref): (KJS::ScopeChain::ref): (KJS::ScopeChainNode::ref): (KJS::ScopeChainNode::release): (KJS::ScopeChainNode::begin): (KJS::ScopeChainNode::end):
- 11:58 PM Changeset in webkit [32174] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed crash when accessing registers in a torn-off activation object.
- kjs/JSActivation.cpp: (KJS::JSActivation::copyRegisters): Update our registerOffset after copying our registers, since our offset should now be relative to our private register array, not the shared register file.
- 11:58 PM Changeset in webkit [32173] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fix a codegen flaw that makes some tests run way too fast or way too slow
The basic problem was that FunctionCallResolveNode results in
codegen which can incorrectly write an intermediate value into the
dst register even when that is a local. I added convenience
functions to CodeGenerator for getting this right, but for now I
only fixed FunctionCallResolve.
- VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): (KJS::CodeGenerator::):
- kjs/nodes.cpp: (KJS::FunctionCallResolveNode::emitCode):
- 11:57 PM Changeset in webkit [32172] by
-
- 1 edit8 adds in branches/squirrelfish/SunSpider
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Oliver.
- move ubench tests properly.
- tests/ubench: Added.
- tests/ubench/function-closure.js: Added.
- tests/ubench/function-empty.js: Added.
- tests/ubench/function-missing-args.js: Added.
- tests/ubench/function-sum.js: Added.
- tests/ubench/loop-empty-resolve.js: Added.
- tests/ubench/loop-empty.js: Added.
- tests/ubench/loop-sum.js: Added.
- 11:57 PM Changeset in webkit [32171] by
-
- 2 edits in branches/squirrelfish/WebKitTools
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- added support for --ubench mode
- Scripts/run-sunspider:
- 11:57 PM Changeset in webkit [32170] by
-
- 2 edits in branches/squirrelfish/SunSpider
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Oliver.
- sunspider: Don't force --runs=1 in squirrelfish mode any more.
- 11:57 PM Changeset in webkit [32169] by
-
- 12 edits in branches/squirrelfish
2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>
Reviewed and slightly tweaked by Geoffrey Garen.
Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>
- JavaScriptCore.pri: Add VM into include path and its files into source set
- VM/JSPropertyNameIterator.cpp: Fix include name
- VM/Machine.cpp: Add UNLIKELY macro for GCC
- VM/Machine.h: Add missing includes
- VM/RegisterFile.cpp: Add missing include
- kjs/testkjs.pro: Add VM into include path
WebCore:
2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>
Reviewed by Geoffrey Garen.
Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>
- WebCore.pro: Add JavaScriptCore/VM into include path
- 11:57 PM Changeset in webkit [32168] by
-
- 3 edits1 add7 deletes in branches/squirrelfish/SunSpider
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- make --squirrelfish mode use the real harness, but a reduced set of tests
Also add a new ubench mode which runs the older squirrelfish microbenchmarks.
- sunspider:
- tests/LIST-SQUIRRELFISH:
- tests/LIST-UBENCH: Added.
- tests/squirrelfish: Moved to tests/ubench
- 11:57 PM Changeset in webkit [32167] by
-
- 1 edit1 delete in branches/squirrelfish/SunSpider
2008-04-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Removed an unused test.
- tests/squirrelfish/loop-resolve.js: Removed.
- 11:57 PM Changeset in webkit [32166] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Restored OwnPtr in some places where I had removed it previously. We
can have an OwnPtr to an undefined class in a header as long as the
class's destructor isn't in the header.
- 11:57 PM Changeset in webkit [32165] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed access to "this" inside dynamic scopes.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::registerForLocal): Always return a register for "this", even if we're not optimizing access to other locals. Because "this" is a keyword, it's always in a register and always accessible.
- VM/CodeGenerator.h: (KJS::CodeGenerator::shouldOptimizeLocals): Factored out a function for determining whether we should optimize access to locals, since eval will need to make this test a little more complicated.
- 11:57 PM Changeset in webkit [32164] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adam.
- fix crash when running SunSpider full harness
When growing the register file's buffer to make space for new globals,
make sure to copy accounting for the fact that the new space is logically
at the beginning of the buffer in this case, instead of at the end as when
growing for a new call frame.
- VM/RegisterFile.cpp: (KJS::RegisterFile::newBuffer): (KJS::RegisterFile::growBuffer): (KJS::RegisterFile::addGlobalSlots):
- VM/RegisterFile.h:
- 11:57 PM Changeset in webkit [32163] by
-
- 6 edits in branches/squirrelfish/JavaScriptCore
2008-04-11 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Mark constant pools for global and eval code (collectively known as
"program code"). (Constant pools for function code are already marked by
their functions.)
The global object is responsible for marking program code constant
pools. Code blocks add themselves to the mark set at creation time, and
remove themselves from the mark set at destruction time.
sunspider --squirrelfish reports a 1% speedup, perhaps because
generateCode() is now non-virtual.
- kjs/nodes.cpp: I had to use manual init and delete in this file because putting an OwnPtr into the header would have created a circular header dependency.
- 11:57 PM Changeset in webkit [32162] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
Bug 18231: Improve support for function call nodes in SquirrelFish
<https://bugs.webkit.org/show_bug.cgi?id=18231>
Reviewed by Maciej
Use correct value of 'this' for function calls.
- 11:57 PM Changeset in webkit [32161] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Geoffrey Garen <ggaren@apple.com>
This time for sure.
- kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
- 11:57 PM Changeset in webkit [32160] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed Interpreter::execute to honor the new model for returning non-NULL
values when an exception is thrown.
- kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
- 11:57 PM Changeset in webkit [32159] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
Fix SquirrelFish interpreter to pass internal exceptions back to
native code correctly.
Reviewed by Geoff
- 11:57 PM Changeset in webkit [32158] by
-
- 49 edits1 copy1 add in branches/squirrelfish
2008-04-10 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Replace the use of getCallData in op_construct with the new
getConstructData function that replaces implementsConstruct.
- API/JSCallbackConstructor.cpp: (KJS::JSCallbackConstructor::getConstructData):
- API/JSCallbackConstructor.h:
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h: (KJS::::getConstructData): (KJS::::construct):
- API/JSObjectRef.cpp: (JSObjectIsConstructor):
- JavaScriptCore.exp:
- JavaScriptCore.xcodeproj/project.pbxproj:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- kjs/CallData.h:
- kjs/ConstructData.h: Copied from JavaScriptCore/kjs/CallData.h. (KJS::):
- kjs/array_object.cpp: (KJS::ArrayObjectImp::getConstructData):
- kjs/array_object.h:
- kjs/bool_object.cpp: (KJS::BooleanObjectImp::getConstructData):
- kjs/bool_object.h:
- kjs/date_object.cpp: (KJS::DateObjectImp::getConstructData):
- kjs/date_object.h:
- kjs/error_object.cpp: (KJS::ErrorObjectImp::getConstructData): (KJS::NativeErrorImp::getConstructData):
- kjs/error_object.h:
- kjs/function.cpp: (KJS::FunctionImp::getCallData): (KJS::FunctionImp::getConstructData): (KJS::FunctionImp::construct):
- kjs/function.h:
- kjs/function_object.cpp: (KJS::FunctionObjectImp::getConstructData):
- kjs/function_object.h:
- kjs/nodes.cpp: (KJS::NewExprNode::inlineEvaluate):
- kjs/number_object.cpp: (KJS::NumberObjectImp::getConstructData):
- kjs/number_object.h:
- kjs/object.cpp:
- kjs/object.h:
- kjs/object_object.cpp: (KJS::ObjectObjectImp::getConstructData):
- kjs/object_object.h:
- kjs/regexp_object.cpp: (KJS::RegExpObjectImp::getConstructData):
- kjs/regexp_object.h:
- kjs/string_object.cpp: (KJS::StringObjectImp::getConstructData):
- kjs/string_object.h:
- kjs/value.cpp: (KJS::JSCell::getConstructData):
- kjs/value.h: (KJS::JSValue::getConstructData):
WebCore:
2008-04-10 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Adjusted WebCore JS functions to the new "getConstructData" calling convention.
- 11:56 PM Changeset in webkit [32157] by
-
- 4 edits4 adds in branches/squirrelfish/JavaScriptCore
Bug 18420: SquirrelFish: need to throw Reference and Type errors
when attempting invalid operations on JSValues
Reviewed by Geoff
Add validation and exception checks to SquirrelFish so that the
correct exceptions are thrown for undefined variables, type errors
and toObject failure. Also handle exceptions thrown by native
function calls.
- 11:56 PM Changeset in webkit [32156] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Pass a function body node its function's scope chain, rather than the
current execution context's scope chain, when compiling it.
This doesn't matter yet, but it will once we start using the scope
chain during compilation.
sunspider --squirrelfish notes a tiny speedup.
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- 11:56 PM Changeset in webkit [32155] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fix two bugs when throwing exceptions from re-entrant JS calls:
(1) Don't shrink the register file to 0, since our caller may still
be using it.
(2) In case of exception, return jsNull() instead of 0 because,
surprisingly, some JavaScriptCore clients rely on a function's return
value being safe to operate on even if the function threw an exception.
Also:
- Changed FunctionImp::callAsFunction to honor the new semantics of exceptions not returning 0.
- Renamed "handlerPC" to "handlerVPC" to match other uses of "VPC".
- Renamed "exceptionData" to "exceptionValue", because "data" seemed to imply something more than just a JSValue.
- Merged prepareException into throwException, since throwException was its only caller, and it seemed weird that throwException didn't take an exception as an argument.
sunspider --squirrelfish does not seem to complain on my machine, but it
complains a little (.6%) on Oliver's.
- 11:56 PM Changeset in webkit [32154] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed op_construct for CallTypeNative to reacquire "r" before setting
its return value, since registerBase can theoretically change during the
execution of arbitrary code. (Not sure if any native constructors
actually make this possible.)
sunspider --squirrelfish does not seem to complain.
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- 11:56 PM Changeset in webkit [32153] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt and Sam Weinig.
Re-entrant execution of function code (global code -> built-in function
-> JS function):
Miraculously, sunspider --squirrelfish does not seem to complain.
A re-entrant function call is the same as a normal function call with
one exception: the re-entrant call leaves everything except for
CallerCodeBlock in the call frame header uninitialized, since the call
doesn't need to return to JS code. (It sets CallerCodeBlock to 0, to
indicate that the call shouldn't return to JS code.)
Also fixed a few issues along the way:
- Fixed two bugs in the read-write List implementation that caused m_size and m_buffer to go stale.
- Changed native call code to update "r" *before* setting the return value, since the call may in turn call JS code, which changes the value of "r".
- Migrated initialization of "r" outside of Machine::privateExecute, because global code and function code initialize "r" differently.
- Migrated a codegen warning from Machine::privateExecute to the wiki.
- Removed unnecessary "r" parameter from slideRegisterWindowForCall
- VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):
- VM/Machine.h:
- kjs/function.cpp: (KJS::FunctionImp::callAsFunction):
- kjs/list.cpp: (KJS::List::getSlice):
- kjs/list.h: (KJS::List::clear):
- 11:56 PM Changeset in webkit [32152] by
-
- 2 edits in branches/squirrelfish/SunSpider
2008-04-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
Add newly runnable tests to --squirrelfish mode.
- tests/LIST-SQUIRRELFISH:
- 11:56 PM Changeset in webkit [32151] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fix problem with code generation for return with no argument
3d-cube now runs
- kjs/nodes.cpp: (KJS::ReturnNode::emitCode):
- 11:56 PM Changeset in webkit [32150] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- Implement support for JS constructors
access-binary-trees and access-nbody now run.
Inexplicably a 1% speedup.
- VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::Machine::privateExecute):
- VM/Machine.h: (KJS::Machine::):
- 11:56 PM Changeset in webkit [32149] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- More code cleanup in preparation for JS constructors
Factor the remaining interesting parts of JS function calls into
slideRegisterWindowForCall and scopeChainForCall.
- VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::privateExecute):
- 11:56 PM Changeset in webkit [32148] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- Code cleanup in preparation for JS constructors
- Renamed returnInfo to callFrame.
- Made an enum which defines what goes where in the call frame.
- Factored out initializeCallFrame function from op_call
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall): (KJS::CodeGenerator::emitConstruct):
- VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::initializeCallFrame): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
- VM/Machine.h: (KJS::Machine::):
- 11:56 PM Changeset in webkit [32147] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed two bugs in register allocation for function calls:
(1) op_call used to allocate codeBlock->numVars too many registers for
each call frame, due to duplicated math. Fixing this revealed...
(2) By unconditionally calling resize(), op_call used to truncate the
register file when calling a function whose registers fit wholly within
the register file already allocated by its caller.
sunspider --squirrelfish reports no regression.
I also threw in a little extra formatting to dumpCallFrame, because it
helped me debug these issues.
- VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::execute): (KJS::Machine::privateExecute):
- VM/RegisterFile.h: (KJS::RegisterFile::shrink): (KJS::RegisterFile::grow):
- VM/RegisterFileStack.cpp: (KJS::RegisterFileStack::popRegisterFile):
- 11:56 PM Changeset in webkit [32146] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Next step toward re-entrant execution of function code (global code ->
built-in function -> JS function):
Made op_ret return from Machine::privateExecute if its calling codeBlock
is NULL.
I'm checking this in by itself to demonstrate that a more clever
mechanism is not necessary for performance.
sunspider --squirrelfish reports no regression.
- ChangeLog:
- VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
- 11:56 PM Changeset in webkit [32145] by
-
- 5 edits in branches/squirrelfish/JavaScriptCore
2008-04-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Next step toward re-entrant execution of function code (global code ->
built-in function -> JS function):
Made Machine::execute return a value.
Sketched out some code for Machine::execute for functions -- still
doesn't work yet, though.
sunspider --squirrelfish reports no regression.
- VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
- VM/Machine.h:
- kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
- kjs/testkjs.cpp: (runWithScripts):
- 11:56 PM Changeset in webkit [32144] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
First step toward re-entrant execution of function code (global code ->
built-in function -> JS function):
Tiny bit of refactoring in the Machine class.
sunspider --squirrelfish reports no regression.
- VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
- VM/Machine.h: (KJS::Machine::isGlobalCallFrame):
- kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
- 11:56 PM Changeset in webkit [32143] by
-
- 11 edits2 copies in branches/squirrelfish/JavaScriptCore
2008-04-08 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Support for re-entrant execution of global code (global code -> built-in
function -> global code).
Keep a stack of register files instead of just one. Globals propogate
between register files as the register files enter and exit the stack.
An activation still uses its own register file's base as its
registerBase, but the global object uses the register file *stack*'s
registerBase, which updates dynamically to match the register file at
the top of the stack.
sunspider --squirrelfish reports no regression.
- 11:56 PM Changeset in webkit [32142] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-08 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- initial preparatory work for JS constructors
1) Allocate registers for the returnInfo block and "this" value when generating code for
op_construct. These are not used yet, but the JS branch of op_construct will use them.
2) Adjust argc and argv appropriately for native constructor calls.
3) Assign return value in a more straightforward way in op_ret since this is actually
a bit faster (and makes up for the allocation of extra registers above).
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- 11:56 PM Changeset in webkit [32141] 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:55 PM Changeset in webkit [32140] by
-
- 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog
fix changelog, bokay?
- 11:55 PM Changeset in webkit [32139] 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):
- 11:55 PM Changeset in webkit [32138] 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.
- 11:55 PM Changeset in webkit [32137] 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.
- 11:55 PM Changeset in webkit [32136] 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.
- 11:55 PM Changeset in webkit [32135] 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.
- 11:55 PM Changeset in webkit [32134] 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:
- 11:55 PM Changeset in webkit [32133] 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:
- 11:55 PM Changeset in webkit [32132] 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:
- 11:55 PM Changeset in webkit [32131] 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
- 11:55 PM Changeset in webkit [32130] 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.
- 11:55 PM Changeset in webkit [32129] by
-
- 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog
Fix ChangeLog
- 11:55 PM Changeset in webkit [32128] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-04-05 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Implement codegen for ForInNode.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitIn):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::InNode::emitCode):
- kjs/nodes.h:
- 11:55 PM Changeset in webkit [32127] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-04-05 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
- Implement codegen for DeleteResolveNode, DeleteBracketNode, DeleteDotNode and DeleteValueNode.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitGetPropId): (KJS::CodeGenerator::emitPutPropId): (KJS::CodeGenerator::emitDeletePropId): (KJS::CodeGenerator::emitDeletePropVal): (KJS::CodeGenerator::emitPutPropIndex):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode):
- kjs/nodes.h:
- 11:55 PM Changeset in webkit [32126] by
-
- 5 edits in branches/squirrelfish/JavaScriptCore
2008-04-04 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
- Implement codegen for Switch statements.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::pushJumpContext): (KJS::CodeGenerator::popJumpContext): (KJS::CodeGenerator::jumpContextForLabel):
- VM/CodeGenerator.h: Rename LoopContext to JumpContext now that it used of Switch statements in addition to loops.
- kjs/nodes.cpp: (KJS::DoWhileNode::emitCode): (KJS::WhileNode::emitCode): (KJS::ForNode::emitCode): (KJS::ForInNode::emitCode): (KJS::ContinueNode::emitCode): (KJS::BreakNode::emitCode): (KJS::CaseBlockNode::emitCodeForBlock): (KJS::SwitchNode::emitCode):
- kjs/nodes.h: (KJS::CaseClauseNode::expr): (KJS::CaseClauseNode::children): (KJS::CaseBlockNode::):
- 11:55 PM Changeset in webkit [32125] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-03 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam.
- fix crash in codegen from new nodes
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
- kjs/nodes.h:
- 11:54 PM Changeset in webkit [32124] by
-
- 1 edit in branches/squirrelfish/JavaScriptCore/kjs/nodes.h
File I forgot in my last commit.
- 11:54 PM Changeset in webkit [32123] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-03 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- kjs/nodes.cpp: (KJS::ReadModifyResolveNode::emitCode): (KJS::ReadModifyBracketNode::emitCode):
- kjs/nodes.h:
- 11:54 PM Changeset in webkit [32122] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-02 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- take a shot at marking constant pools for global and eval code
Geoff says this won't really work in all cases but is an ok stopgap.
- kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::mark):
- 11:54 PM Changeset in webkit [32121] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-02 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- fix 2x perf regression in 3d-morph
- VM/Machine.cpp: (KJS::Machine::privateExecute): If we subbed in null for the global object, don't toObject it, since that will throw an exception (very slowly).
- 11:54 PM Changeset in webkit [32120] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-02 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Geoff
- fix Release build
- kjs/nodes.cpp: (KJS::getNonLocalSymbol):
- 11:54 PM Changeset in webkit [32119] by
-
- 10 edits in branches/squirrelfish/JavaScriptCore
2008-04-02 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Removed the last vestiges of LocalStorage from JSVariableObject and
JSGlobalObject.
- kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::saveLocalStorage): Save and restore from/to registers. Use stub isReadOnly and isDontEnum methods for now, until we really implement attributes in the symbol table. (KJS::JSGlobalObject::restoreLocalStorage): (KJS::JSGlobalObject::reset):
- kjs/JSVariableObject.cpp: (KJS::JSVariableObject::getPropertyNames): Use stub isDontEnum method for now, as above. (KJS::JSVariableObject::getPropertyAttributes): ditto
- kjs/JSVariableObject.h: Removed LocalStorage from JSVariableObjectData. Removed mark method, because subclasses implement different strategies for marking registers. (KJS::JSVariableObject::isReadOnly): Stub method (KJS::JSVariableObject::isDontEnum): ditto
Changed the code below to ASSERT_NOT_REACHED() and return 0, since it
can no longer retrieve LocalStorage from the ExecState. (Eventually,
we'll just remove this code and all its friends, but that's a task for
later.)
- kjs/ExecState.cpp: (KJS::ExecState::ExecState):
- kjs/function.cpp: (KJS::ActivationImp::markChildren):
- kjs/function.h:
- kjs/nodes.cpp: (KJS::getNonLocalSymbol): (KJS::ScopeNode::optimizeVariableAccess): (KJS::ProgramNode::processDeclarations):
- 11:54 PM Changeset in webkit [32118] by
-
- 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog
reverse order of last two ChangeLog entries (oops)
- 11:54 PM Changeset in webkit [32117] by
-
- 6 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- mark the constant pool (at least for function code blocks)
- VM/CodeBlock.cpp: (KJS::CodeBlock::mark):
- VM/CodeBlock.h:
- kjs/function.cpp: (KJS::FunctionImp::mark):
- kjs/nodes.cpp: (KJS::ScopeNode::mark):
- kjs/nodes.h: (KJS::FuncExprNode::body): (KJS::FuncDeclNode::body):
- 11:54 PM Changeset in webkit [32116] by
-
- 6 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- mark the constant pool (at least for function code blocks)
- VM/CodeBlock.cpp: (KJS::CodeBlock::mark):
- VM/CodeBlock.h:
- kjs/function.cpp: (KJS::FunctionImp::mark):
- kjs/nodes.cpp: (KJS::ScopeNode::mark):
- kjs/nodes.h: (KJS::FuncExprNode::body): (KJS::FuncDeclNode::body):
- 11:54 PM Changeset in webkit [32115] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Cleaned up a few loose ends.
- JavaScriptCore.exp: Export dumpRegisters, so it's visible to gdb even if we don't explicitly call it in the source text.
- VM/Machine.cpp: (KJS::Machine::privateExecute): No need to call dumpRegisters anymore, since that was just a hack for gdb's sake.
- kjs/JSActivation.h: Removed obsolete comment.
- VM/CodeGenerator.cpp: Added ASSERTs to verify that the localCount we're given matches the number of locals actually allocated.
- VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator): Changed "localCount" to include the parameter count, since we're using the word "local" to mean parameter, var, function, or "this". Renamed "m_nextLocal" to "m_nextVar", since "m_nextLocal" doesn't contrast well with "m_nextParameter".
Also moved tracking of implicit "this" parameter from here...
- kjs/nodes.cpp: (KJS::FunctionBodyNode::generateCode): ... to here (KJS::ProgramNode::generateCode): ... and here
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump): Added missing "\n".
- 11:54 PM Changeset in webkit [32114] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Oliver.
Bug 18274: ResolveNode::emitCode() doesn't make a new temporary when dst
is 0, leading to incorrect codegen
- 11:54 PM Changeset in webkit [32113] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fix bug in for..in codegen (gotta use ident, not m_ident)
- kjs/nodes.cpp: (KJS::ForInNode::emitCode):
- 11:54 PM Changeset in webkit [32112] by
-
- 9 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- Add suport for regexp literals
- VM/CodeBlock.cpp: (KJS::regexpToSourceString): (KJS::regexpName): (KJS::CodeBlock::dump):
- VM/CodeBlock.h:
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::addRegExp): (KJS::CodeGenerator::emitNewRegExp):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::RegExpNode::emitCode):
- kjs/nodes.h:
- 11:54 PM Changeset in webkit [32111] by
-
- 12 edits1 copy1 add in branches/squirrelfish/JavaScriptCore
Add support for for..in nodes
Reviewed by Geoff
Added two new opcodes to get_pnames and next_pname to handle iterating
over the set of properties on an object. This iterator is explicitly
invalidated and the property name array is released on standard exit
from the loop, otherwise we rely on GC to do the clean up for us.
- 11:54 PM Changeset in webkit [32110] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej.
Change CodeGenerator::emitCall() so it increments the reference count of
registers passed to it, and change its callers so they don't needlessly
increment the reference count of the registers they are passing.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall):
- kjs/nodes.cpp: (KJS::FunctionCallResolveNode::emitCode): (KJS::FunctionCallDotNode::emitCode):
- 11:54 PM Changeset in webkit [32109] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- generate call for PostIncDotNode
- kjs/nodes.cpp: (KJS::PostIncDotNode::emitCode):
- kjs/nodes.h:
- 11:54 PM Changeset in webkit [32108] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Build fix.
- fix build (not sure how this ever worked?)
- kjs/nodes.cpp: (KJS::FunctionCallBracketNode::emitCode):
- 11:53 PM Changeset in webkit [32107] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- generate code for FunctionCallBracketNode
- kjs/nodes.cpp: (KJS::FunctionCallBracketNode::emitCode):
- kjs/nodes.h:
- 11:53 PM Changeset in webkit [32106] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- Fix two crashing SunSpider tests
- VM/Machine.cpp: (KJS::Machine::privateExecute): set up 'this' properly for native calls.
- kjs/list.h: (KJS::List::List): Fix intialization of buffer and size from vector, the initialization order was wrong.
- 11:53 PM Changeset in webkit [32105] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Geoffrey Garen <ggaren@apple.com>
Build fix: marked ASSERT-only variables as UNUSED_PARAMs.
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTableInitializeVariable):
- 11:53 PM Changeset in webkit [32104] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Next step toward global code: Moved get, put, and initializeVariable
functionality up into JSVariableObject, and changed JSActivation to
rely on it.
- kjs/JSActivation.cpp: (KJS::JSActivation::JSActivation): (KJS::JSActivation::getOwnPropertySlot): (KJS::JSActivation::put): (KJS::JSActivation::initializeVariable):
- kjs/JSVariableObject.h: (KJS::JSVariableObject::valueAt): (KJS::JSVariableObject::isReadOnly): (KJS::JSVariableObject::symbolTableGet): (KJS::JSVariableObject::symbolTablePut): (KJS::JSVariableObject::symbolTableInitializeVariable):
- 11:53 PM Changeset in webkit [32103] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam.
- fix HashTable assertion on some SunSpider tests
Don't use -1 as the deleted value for JSValue*-keyed hashtables,
since it is a valid value (it's the immediate for -1).
- VM/CodeGenerator.h: (KJS::CodeGenerator::JSValueHashTraits::emptyValue): (KJS::CodeGenerator::JSValueHashTraits::deletedValue):
- kjs/JSImmediate.h: (KJS::JSImmediate::impossibleValue):
- 11:53 PM Changeset in webkit [32102] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Sam Weinig <sam@webkit.org>
Reviewed by Maciej Stachowiak.
Add support for calling Native constructors like new Array().
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::NewExprNode::emitCode):
- kjs/nodes.h:
- 11:53 PM Changeset in webkit [32101] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam.
- add some missing toOpbject calls to avoid crashing when calling methods on primitives
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- 11:53 PM Changeset in webkit [32100] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Changed Machine::dumpRegisters to take a pointer instead of a reference,
so gdb understands how to call it.
- VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::privateExecute):
- VM/Machine.h:
- 11:53 PM Changeset in webkit [32099] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej.
Fix CodeGenerator::addConstant() so it uses the functionExpressions
counter for function expressions, not the functions counter.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::addConstant):
- 11:53 PM Changeset in webkit [32098] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Add emitCode support for TypeOfResolveNode and TypeOfValueNode.
Added new opcode op_type_of to handle them.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNot): (KJS::CodeGenerator::emitInstanceOf): (KJS::CodeGenerator::emitTypeOf):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::jsTypeStringForValue): (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode):
- kjs/nodes.h:
- 11:53 PM Changeset in webkit [32097] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Fix non-computed goto version of isOpcode. op_end is a valid opcode.
- VM/Machine.cpp: (KJS::Machine::isOpcode):
- 11:53 PM Changeset in webkit [32096] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Added op_post_dec.
- 11:53 PM Changeset in webkit [32095] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Geoffrey Garen.
Add support for FunctionCallDotNode.
- kjs/nodes.cpp: (KJS::FunctionCallDotNode::emitCode):
- kjs/nodes.h:
- 11:53 PM Changeset in webkit [32094] by
-
- 10 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Next step toward global code: Removed more obsolete API, moved
saveLocalStorage and restoreLocalStorage to JSGlobalObject subclass,
since it's only intended for use there.
- ChangeLog:
- JavaScriptCore.exp:
- kjs/Activation.h:
- kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::saveLocalStorage): (KJS::JSGlobalObject::restoreLocalStorage):
- kjs/JSGlobalObject.h:
- kjs/JSVariableObject.cpp:
- kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData):
- kjs/function.cpp: (KJS::ActivationImp::ActivationImp):
- 11:52 PM Changeset in webkit [32093] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Next step toward global code: subclass JSActivation + JSActivationData
from JSVariableObject + JSVariableObjectData.
JSActivation now relies on JSVariableObject for access to registers and
symbol table, and for some delete functionality, but not for anything
else yet.
(KJS::JSActivation::mark): Cleaned up the style here a little bit.
- 11:52 PM Changeset in webkit [32092] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Next step toward global code: store "rOffset" in JSVariableObjectData.
- kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData):
- 11:52 PM Changeset in webkit [32091] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Next steps toward global code:
- Moved access to the register file into JSVariableObject.
- Added more ASSERTs to indicate obsolete APIs there are just hanging around to stave off build failures.
- kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- kjs/JSVariableObject.h: (KJS::JSVariableObject::registers): (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData): (KJS::JSVariableObject::JSVariableObject):
- 11:52 PM Changeset in webkit [32090] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Sam Weinig <sam@webkit.org>
Reviewed by Oliver. Tweaked somewhat by Maciej.
- implement codegen for ReadModifyResolveNode
- kjs/nodes.cpp: (KJS::emitReadModifyAssignment): (KJS::ReadModifyResolveNode::emitCode):
- kjs/nodes.h:
- 11:52 PM Changeset in webkit [32089] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Geoff.
Fix the build -- r31492 removed activation tear-off, but r31493 used it.
- kjs/nodes.cpp: (KJS::FuncExprNode::makeFunction):
- 11:52 PM Changeset in webkit [32088] by
-
- 9 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej.
Add support for FuncExprNode to SquirrelFish.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeBlock.h:
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::addConstant): (KJS::CodeGenerator::emitNewFunctionExpression):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::FuncExprNode::emitCode): (KJS::FuncExprNode::makeFunction):
- kjs/nodes.h:
- 11:52 PM Changeset in webkit [32087] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
First step toward global code: removed some obsolete JSGlobalObject
APIs, changing clients to ASSERT_NOT_REACHED.
Activation tear-off and scope chain pushing is obsolete because we
statically detect whether an activation + scope node is required.
The variableObject() and activationObject() accessors are obsolete
because they haven't been maintained, and they're mostly used by
node evaluation code, anyway.
The localStorage() accessor is obsolete because everything is in
registers now, and it's mostly used by node evaluation code, anyway.
- 11:52 PM Changeset in webkit [32086] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- implement codegen for bracket accessor and bracket assign
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitGetPropVal): (KJS::CodeGenerator::emitPutPropVal):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::BracketAccessorNode::emitCode): (KJS::AssignBracketNode::emitCode):
- kjs/nodes.h:
- 11:52 PM Changeset in webkit [32085] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Not reviewed.
Removed FIXME that I just fixed.
Added ASSERT to cover an error previously only covered by a FIXME.
- kjs/JSActivation.cpp: (KJS::JSActivation::getOwnPropertySlot):
- 11:52 PM Changeset in webkit [32084] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Not reviewed.
Fixed indentation inside op_call. (I had left this code badly indented
to make the behavior-changing diff clearer.)
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- 11:52 PM Changeset in webkit [32083] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed up logging of jump instructions to follow the following style:
jump offset(->absoluteTarget)
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- 11:52 PM Changeset in webkit [32082] by
-
- 9 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Changed the SymbolTable API to use int instead of size_t. It has been
using int internally for a while now (since squirrelfish symbols can
have negative indices).
- 11:52 PM Changeset in webkit [32081] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej.
Add support for FunctionCallValueNode.
- kjs/nodes.cpp: (KJS::FunctionCallValueNode::emitCode):
- kjs/nodes.h:
- 11:52 PM Changeset in webkit [32080] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-03-31 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
1) Implemented array literals
2) Renamed op_object_get and op_object_put to op_get_prop_id and
op_put_prop_id in preparation for new variants.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNewArray): (KJS::CodeGenerator::emitGetPropId): (KJS::CodeGenerator::emitPutPropId): (KJS::CodeGenerator::emitPutPropIndex):
- VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::propertyNames):
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::ArrayNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PreIncResolveNode::emitCode): (KJS::AssignResolveNode::emitCode): (KJS::AssignDotNode::emitCode):
- kjs/nodes.h:
- 11:52 PM Changeset in webkit [32079] by
-
- 27 edits6 adds in branches/squirrelfish
2008-03-30 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Implemented native function calls. (Re-entering from native code back
to JS doesn't work yet, though.)
0.2% speedup overall, due to some inlining tweaks. 3.6% regression on
function-empty.js, since we're making a new virtual call and taking a
new branch inside every op_call.
I adjusted the JavaScriptCore calling convention to minimize overhead,
like so:
The machine calls a single virtual function, "getCallData", to get all
the data it needs for a function call. Native code still uses the old
"isObject()" check followed by an "implementsCall()" check, which
aliases to "getCallData". (We can optimize native code to use getCallData
at our leisure.)
To supply a list of arguments, the machine calls a new List constructor
that just takes a pointer and a length, without copying. Native code
still appends to the list one argument at a time. (We can optimize
native code to use the new List constructor at our leisure.)
- VM/Machine.cpp: (KJS::Machine::privateExecute): Changed resize() call to grow() call, to encourage the compiler to inline the Vector code.
- kjs/CallData.h: Added. (KJS::): CallData is a union because eventually native calls will stuff a function pointer into it, to eliminate the callAsFunction virtual call.
- kjs/function.cpp: (KJS::FunctionImp::callAsFunction): Changed this to an ASSERT since it's not implemented yet.
- kjs/list.h: Made the List class two-faced, to support the old way and the new way during this transition phase: lists can be made read-only with just a pointer and a legnth, or you can append to them one item at a time.
- kjs/value.h: (KJS::jsUndefined): Marked this function ALWAYS_INLINE for the benefit of a certain compiler that doesn't know what's best for it.
JavaScriptGlue:
2008-03-30 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Build fix.
- ForwardingHeaders/wtf/UnusedParam.h: Copied from ForwardingHeaders/wtf/OwnPtr.h.
WebCore:
2008-03-30 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Adjusted WebCore JS functions to the new "getCallData" calling convention.
WebKit/mac:
2008-03-30 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Build fix.
- 11:51 PM Changeset in webkit [32078] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
Dump code that codegen can't handle yet, so it's easier to prioritize missing nodes.
- kjs/nodes.h: (KJS::Node::emitCode):
- 11:51 PM Changeset in webkit [32077] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
Improve dumping of bytecode and fix coding style accordingly.
Registers are printed as lr1 for locals, tr1 for temp registers. Identifiers print as
foobar(@id0) and constants print as "foo"(@k1) or 312.4(@k2) or the like. Constant and
identifier tables are dumped for reference.
- VM/CodeBlock.cpp: (KJS::escapeQuotes): (KJS::valueToSourceString): (KJS::registerName): (KJS::constantName): (KJS::idName): (KJS::printUnaryOp): (KJS::printBinaryOp): (KJS::CodeBlock::dump):
- VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::Machine::privateExecute):
- 11:51 PM Changeset in webkit [32076] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
Implement StringNode and VoidNode (both pretty trivial).
- kjs/nodes.cpp: (KJS::StringNode::emitCode): (KJS::VoidNode::emitCode):
- kjs/nodes.h:
- 11:51 PM Changeset in webkit [32075] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam.
Implement CommaNode.
- kjs/nodes.cpp: (KJS::CommaNode::emitCode):
- kjs/nodes.h:
- 11:51 PM Changeset in webkit [32074] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-03-30 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej.
Adds support for dot notation and object literals.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNewObject):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::AssignDotNode::emitCode):
- kjs/nodes.h:
- 11:51 PM Changeset in webkit [32073] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
2008-03-29 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Mark the register file.
It's a conservative mark for now, but once registers are typed, we can
do an exact mark.
1.4% regression regardless of whether we actually do the marking.
GCC is is worth every penny.
- VM/Machine.cpp: (KJS::Machine::privateExecute): Most of the changes here are just for the fact that "registers" is a pointer now.
- kjs/JSGlobalObject.cpp: The global object owns the register file now.
- 11:51 PM Changeset in webkit [32072] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
Bug 18204: SquirrelFish: continue/break do not correctly handle scope popping
<http://bugs.webkit.org/show_bug.cgi?id=18204>
Reviewed by Maciej.
We now track the scope depth as part of a loop context, and add an
extra instruction op_jump_scopes that is used to perform a jump across
dynamic scope boundaries.
- 11:51 PM Changeset in webkit [32071] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-28 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Add emitCode support for ConditionalNode.
- kjs/nodes.cpp: (KJS::ConditionalNode::emitCode):
- kjs/nodes.h:
- 11:51 PM Changeset in webkit [32070] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
2008-03-28 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Responding to feedback, added some comments, fixed up a few names, and
clarified that "locals" always means all local variables, functions,
and parameters.
- 11:51 PM Changeset in webkit [32069] by
-
- 9 edits in branches/squirrelfish/JavaScriptCore
2008-03-28 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Added support for "this".
Supply an implicit "this" value as the first argument to every function.
Alias the "this" keyword to that argument.
1% regression overall, 2.5% regression on empty function calls. Seems
like a reasonable cost for now, since we're doing more work.
(Eventually, we might decide to create a version of op_call specialized
for a known null "this" value.)
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall):
- VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator):
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- kjs/CommonIdentifiers.cpp: (KJS::CommonIdentifiers::CommonIdentifiers):
- kjs/CommonIdentifiers.h:
- kjs/nodes.cpp: (KJS::ThisNode::emitCode): (KJS::FunctionCallResolveNode::emitCode):
- kjs/nodes.h:
- 11:51 PM Changeset in webkit [32068] by
-
- 5 edits in branches/squirrelfish/JavaScriptCore
Bug 18192: Squirrelfish needs support for break and continue
<http://bugs.webkit.org/show_bug.cgi?id=18192>
Reviewed by Geoff
Added a loop context stack to the code generator to provide the
correct jump labels for continue and goto. Added logic to the
currently implemented loop constructs to manage entry and exit
from the loop contexts. Finally, implemented codegen for break
and continue (and a pass through for LabelNode)
- 11:51 PM Changeset in webkit [32067] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-03-27 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Add emitCode support for UnaryPlusNode, NegateNode, BitwiseNotNode and LogicalNotNode.
- VM/CodeBlock.cpp: (KJS::printUnaryOp): (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitToJSNumber): (KJS::CodeGenerator::emitNegate): (KJS::CodeGenerator::emitBitNot): (KJS::CodeGenerator::emitNot):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode):
- kjs/nodes.h:
- 11:51 PM Changeset in webkit [32066] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-27 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej Stachowiak.
Add support for LogicalAndNode and LogicalOrNode.
- kjs/nodes.cpp: (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode):
- kjs/nodes.h:
- 11:51 PM Changeset in webkit [32065] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-27 Sam Weinig <sam@webkit.org>
Clean up code and debug output.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- 11:51 PM Changeset in webkit [32064] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-27 Geoffrey Garen <ggaren@apple.com>
Moved an ASSERT to a more logical place.
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- 11:51 PM Changeset in webkit [32063] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-03-27 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Add emitCode support for InstanceOfNode.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitInstanceOf):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::InstanceOfNode::emitCode):
- kjs/nodes.h:
- 11:51 PM Changeset in webkit [32062] by
-
- 9 edits in branches/squirrelfish/JavaScriptCore
Bug 18142: squirrelfish needs to support dynamic scoping/with
<http://bugs.webkit.org/show_bug.cgi?id=18142>
Reviewed by Maciej
Add support for dynamic scoping and add code to handle 'with'
statements.
- 11:50 PM Changeset in webkit [32061] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-03-27 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Add emitCode support for NullNode, FalseNode, TrueNode, IfNode, IfElseNode, DoWhileNode and WhileNode
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump): Dump op_jfalse opcode.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitJumpIfFalse): Identical to emitJumpIfTrue except it emits the op_jfalse opcode. (KJS::CodeGenerator::emitLoad): Add and emitLoad override for booleans.
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute): Adds execution of op_jfalse. It is identical to op_jtrue, except the the condition is reversed.
- VM/Opcode.h: Add op_jfalse.
- kjs/nodes.cpp: (KJS::NullNode::emitCode): Added. (KJS::FalseNode::emitCode): Added. (KJS::TrueNode::emitCode): Added. (KJS::IfNode::emitCode): Added. (KJS::IfElseNode::emitCode): Added. (KJS::DoWhileNode::emitCode): Added. (KJS::WhileNode::emitCode): Added.
- kjs/nodes.h:
- 11:50 PM Changeset in webkit [32060] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-26 Geoffrey Garen <ggaren@apple.com>
Nixed an unused List.
The calm before my stormy war against the List class.
- kjs/function_object.cpp: (KJS::FunctionObjectImp::construct):
- 11:50 PM Changeset in webkit [32059] by
-
- 5 edits9 adds in branches/squirrelfish
SunSpider:
2008-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
--squirrelfish mode: pared down tests for squirrelfish to chew on.
- sunspider:
- tests/LIST:
- tests/squirrelfish: Added.
- tests/squirrelfish/function-closure.js: Added.
- tests/squirrelfish/function-empty.js: Added.
- tests/squirrelfish/function-missing-args.js: Added.
- tests/squirrelfish/function-sum.js: Added.
- tests/squirrelfish/loop-empty-resolve.js: Added.
- tests/squirrelfish/loop-empty.js: Added.
- tests/squirrelfish/loop-resolve.js: Added.
- tests/squirrelfish/loop-sum.js: Added.
WebKitTools:
2008-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
--squirrelfish mode: pared down tests for squirrelfish to chew on.
- Scripts/run-sunspider:
- 11:50 PM Changeset in webkit [32058] by
-
- 9 edits in branches/squirrelfish/JavaScriptCore
2008-03-26 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Geoffrey Garen.
Adds support for EqualNode, NotEqualNode, StrictEqualNode, NotStrictEqualNode,
LessEqNode, GreaterNode, GreaterEqNode, MultNode, DivNode, ModNode, SubNode,
LeftShiftNode, RightShiftNode, UnsignedRightShiftNode, BitAndNode, BitXOrNode,
and BitOrNode.
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitEqual): (KJS::CodeGenerator::emitNotEqual): (KJS::CodeGenerator::emitStrictEqual): (KJS::CodeGenerator::emitNotStrictEqual): (KJS::CodeGenerator::emitLessEq): (KJS::CodeGenerator::emitMult): (KJS::CodeGenerator::emitDiv): (KJS::CodeGenerator::emitMod): (KJS::CodeGenerator::emitSub): (KJS::CodeGenerator::emitLeftShift): (KJS::CodeGenerator::emitRightShift): (KJS::CodeGenerator::emitUnsignedRightShift): (KJS::CodeGenerator::emitBitAnd): (KJS::CodeGenerator::emitBitXOr): (KJS::CodeGenerator::emitBitOr):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::jsLessEq): (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode):
- kjs/nodes.h:
- 11:50 PM Changeset in webkit [32057] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Only print debug dumps in debug builds.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::generate):
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- 11:50 PM Changeset in webkit [32056] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Moved a few files around in the XCode project.
- JavaScriptCore.xcodeproj/project.pbxproj:
- 11:50 PM Changeset in webkit [32055] by
-
- 11 edits2 adds in branches/squirrelfish/JavaScriptCore
2008-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Made closures work.
An activation object aliases to the register file until its associated
function returns, at which point it copies the registers for locals and
parameters into an independent storage buffer.
- 11:50 PM Changeset in webkit [32054] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-03-24 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed recent 25% regression on simple for loop test. GCC seems to be
very finicky about the code that gets inlined into
Machine::privateExecute.
Everything in this patch is simply the result of experiment.
The resolve and resolve_base opcodes do not seem to have gotten slower
from this change.
- VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::Machine::privateExecute):
- kjs/nodes.h:
- 11:50 PM Changeset in webkit [32053] by
-
- 5 edits in branches/squirrelfish/JavaScriptCore
Bug 18059: squirrelfish needs to compile on platforms without computed goto
<http://bugs.webkit.org/show_bug.cgi?id=18059>
Reviewed by Geoff Garen
"Standard" macro style support for conditionalising the use of computed goto.
- 11:50 PM Changeset in webkit [32052] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-03-24 Geoffrey Garen <ggaren@apple.com>
Moved my notes from nodes.h to the wiki.
- kjs/nodes.h:
- 11:50 PM Changeset in webkit [32051] by
-
- 9 edits6 copies11 adds in branches/squirrelfish/JavaScriptCore
2008-03-24 Geoffrey Garen <ggaren@apple.com>
Reviewed by NOBODY.
SquirrelFish lives.
Initial check-in of the code I've been carrying around. Lots of stuff
doesn't work. Plus a bunch of empty files.
- 11:44 PM Changeset in webkit [32050] by
-
- 1 copy in branches/squirrelfish
Re-create squirrelfish branch.
- 11:43 PM Changeset in webkit [32049] by
-
- 1 move in branches/old/squirrelfish-2008-04-17
Move aside squirrelfish branch in prepration for rebasing it on trunk.
- 10:44 PM Changeset in webkit [32048] by
-
- 9 edits in trunk/WebCore
2008-04-17 Antti Koivisto <Antti Koivisto>
Reviewed by Oliver.
Implement calcMode=paced.
Tested by SVG testsuite tests
animate-elem-11-t.svg
animate-elem-15-t.svg
animate-elem-82-t.svg
- svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::calculateDistance):
- svg/SVGAnimateElement.h:
- svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::calculateDistance):
- svg/SVGAnimateMotionElement.h:
- svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::calculateDistance):
- svg/SVGAnimateTransformElement.h:
- svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced): (WebCore::SVGAnimationElement::startedActiveInterval):
- svg/SVGAnimationElement.h: (WebCore::SVGAnimationElement::calculateDistance):
- 10:19 PM Changeset in webkit [32047] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed ASSERT seen during run-sunspider of a debug build.
- VM/CodeGenerator.h: Made the default codegen buffers bigger. SunSpider runs all tests in one global environment, so you end up with more than 128 locals. This is just a stop-gap until we code up a real solution to arbitrary symbol and label limits.
- 9:02 PM Changeset in webkit [32046] by
-
- 2 edits in trunk/WebCore
2008-04-17 David Hyatt <hyatt@apple.com>
Fix a leak in ImageBuffer's clearImage method.
Reviewed by olliej
- platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::clearImage):
- 8:45 PM Changeset in webkit [32045] by
-
- 4 edits in trunk/LayoutTests
2008-04-17 Antti Koivisto <Antti Koivisto>
Update SVG animation test results.
- platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
- platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
- platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt:
- 8:45 PM Changeset in webkit [32044] by
-
- 18 edits in trunk/WebCore
2008-04-17 Antti Koivisto <Antti Koivisto>
Reviewed by Eric.
More SVG animation:
- Make multiple additive animations work
- Support animating <use> instance trees
- svg/SVGAnimateColorElement.cpp: (WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
- svg/SVGAnimateColorElement.h:
Made this AnimateElement subclass. All functionality is now provided by AnimateElement.
- svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::determinePropertyType): (WebCore::SVGAnimateElement::calculateAnimatedValue): (WebCore::SVGAnimateElement::calculateFromAndToValues): (WebCore::SVGAnimateElement::calculateFromAndByValues): (WebCore::SVGAnimateElement::resetToBaseValue): (WebCore::SVGAnimateElement::applyResultsToTarget):
- svg/SVGAnimateElement.h:
- svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::resetToBaseValue): (WebCore::SVGAnimateMotionElement::calculateAnimatedValue): (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
- svg/SVGAnimateMotionElement.h:
- svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::resetToBaseValue): (WebCore::SVGAnimateTransformElement::calculateAnimatedValue): (WebCore::SVGAnimateTransformElement::calculateFromAndByValues): (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
- svg/SVGAnimateTransformElement.h:
Switch to new model where
- resetToBaseValue() resets the animated value back to the base value
- calculateAnimatedValue() computes the value and adds it to the element used for accumulation
- applyResultsToTarget() sets the computed value the target element
- svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::fromValue): (WebCore::SVGAnimationElement::attributeIsCSS): (WebCore::SVGAnimationElement::targetAttributeIsCSS): (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
Update instances too.
(WebCore::SVGAnimationElement::startedActiveInterval):
(WebCore::SVGAnimationElement::updateAnimation):
(WebCore::SVGAnimationElement::endedActiveInterval):
- svg/SVGAnimationElement.h:
- svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement):
- svg/SVGSetElement.cpp: (WebCore::SVGSetElement::SVGSetElement):
- svg/SVGSetElement.h:
Made this AnimateElement subclass. All functionality is now provided by AnimateElement.
- svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::SMILTimeContainer): (WebCore::SMILTimeContainer::unschedule): (WebCore::SMILTimeContainer::updateDocumentOrderIndexes): (WebCore::PriorityCompare::PriorityCompare): (WebCore::PriorityCompare::operator()): (WebCore::SMILTimeContainer::sortByPriority): (WebCore::applyOrderSortFunction): (WebCore::sortByApplyOrder): (WebCore::SMILTimeContainer::baseValueFor): (WebCore::SMILTimeContainer::updateAnimations):
- svg/animation/SMILTimeContainer.h: (WebCore::SMILTimeContainer::create): (WebCore::SMILTimeContainer::setDocumentOrderIndexesDirty):
Do additive animation with the following steps
- sort active animations based on their priority (begin time, document order).
- if not yet saved for each (element, attribute) pair save the base value.
- lowest priority animation for each (element, attribute) acts as the result element.
- animation results are resolved in priority order and results are accumulated to the result element.
- after all active animations have been processed the values in result elements are applied to the target elements.
- svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::SVGSMILElement): (WebCore::SVGSMILElement::insertedIntoDocument):
Invalidate document order index.
(WebCore::SVGSMILElement::attributeName):
(WebCore::SVGSMILElement::isInactive):
(WebCore::SVGSMILElement::isFrozen):
(WebCore::SVGSMILElement::beginListChanged):
(WebCore::SVGSMILElement::determineActiveState):
(WebCore::SVGSMILElement::isContributing):
(WebCore::SVGSMILElement::progress):
Take care that animations in frozen state still contribute to the total. Since we now build the result starting
from the base value, fill="replace" works magically simply by not contributing anything.
- svg/animation/SVGSMILElement.h: (WebCore::SVGSMILElement::previousIntervalBegin): (WebCore::SVGSMILElement::documentOrderIndex): (WebCore::SVGSMILElement::setDocumentOrderIndex):
- 6:50 PM Changeset in webkit [32043] by
-
- 2 edits in trunk/WebKitTools
Fix many tests on Windows
- Scripts/run-webkit-tests:
(readFromDumpToolWithTimer):
- Use read instead of sysread to ensure that we don't interfere with other uses of buffered IO in this script.
(setFileHandleNonBlocking): Actually set the filehandle to blocking
when specified.
- 6:03 PM Changeset in webkit [32042] by
-
- 7 edits in trunk
2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by mrowe.
Define HAVE_ACCESSIBILITY where WebKit, WebCore can see it.
- 6:02 PM Changeset in webkit [32041] by
-
- 2 edits in trunk/WebCore
2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by aliu.
- page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::layoutCount): Check isRenderView() before casting to RenderView.
- 6:01 PM Changeset in webkit [32040] by
-
- 2 edits in trunk/LayoutTests
2008-04-17 Antti Koivisto <Antti Koivisto>
Re-enable animation tests on windows.
- platform/win/Skipped:
- 5:57 PM Changeset in webkit [32039] by
-
- 3 edits in trunk/WebCore
2008-04-17 Antti Koivisto <Antti Koivisto>
Reviewed by Oliver.
Fix https://bugs.webkit.org/show_bug.cgi?id=18551
Bug 18551: REGRESSION (r31801?): Crash in ContainerNode::removedFromDocument on many SVG tests under guard malloc
Freeing a RefPtr that is the last ref to the parent from removedFromDocument() is a bad idea.
Caching the target element is too dangerous, let's simply not do it. Getting it is very cheap anyway.
- svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::removedFromDocument): (WebCore::SVGSMILElement::attributeChanged): (WebCore::SVGSMILElement::targetElement):
- svg/animation/SVGSMILElement.h:
- 5:56 PM Changeset in webkit [32038] by
-
- 2 edits in trunk/WebKitTools
Fix ~10 tests
- Scripts/run-webkit-tests: Only remove the newline after #EOF, not whatever newline happens to be at the end of what we've read.
- 5:56 PM Changeset in webkit [32037] by
-
- 12 edits4 adds2 deletes in trunk
WebCore:
2008-04-17 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Autogenerate the XMLHttpRequest javascript binding.
- GNUmakefile.am:
- WebCore.pro:
- WebCore.vcproj/WebCore.vcproj:
- WebCoreSources.bkl:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMWindowBase.cpp:
- bindings/js/JSXMLHttpRequest.cpp: Removed.
- bindings/js/JSXMLHttpRequest.h: Removed.
- bindings/js/JSXMLHttpRequestConstructor.cpp: Added. (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor): (WebCore::JSXMLHttpRequestConstructor::implementsConstruct): (WebCore::JSXMLHttpRequestConstructor::construct):
- bindings/js/JSXMLHttpRequestConstructor.h: Added. (WebCore::JSXMLHttpRequestConstructor::classInfo):
- bindings/js/JSXMLHttpRequestCustom.cpp: Added. (WebCore::JSXMLHttpRequest::mark): (WebCore::JSXMLHttpRequest::onreadystatechange): (WebCore::JSXMLHttpRequest::setOnreadystatechange): (WebCore::JSXMLHttpRequest::onload): (WebCore::JSXMLHttpRequest::setOnload): (WebCore::JSXMLHttpRequest::responseXML): (WebCore::JSXMLHttpRequest::open): (WebCore::JSXMLHttpRequest::setRequestHeader): (WebCore::JSXMLHttpRequest::send): (WebCore::JSXMLHttpRequest::getResponseHeader): (WebCore::JSXMLHttpRequest::overrideMimeType): (WebCore::JSXMLHttpRequest::addEventListener): (WebCore::JSXMLHttpRequest::removeEventListener): (WebCore::JSXMLHttpRequest::dispatchEvent):
- xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::readyState): (WebCore::XMLHttpRequest::responseText):
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequest.idl: Added.
LayoutTests:
2008-04-17 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Update test result for additon of XMLHttpRequest constants.
- fast/dom/Window/window-properties-expected.txt:
- 5:50 PM Changeset in webkit [32036] by
-
- 2 edits in trunk/WebKitTools
Remove DRT/win's hang timer
run-webkit-tests takes care of this for us now
Reviewed by Anders Carlsson.
- DumpRenderTree/win/DumpRenderTree.cpp:
- 5:49 PM Changeset in webkit [32035] by
-
- 2 edits in trunk/WebKitTools
Don't wait for the hang timer twice in the case of a hang
Previously we'd wait for a hang while reading both stdout and stderr
from DRT. Now we'll only wait for one or the other.
Reviewed by Anders Carlsson.
- Scripts/run-webkit-tests: (top level): Don't wait for stderr to time out if stdout already timed out. (readFromDumpToolWithTimer): If $dontWaitForTimeOut is true, quit after the first read that returns no data.
- 5:48 PM Changeset in webkit [32034] by
-
- 2 edits in trunk/WebKitTools
Don't throw away the output from timed out tests
Reviewed by Anders Carlsson.
- Scripts/run-webkit-tests: (top level): Updated for changes to readFromDumpToolWithTimer. (readFromDumpToolWithTimer): Return a hash that contains both the output and whether or not the test timed out.
- 5:46 PM Changeset in webkit [32033] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed a bug in exception unwinding, where we wouldn't deref the scope
chain in global scope, so we would leak ScopeChainNodes when exceptions
were thrown inside "with" and "catch" scopes.
Also did some cleanup of the unwinding code along the way.
Scope chain reference counting is still wrong in a few ways. I thought
I would fix this portion of it first.
run-sunspider shows no change.
- VM/Machine.cpp: (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::privateExecute):
- VM/Machine.h:
- 5:22 PM Changeset in webkit [32032] by
-
- 3 edits in trunk/WebCore
2008-04-17 Brady Eidson <beidson@apple.com>
Reviewed by Anders
The SessionStorage for a Page has to be copied every time a new Page is created.
I thought I had the right choke point for creating new Pages at FrameLoader::createWindow(),
but it just so happens there was another - in the ContextMenuController.
The *real* choke point for this, then, is in the Chrome itself.
- loader/FrameLoader.cpp: (WebCore::FrameLoader::createWindow): Don't do the SessionStorage copy here...
- page/Chrome.cpp: (WebCore::Chrome::createWindow): Do it here, instead!
- 5:13 PM Changeset in webkit [32031] by
-
- 2 edits in trunk/WebKitTools
Make the hang timer 60 seconds
- Scripts/run-webkit-tests:
- 5:06 PM Changeset in webkit [32030] by
-
- 3 edits in trunk/WebCore
2008-04-17 Alice Liu <alice.liu@apple.com>
Reviewed by Jon Honeycutt.
Added some asserts to catch undesirable usage of setWrapper and addChildren.
- page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::addChildren):
- page/AccessibilityObject.h: (WebCore::AccessibilityObject::setWrapper):
- 4:58 PM Changeset in webkit [32029] by
-
- 2 edits in trunk/WebKitTools
Get rid of carriage returns in DRT/win's stderr
Reviewed by Eric Seidel.
- DumpRenderTree/win/DumpRenderTree.cpp: (main): Mark stderr as binary like we already do for stdout.
- 4:57 PM Changeset in webkit [32028] by
-
- 2 edits in trunk/WebKitTools
Fix Bug 17678: run-webkit-tests should have a watchdog timer (and timeout long tests)
We now abort tests that take longer than 60 seconds to produce output.
This matches the watchdog timer in DRT/mac and DRT/win (which we can
now remove).
Reviewed by Eric Seidel.
- Scripts/run-webkit-tests: (top level): Read DRT's output using the new readFromDumpToolWithTimer subroutine. If readFromDumpToolWithTimer returns undefined it means the test timed out, so we register the test as a hang and move on. (sub testCrashedOrTimedOut): Renamed from testCrashed. Now handles both crashed and timed out tests. If the test timed out, we kill DRT before returning. (sub linksForTimedOutTest): Added. We don't have any output to link to for tests that timed out. (sub recordActualResultsAndDiff): Don't call length on undefined. (sub readFromDumpToolWithTimer): Added. Performs non-blocking reads from a filehandle until an #EOF is reached or $maximumSecondsWithoutOutput have elapsed. (sub setFileHandleNonBlocking): Marks a filehandle as blocking or non-blocking.
- 4:57 PM Changeset in webkit [32027] by
-
- 2 edits in trunk/WebKitTools
Refactor test results page generation
Reviewed by Eric Seidel.
- Scripts/run-webkit-tests: (sub htmlForResultsSection): Added. Takes a set of tests, a description, and a subroutine to generate the links for each test, and creates a HTML string containing a table of the tests and their links. (sub linksForExpectedAndActualResults): Added. Replaces the htmlForExpectedAndActualResults subroutine. (sub linksForMismatchTest): Added. (sub linksForCrashOrErrorTest): Added. (sub linksForNewTest): Added.
- 4:57 PM Changeset in webkit [32026] by
-
- 2 edits in trunk/WebKitTools
Print the extension for all tests in the test results page
Reviewed by Eric Seidel.
- Scripts/run-webkit-tests:
- 4:57 PM Changeset in webkit [32025] by
-
- 2 edits in trunk/WebKitTools
Move code that counts finished tests into a subroutine
Reviewed by Eric Seidel.
- Scripts/run-webkit-tests: (sub countFinishedTest): Added.
- 4:56 PM Changeset in webkit [32024] by
-
- 2 edits in trunk/WebKitTools
Move code that handles a crash into a subroutine
Reviewed by Eric Seidel.
- Scripts/run-webkit-tests: (sub testCrashed): Added.
- 4:31 PM Changeset in webkit [32023] by
-
- 2 edits in trunk/WebKit/mac
Fix <rdar://problem/5863552> REGRESSION (r30741): Attachments don't appear in the iChat message window after sending
The order of arguments to -[NSDictionary initWithObjects:andKeys:] had been transposed accidentally during refactoring.
Reviewed by Dan Bernstein.
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createPlugin): Pass the arguments in the correct order.
- 4:25 PM Changeset in webkit [32022] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
Add more exception checking to toNumber conversions
Reviewed by Maciej
This corrects op_pre_dec, op_negate, op_mod and op_sub.
- 4:22 PM Changeset in webkit [32021] by
-
- 2 edits in trunk/LayoutTests
2008-04-17 Anders Carlsson <andersca@apple.com>
Add applicationCache object.
- fast/dom/Window/window-properties-expected.txt:
- 4:09 PM Changeset in webkit [32020] by
-
- 9 edits in trunk/WebCore
2008-04-17 Brady Eidson <beidson@apple.com>
Reviewed by the Mitzpettel
Before things get much more intertwined, move away from a global LocalStorage model
to a per-PageGroup LocalStorage model.
- page/DOMWindow.cpp: (WebCore::DOMWindow::localStorage): Get it from the current PageGroup, not the global LocalStorage (which doesn't exist anymore).
- page/Page.cpp:
- page/PageGroup.cpp: (WebCore::PageGroup::localStorage): Create a LocalStorage object on demand.
- page/PageGroup.h:
- storage/LocalStorage.cpp: (WebCore::LocalStorage::LocalStorage): Hold a back pointer to the owning PageGroup. (WebCore::LocalStorage::storageArea):
- storage/LocalStorage.h: (WebCore::LocalStorage::create):
- storage/LocalStorageArea.cpp: (WebCore::LocalStorageArea::LocalStorageArea): Hold a back pointer to the owning LocalStorage.
- storage/LocalStorageArea.h: (WebCore::LocalStorageArea::create):
- 4:05 PM Changeset in webkit [32019] by
-
- 2 edits in trunk
2008-04-17 Alp Toker <alp@atoker.com>
GTK+ build fix. Back out the libjpeg check part of r32008 from bug
#17865 (reopened).
- configure.ac:
- 3:47 PM Changeset in webkit [32018] by
-
- 2 edits in trunk/WebCore
2008-04-17 Anders Carlsson <andersca@apple.com>
Fix indentation.
- loader/DocumentLoader.cpp: (WebCore::DocumentLoader::scheduleArchiveLoad):
- 3:34 PM Changeset in webkit [32017] by
-
- 3 edits in trunk/WebCore
2008-04-17 Anders Carlsson <andersca@apple.com>
Reviewed by Brady.
When in the web archive debug mode, don't call didFail immediately. Instead,
add the loader to the substitute resource map, but with a null resource, which
indicates to substituteResourceDeliveryTimerFired that the load should fail.
- loader/DocumentLoader.cpp: (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired): (WebCore::DocumentLoader::scheduleArchiveLoad):
- loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load):
- 2:54 PM Changeset in webkit [32016] by
-
- 2 edits in trunk/WebKitTools
Reviewed by hyatt.
Rename RenderView to RenderViewport in the next rename patch.
- Scripts/do-webcore-rename:
- 2:30 PM Changeset in webkit [32015] by
-
- 6 edits in trunk/WebCore
2008-04-17 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Add JS bindings for the DOMApplicationCache object.
- bindings/js/JSDOMApplicationCacheCustom.cpp: (WebCore::JSDOMApplicationCache::add): (WebCore::JSDOMApplicationCache::remove): (WebCore::JSDOMApplicationCache::addEventListener): (WebCore::JSDOMApplicationCache::removeEventListener): (WebCore::JSDOMApplicationCache::dispatchEvent): (WebCore::JSDOMApplicationCache::setOnchecking): (WebCore::JSDOMApplicationCache::onchecking): (WebCore::JSDOMApplicationCache::setOnerror): (WebCore::JSDOMApplicationCache::onerror): (WebCore::JSDOMApplicationCache::setOnnoupdate): (WebCore::JSDOMApplicationCache::onnoupdate): (WebCore::JSDOMApplicationCache::setOndownloading): (WebCore::JSDOMApplicationCache::ondownloading): (WebCore::JSDOMApplicationCache::setOnprogress): (WebCore::JSDOMApplicationCache::onprogress): (WebCore::JSDOMApplicationCache::setOnupdateready): (WebCore::JSDOMApplicationCache::onupdateready): (WebCore::JSDOMApplicationCache::setOncached): (WebCore::JSDOMApplicationCache::oncached): (WebCore::JSDOMApplicationCache::mark):
- bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::mark):
- bindings/js/JSEventTargetBase.cpp: (WebCore::toJS):
- loader/appcache/DOMApplicationCache.idl:
- page/DOMWindow.idl:
- 2:09 PM Changeset in webkit [32014] by
-
- 2 edits in trunk/WebKit/gtk
2008-04-17 Alp Toker <alp@atoker.com>
Rubber-stamped by Holger Freyther.
Reduce hard-coded page-cache count to 3 based on research done for the
Mac port on value / page.
We will need to make this more dynamic or configurable at some point
but for now it's best to keep closer to the behaviour before page
caching was enabled.
Issue spotted by Mark Rowe.
- webkit/webkitprivate.cpp: (webkit_init):
- 2:05 PM Changeset in webkit [32013] by
-
- 11 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com> and Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Oliver Hunt.
Behold: eval.
Introduced a new opcode: op_call_eval. In the normal case, it performs
an eval. In the case where eval has been overridden in some way, it
performs a function call.
- VM/CodeGenerator.h: Added a feature so the code generator knows not to optimized locals in eval code.
- 1:33 PM Changeset in webkit [32012] by
-
- 2 edits in trunk/LayoutTests
Add some crashing tests to the Skipped file
- platform/win/Skipped:
- 1:26 PM Changeset in webkit [32011] by
-
- 2 edits in trunk/WebCore
2008-04-17 Eric Carlson <eric.carlson@apple.com>
Reviewed by Adele.
Fix for <rdar://problem/5861642> QTMovieWin returns uninitialized values
- platform/graphics/win/QTMovieWin.cpp: (QTMovieWin::rate): (QTMovieWin::setRate): (QTMovieWin::setVolume): (QTMovieWin::getNaturalSize):
- 12:35 PM Changeset in webkit [32010] by
-
- 2 edits in trunk/WebCore
2008-04-17 Marco Barisione <marco.barisione@collabora.co.uk>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=18335
Pango font backend unable to display japanese properly
Different fonts can have different glyph indices, so we need to pass
the right font when retrieving a glyph index.
- platform/graphics/gtk/GlyphPageTreeNodePango.cpp: (WebCore::pango_font_get_glyph): Temporarily override the font in the PangoAnalysis passed to pango_shape.
- 12:25 PM Changeset in webkit [32009] by
-
- 2 edits in trunk/WebKitTools
2008-04-17 Mario Bensi <mbensi@pleyo.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=18543
DumpRenderTree gtk freeze
fix DumpRenderTree gtk freeze
- DumpRenderTree/gtk/DumpRenderTree.cpp: (dump):
- 12:21 PM Changeset in webkit [32008] by
-
- 2 edits in trunk
2008-04-17 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=17865
[Gtk] Improve detection of jpeglib and glib tools
Improve detecting jpeglib and glib tools
- configure.ac: Throw an error if the dependencies above are currently not installed
- 12:10 PM Changeset in webkit [32007] by
-
- 4 edits in trunk/WebCore
2008-04-17 Anders Carlsson <andersca@apple.com>
According to Sam and David, it's "topLevel", not "toplevel".
- loader/DocumentLoader.cpp: (WebCore::DocumentLoader::topLevelApplicationCache):
- loader/DocumentLoader.h:
- loader/appcache/DOMApplicationCache.cpp: (WebCore::DOMApplicationCache::associatedCache):
- 12:05 PM Changeset in webkit [32006] by
-
- 9 edits in trunk/WebCore
2008-04-17 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Add DOMApplicationCache implementation.
- dom/EventNames.h: Add new event names.
- dom/EventTarget.cpp: (WebCore::EventTarget::toDOMApplicationCache):
- dom/EventTarget.h: Add EventTarget conversion method.
- loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::): (WebCore::ApplicationCacheGroup::status): (WebCore::ApplicationCacheGroup::update): (WebCore::ApplicationCacheGroup::newestCache): Add more stubs.
- loader/appcache/DOMApplicationCache.cpp:
- loader/appcache/DOMApplicationCache.h:
- page/DOMWindow.cpp: (WebCore::DOMWindow::clear): (WebCore::DOMWindow::applicationCache):
- page/DOMWindow.h: (WebCore::DOMWindow::optionalApplicationCache): Add ApplicationCache member.
- 11:49 AM Changeset in webkit [32005] by
-
- 2 edits in trunk/WebKit/gtk
2008-04-17 Daniele Metilli <daniele.metilli@gmail.com>
Reviewed by Eric.
Fixed a typo in the copyright header.
- webkit/webkitprivate.h:
- 11:44 AM Changeset in webkit [32004] by
-
- 2 edits in trunk/WebCore
2008-04-17 Anders Carlsson <andersca@apple.com>
Build fix.
- WebCore.vcproj/WebCore.vcproj:
- 10:50 AM Changeset in webkit [32003] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Added some ASSERTs to document codegen failures in
run-javascriptcore-tests.
For all tests, program-level codegen now either succeeds, or fails with
an ASSERT.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::addVar): (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::newTemporary): (KJS::CodeGenerator::newLabel):
- 10:26 AM Changeset in webkit [32002] by
-
- 3 edits4 adds in trunk
WebCore:
2008-04-17 Dean Jackson <dino@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5849968> translate method should have Y=0 when only X is present
Test: fast/css/transform-default-parameter.html
- css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): translate function with only X parameter now leaves the Y parameter as zero.
LayoutTests:
2008-04-17 Dean Jackson <dino@apple.com>
Reviewed by Hyatt.
Test for <rdar://problem/5849968> translate method should have Y=0 when only X is present
- fast/css/transform-default-parameter.html: Added.
- platform/mac/fast/css/transform-default-parameter-expected.checksum: Added.
- platform/mac/fast/css/transform-default-parameter-expected.png: Added.
- platform/mac/fast/css/transform-default-parameter-expected.txt: Added.
- 10:09 AM Changeset in webkit [32001] by
-
- 4 edits in trunk/WebCore
2008-04-17 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Add plumbing for associating document loaders with application caches.
- loader/DocumentLoader.cpp: (WebCore::DocumentLoader::DocumentLoader): (WebCore::DocumentLoader::~DocumentLoader): (WebCore::DocumentLoader::originalURL): (WebCore::DocumentLoader::requestURL): (WebCore::DocumentLoader::responseURL): (WebCore::DocumentLoader::responseMIMEType): (WebCore::DocumentLoader::setCandidateApplicationCacheGroup): (WebCore::DocumentLoader::setApplicationCache): (WebCore::DocumentLoader::toplevelApplicationCache):
- loader/DocumentLoader.h: (WebCore::DocumentLoader::candidateApplicationCacheGroup): (WebCore::DocumentLoader::applicationCache):
- loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
- 9:04 AM Changeset in webkit [32000] by
-
- 2 edits in trunk/JavaScriptCore
Reviewed by Maciej.
Thread static data destructors are not guaranteed to be called in any particular order;
turn ThreadSpecific into a phoenix-style singleton to avoid accessing freed memory when
deleted objects are interdependent (e.g. CommonIdentifiers and internal identifier tables).
No change on SunSpider.
- wtf/ThreadSpecific.h: (WTF::ThreadSpecific::Data::Data): (WTF::::get): (WTF::::set): (WTF::::destroy):
- 8:31 AM Changeset in webkit [31999] by
-
- 2 edits in trunk/WebCore
Fix Bug 18544: REGRESSION (r31951): Two fast/xsl tests crash
r31951 changed XSLTProcessor::parseErrorFunc to expect a Console* as
the context parameter. The caller in XSLTProcessor was changed, but
the one in XSLStyleSheet was missed.
Reviewed by Alexey Proskuryakov.
- xml/XSLStyleSheet.cpp: (WebCore::XSLStyleSheet::parseString): Pass the Console as the context to parseErrorFunc.
- 8:11 AM Changeset in webkit [31998] by
-
- 2 edits in trunk/WebCore
Windows build fix after r31981
- dom/Document.idl: Omit getCSSCanvasContext from the COM bindings.
- 4:56 AM Changeset in webkit [31997] by
-
- 2 edits in trunk/WebCore
Ariya Hidayat <ariya.hidayat@trolltech.com>
Implemented getFileModificationTime and pathGetFileName for the Qt port.
- 1:21 AM Changeset in webkit [31996] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed another case of a dst register being an unreferenced temporary
(caused an ASSERT when running the full sunspider suite).
- kjs/nodes.cpp: (KJS::CaseBlockNode::emitCodeForBlock):
- 1:07 AM Changeset in webkit [31995] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- add documentation (and meaningful parameter names) for arithmetic and bitwise binary ops
- VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitMul): (KJS::CodeGenerator::emitDiv): (KJS::CodeGenerator::emitMod): (KJS::CodeGenerator::emitSub): (KJS::CodeGenerator::emitLeftShift): (KJS::CodeGenerator::emitRightShift): (KJS::CodeGenerator::emitUnsignedRightShift): (KJS::CodeGenerator::emitBitAnd): (KJS::CodeGenerator::emitBitXOr): (KJS::CodeGenerator::emitBitOr):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- VM/Opcode.h:
- kjs/nodes.cpp: (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::emitReadModifyAssignment): (KJS::ReadModifyResolveNode::emitCode):
- 12:56 AM Changeset in webkit [31994] by
-
- 17 edits in branches/squirrelfish/JavaScriptCore
Exception checks for toNumber in op_pre_inc
Reviewed by Geoff
This is somewhat more convoluted than the simple hadException checks
we currently use. Instead we use special toNumber conversions that
select between the exception and ordinary vPC. This allows us to
remove any branches in the common case (incrementing a number).
- 12:44 AM Changeset in webkit [31993] by
-
- 2 edits in trunk/WebCore
2008-04-17 Mark Rowe <mrowe@apple.com>
Fix the non-Mac builds that I broke with my Mac build fix.
- css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Explicitly use the size_t version of max to avoid making assumptions about sizeof(size_t).
- 12:22 AM Changeset in webkit [31992] by
-
- 6 edits in trunk
2008-04-17 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Dan Bernstein.
Fix the Mac build.
- css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Update to use size_t in place of unsigned.
- dom/NamedNodeMap.h: Ditto.
- page/AccessibilityObject.h: Forward-declare AccessibilityObjectWrapper in the non-Objective-C case too.
2008-04-17 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Dan Bernstein.
Fix the Mac build.
- WebView/WebFrame.mm: Define HAVE_ACCESSIBILITY before including AccessibilityObject.h and AXObjectCache.h to get things building for now. This comes from config.h in WebCore but we don't have an equivalent in WebKit so we'll need to work out the correct place for this to live going forward.
Apr 16, 2008:
- 10:56 PM Changeset in webkit [31991] by
-
- 2 edits in trunk/JavaScriptCore
2008-04-15 Srinivas Rao. M Hamse <msrinirao@gmail.com>
Reviewed by Maciej Stachowiak.
- gcc 3.x build fix
- kjs/nodes.h: CallerType definition made public for gcc 3.x compilation
- 9:57 PM Changeset in webkit [31990] by
-
- 2 edits2 adds in trunk/WebKit/win
Add AccessibilityObject wrapper class to WebKit.
- 9:56 PM Changeset in webkit [31989] by
-
- 4 edits in trunk/WebCore
Fix size_t -> unsigned conversion warnings.
- 9:56 PM Changeset in webkit [31988] by
-
- 3 edits in trunk/WebCore
Add some methods to determine the AccessibilityObject state.
- 9:55 PM Changeset in webkit [31987] by
-
- 4 edits1 add in trunk/WebCore
Add AccessibilityObjectWrapper on Windows.
- 9:54 PM Changeset in webkit [31986] by
-
- 4 edits1 add in trunk/WebCore
Add AXObjectCache to Windows.
- 9:54 PM Changeset in webkit [31985] by
-
- 2 edits in trunk/WebCore
Fix path to AXObjectCache.h on Windows.
- 9:41 PM Changeset in webkit [31984] by
-
- 1 edit in trunk/WebCore/ChangeLog
2008-04-16 Brady Eidson <beidson@apple.com>
Fix ChangeLog typo
- 9:40 PM Changeset in webkit [31983] by
-
- 12 edits4 adds1 delete in trunk/WebCore
2008-04-16 Brady Eidson <beidson@apple.com>
Reviewed by Darin Adler
Merge the StorageAreaClient into the StorageArea class itself as pure virtual methods.
Add "LocalStorageArea" add "SessionStorageArea" implementations, and have SessionStorage
and LocalStorage instantiate the appropriate type of StorageArea object.
This purpose of this change is because while adding the persistent store to LocalStorage,
it became obvious that the client approach wasn't scaling well. Additionally, a StorageArea
backing a local storage area required vastly different data members compared to one backing
a session storage area.
This will be much cleaner going forward.
- GNUmakefile.am:
- WebCore.pro:
- WebCore.vcproj/WebCore.vcproj:
- WebCore.xcodeproj/project.pbxproj:
- WebCoreSources.bkl:
- storage/LocalStorage.cpp: (WebCore::LocalStorage::storageArea):
- storage/LocalStorage.h:
- storage/LocalStorageArea.cpp: Added. (WebCore::LocalStorageArea::LocalStorageArea): (WebCore::LocalStorageArea::itemChanged): (WebCore::LocalStorageArea::itemRemoved): (WebCore::LocalStorageArea::dispatchStorageEvent):
- storage/LocalStorageArea.h: Added. (WebCore::LocalStorageArea::create):
- storage/SessionStorage.cpp: (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea):
- storage/SessionStorage.h:
- storage/SessionStorageArea.cpp: Added. (WebCore::SessionStorageArea::copy): (WebCore::SessionStorageArea::SessionStorageArea): (WebCore::SessionStorageArea::itemChanged): (WebCore::SessionStorageArea::itemRemoved): (WebCore::SessionStorageArea::dispatchStorageEvent):
- storage/SessionStorageArea.h: Added. (WebCore::SessionStorageArea::create): (WebCore::SessionStorageArea::page):
- storage/StorageArea.cpp: (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::storageMap):
- storage/StorageArea.h:
- storage/StorageAreaClient.h: Removed.
- 9:15 PM Changeset in webkit [31982] by
-
- 1 edit in trunk/LayoutTests/fast/dom/Window/window-properties-expected.txt
Update window properties test for the new DOM document method.
- 9:13 PM Changeset in webkit [31981] by
-
- 36 edits6 adds in trunk
2008-04-16 David Hyatt <hyatt@apple.com>
Add support for the ability to draw directly into CSS images using CanvasRenderingContext2D.
Reviewed by olliej
Added fast/canvas/canvas-bg.html
- GNUmakefile.am:
- WebCore.pro:
- WebCore.vcproj/WebCore.vcproj:
- WebCore.xcodeproj/project.pbxproj:
- WebCoreSources.bkl:
- css/CSSCanvasValue.cpp: Added. (WebCore::CSSCanvasValue::~CSSCanvasValue): (WebCore::CSSCanvasValue::cssText): (WebCore::CSSCanvasValue::canvasChanged): (WebCore::CSSCanvasValue::canvasResized): (WebCore::CSSCanvasValue::fixedSize): (WebCore::CSSCanvasValue::element): (WebCore::CSSCanvasValue::image):
- css/CSSCanvasValue.h: Added. (WebCore::CSSCanvasValue::CSSCanvasValue): (WebCore::CSSCanvasValue::isFixedSize): (WebCore::CSSCanvasValue::setName):
- css/CSSGradientValue.cpp:
- css/CSSGradientValue.h:
- css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::generatedImage):
- css/CSSImageGeneratorValue.h: (WebCore::CSSImageGeneratorValue::isFixedSize): (WebCore::CSSImageGeneratorValue::fixedSize):
- css/CSSParser.cpp: (WebCore::CSSParser::parseContent): (WebCore::CSSParser::parseBackgroundImage): (WebCore::CSSParser::parseBorderImage): (WebCore::CSSParser::parseCanvas):
- css/CSSParser.h:
- dom/Document.cpp: (WebCore::Document::getCSSCanvasContext): (WebCore::Document::getCSSCanvasElement):
- dom/Document.h:
- dom/Document.idl:
- html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::HTMLCanvasElement): (WebCore::HTMLCanvasElement::reset):
- html/HTMLCanvasElement.h: (WebCore::HTMLCanvasElement::setSize):
- rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::imageChanged):
- rendering/RenderBox.h:
- rendering/RenderImage.cpp: (WebCore::RenderImage::imageChanged):
- rendering/RenderImage.h: (WebCore::RenderImage::imagePtr): (WebCore::RenderImage::intrinsicSizeChanged):
- rendering/RenderImageGeneratedContent.h: (WebCore::RenderImageGeneratedContent::imageSize): (WebCore::RenderImageGeneratedContent::imagePtr):
- rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::layout): (WebCore::RenderListMarker::imageChanged): (WebCore::RenderListMarker::calcPrefWidths): (WebCore::RenderListMarker::getRelativeMarkerRect):
- rendering/RenderListMarker.h:
- rendering/RenderObject.cpp: (WebCore::RenderObject::paintBorderImage): (WebCore::RenderObject::imageChanged):
- rendering/RenderObject.h: (WebCore::RenderObject::imageChanged):
- rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::imageChanged):
- rendering/RenderSVGImage.h:
- rendering/RenderStyle.cpp: (WebCore::StyleCachedImage::imageSize): (WebCore::StyleGeneratedImage::imageSize):
- rendering/RenderStyle.h: (WebCore::StyleCachedImage::data): (WebCore::StyleGeneratedImage::StyleGeneratedImage): (WebCore::StyleGeneratedImage::data): (WebCore::StyleGeneratedImage::imageHasRelativeWidth): (WebCore::StyleGeneratedImage::imageHasRelativeHeight): (WebCore::StyleGeneratedImage::usesImageContainerSize):
- rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::imageChanged):
- rendering/RenderTableCol.h:
- rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::imageChanged):
- rendering/RenderTableRow.h:
- rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::imageChanged):
- rendering/RenderTableSection.h:
- 7:02 PM Changeset in webkit [31980] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- ensure that activations are kept in a register to protect them from GC
Also renamed OptionalCalleeScopeChain constant to OptionalCalleeActivation, since
that is what is now kept there, and there is no more need to keep the scope chain in
the register file.
- VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::scopeChainForCall):
- VM/Machine.h: (KJS::Machine::):
- 6:47 PM Changeset in webkit [31979] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Made "this" work in program code / global scope.
The machine can initialize "this" prior to execution because it knows
that, for program code, "this" is always stored in lr1.
- VM/Machine.cpp: (KJS::Machine::execute):
- VM/Machine.h: (KJS::Machine::):
- kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
- 6:27 PM Changeset in webkit [31978] by
-
- 4 edits in trunk/WebCore
2008-04-16 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
Add manifest parser.
- loader/appcache/ManifestParser.cpp: (WebCore::): (WebCore::parseManifest):
- loader/appcache/ManifestParser.h:
- platform/text/CharacterNames.h:
- 6:23 PM Changeset in webkit [31977] by
-
- 3 edits2 adds in trunk
WebCore:
2008-04-16 Darin Adler <Darin Adler>
Reviewed by Mitz.
- fix <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1): Safari does not find words containing ß (German letter sharp-s)
Test: fast/text/find-case-folding.html
- platform/text/StringImpl.cpp: (WebCore::StringImpl::foldCase): Pass the folded length to foldCase rather than the original string length. Without this, we get an error code every time.
LayoutTests:
2008-04-16 Darin Adler <Darin Adler>
Earlier version reviewed by Mitz.
- test for <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1): Safari does not find words containing ß (German letter sharp-s)
- fast/text/find-case-folding-expected.txt: Added.
- fast/text/find-case-folding.html: Added.
- 5:51 PM Changeset in webkit [31976] by
-
- 2 edits in trunk/WebCore
2008-04-16 Anders Carlsson <andersca@apple.com>
Fix build.
- loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource):
- 5:50 PM Changeset in webkit [31975] by
-
- 3 edits in trunk/WebCore
2008-04-16 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
Add new protocolHostAndPortAreEqual function.
- platform/KURL.cpp: (WebCore::KURL::host): (WebCore::KURL::setHost): (WebCore::KURL::setHostAndPort): (WebCore::protocolHostAndPortAreEqual):
- platform/KURL.h: (WebCore::KURL::hostStart):
- 5:22 PM Changeset in webkit [31974] by
-
- 3 edits in trunk/WebCore
2008-04-16 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Fix some style nits.
- loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource): (WebCore::ApplicationCache::removeResource): (WebCore::ApplicationCache::dump):
- loader/appcache/ApplicationCacheGroup.h:
- 5:17 PM Changeset in webkit [31973] by
-
- 4 edits in trunk/WebCore
2008-04-16 Anders Carlsson <andersca@apple.com>
Reviewed by Brady and Sam.
Add ApplicationCache implementation. Stub out ApplicationCacheGroup methods
needed by ApplicationCache.
- loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::~ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource): (WebCore::ApplicationCache::removeResource): (WebCore::ApplicationCache::resourceForURL): (WebCore::ApplicationCache::resourceForRequest): (WebCore::ApplicationCache::numDynamicEntries): (WebCore::ApplicationCache::dynamicEntry): (WebCore::ApplicationCache::addDynamicEntry): (WebCore::ApplicationCache::removeDynamicEntry): (WebCore::ApplicationCache::setOnlineWhitelist): (WebCore::ApplicationCache::isURLInOnlineWhitelist): (WebCore::ApplicationCache::dump):
- loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::create): (WebCore::ApplicationCache::manifestResource): (WebCore::ApplicationCache::group): (WebCore::ApplicationCache::begin): (WebCore::ApplicationCache::end):
- loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::manifestURL): (WebCore::ApplicationCacheGroup::cacheDestroyed):
- 4:34 PM Changeset in webkit [31972] by
-
- 5 edits in trunk/WebCore
Fix Bug 18505: REGRESSION: Search is disabled and not functional
Reviewed by Tim Hatcher.
- page/inspector/ResourcesPanel.js: (WebInspector.ResourcesPanel.sourceFrameForResource): Added.
- page/inspector/inspector.css: Added back rules for the search field that were removed in r31736.
- page/inspector/inspector.html:
- Removed the disabled attribute from the search field
- Added back the #searchResults and #searchResultsResizer divs which were removed in r31736
- page/inspector/inspector.js:
(WebInspector.set showingSearchResults): Updated for class rename
panels -> main-panels.
(WebInspector.loaded): Added back the mousedown event listener for the
search results resizer that was removed in r31736.
(WebInspector.searchResultsResizerDrag): Updated for class rename
panels -> main-panels.
(WebInspector.performSearch):
- Changed to use sourceFrameForResource
- Changed to use showResource
- Changed to save/restore the focused element around the setting of the current panel
- Changed to get the source document from the match range instead of by crawling back up to the source view
- Changed to bind the onselect handlers to this so that we can access the Elements/Resources panels
- 4:25 PM Changeset in webkit [31971] by
-
- 25 edits in trunk
2008-04-16 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig
Change ThreadSafeShared to act like RefCounted by starting out with a single ref by default
- wtf/Threading.h: (WTF::ThreadSafeShared::ThreadSafeShared):
WebCore:
2008-04-16 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig
Changing ThreadSafeShared to start with a ref count of 1, so updating all users to
adoptRef() that initial reference.
- bindings/js/JSCustomSQLStatementCallback.h: (WebCore::JSCustomSQLStatementCallback::create):
- bindings/js/JSCustomSQLStatementErrorCallback.h: (WebCore::JSCustomSQLStatementErrorCallback::create):
- bindings/js/JSCustomSQLTransactionCallback.h: (WebCore::JSCustomSQLTransactionCallback::create):
- bindings/js/JSCustomSQLTransactionErrorCallback.h: (WebCore::JSCustomSQLTransactionErrorCallback::create):
- bindings/js/JSDatabaseCustom.cpp: (WebCore::JSDatabase::changeVersion): (WebCore::JSDatabase::transaction):
- bindings/js/JSSQLTransactionCustom.cpp: (WebCore::JSSQLTransaction::executeSql):
- dom/Document.cpp: (WebCore::Document::databaseThread):
- platform/SecurityOrigin.cpp: (WebCore::SecurityOrigin::create):
- platform/sql/SQLiteAuthorizer.h: (WebCore::SQLiteAuthorizer::create): (WebCore::SQLiteAuthorizer::SQLiteAuthorizer):
- storage/ChangeVersionWrapper.cpp: (WebCore::ChangeVersionWrapper::performPreflight): (WebCore::ChangeVersionWrapper::performPostflight):
- storage/ChangeVersionWrapper.h: (WebCore::ChangeVersionWrapper::create):
- storage/Database.cpp: (WebCore::Database::openAndVerifyVersion): (WebCore::Database::markAsDeletedAndClose): (WebCore::Database::changeVersion): (WebCore::Database::transaction): (WebCore::Database::scheduleTransaction): (WebCore::Database::scheduleTransactionStep): (WebCore::Database::tableNames):
- storage/DatabaseAuthorizer.h: (WebCore::DatabaseAuthorizer::create):
- storage/DatabaseTask.h: (WebCore::DatabaseOpenTask::create): (WebCore::DatabaseCloseTask::create): (WebCore::DatabaseTransactionTask::create): (WebCore::DatabaseTableNamesTask::create):
- storage/DatabaseThread.cpp: (WebCore::DatabaseThread::scheduleTask): Change to take a PassRefPtr instead of raw (WebCore::DatabaseThread::scheduleImmediateTask): Ditto
- storage/DatabaseThread.h: (WebCore::DatabaseThread::create):
- storage/SQLError.h: (WebCore::SQLError::create): (WebCore::SQLError::SQLError):
- storage/SQLResultSet.h: (WebCore::SQLResultSet::create):
- storage/SQLStatement.cpp: (WebCore::SQLStatement::create): (WebCore::SQLStatement::execute): (WebCore::SQLStatement::setDatabaseDeletedError): (WebCore::SQLStatement::setVersionMismatchedError): (WebCore::SQLStatement::setFailureDueToQuota):
- storage/SQLStatement.h:
- storage/SQLTransaction.cpp: (WebCore::SQLTransaction::create): (WebCore::SQLTransaction::executeSQL): (WebCore::SQLTransaction::openTransactionAndPreflight): (WebCore::SQLTransaction::deliverTransactionCallback): (WebCore::SQLTransaction::handleCurrentStatementError): (WebCore::SQLTransaction::deliverStatementCallback): (WebCore::SQLTransaction::postflightAndCommit):
- storage/SQLTransaction.h:
- 4:23 PM Changeset in webkit [31970] by
-
- 3 edits in trunk/WebCore
2008-04-16 Anders Carlsson <andersca@apple.com>
Reviewed by Adam and Brady.
Add implementation of ApplicationCacheResource.
- loader/appcache/ApplicationCacheResource.cpp: (WebCore::ApplicationCacheResource::ApplicationCacheResource): (WebCore::ApplicationCacheResource::dumpType):
- loader/appcache/ApplicationCacheResource.h: (WebCore::ApplicationCacheResource::): (WebCore::ApplicationCacheResource::create): (WebCore::ApplicationCacheResource::type): (WebCore::ApplicationCacheResource::addType):
- 3:40 PM Changeset in webkit [31969] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed a codegen bug when returning from inside a dynamic scope (a with
or catch block): we need to pop any dynamic scope(s) that have been
added so op_ret can find the activation object at the top of the scope
chain.
- kjs/nodes.cpp: (KJS::ReturnNode::emitCode): If we're returning from inside a dynamic scope, emit a jmp_scopes to take care of popping any dynamic scope(s) and then branching to the return instruction.
- 3:25 PM Changeset in webkit [31968] by
-
- 5 edits in branches/squirrelfish/JavaScriptCore
2008-04-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- document the add and get_prop_id opcodes
In addition to adding documentation in comments, I changed
references to register IDs or indices relating to these opcodes to
have meaningful names instead of r0 r1 r2.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitAdd):
- VM/CodeGenerator.h:
- VM/Machine.cpp: (KJS::Machine::privateExecute):
- kjs/nodes.cpp: (KJS::DotAccessorNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::AddNode::emitCode): (KJS::ReadModifyDotNode::emitCode):
- 2:47 PM Changeset in webkit [31967] by
-
- 4 edits in trunk/WebCore
Fixes an issue where the source for a resource that had errors would
not be shown because the view was created before the resource load
finished. The right view is now created, even if the resource isn't
finished. The SourceView just makes sure to not load the source until
the resource is finished. Only if the category changes, does the view
need to be recreated.
Reviewed by Adam Roben.
- page/inspector/Resource.js:
(WebInspector.Resource.prototype.set category): Call recreateViewForResourceIfNeeded.
- page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
Added. Tries to make a new view, if the view is the same prototype of the
previous view, return early. If they differ, close and detach the old view
and associate the resource with the new view. Calling updateErrorsAndWarnings
is needed, because the errors and warnings that might have been added to the
previous view will be lost, so make the tree element match.
(WebInspector.Resource.prototype._createResourceView): Always create a view
that matches the resource category. Ignore the loading and failed status.
- page/inspector/SourceView.js:
(WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Don't setup the
frame if the resource hasn't finished or if the load failed.
- 2:46 PM Changeset in webkit [31966] by
-
- 2 edits in trunk/WebCore
Adds a console formatter for Error objects. So typing a expression in the
console that ends in an exception will print meaningful info. Also calling
console.{log,error,warn,info} with an error object will output nicely.
Reviewed by Adam Roben.
- page/inspector/Console.js:
(WebInspector.Console.prototype._formaterror): Added. Formats an error
object by showing it like other exceptions, with a clickable file URL.
- 2:46 PM Changeset in webkit [31965] by
-
- 2 edits in trunk/WebCore
Refactors code that updates the errors and warnings count in the
resources sidebar so other functions can easily trigger updates.
Reviewed by Adam Roben.
- page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.addMessageToResource): Call updateErrorsAndWarnings.
Removes code that updates the bubbleText and class names.
(WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
(WebInspector.ResourceSidebarTreeElement.prototype.updateErrorsAndWarnings):
Added. Updates the bubbleText and adds or removes the class names
depending on if the values are zero.
- 2:41 PM Changeset in webkit [31964] by
-
- 6 edits4 adds in trunk
WebCore:
2008-04-16 Antti Koivisto <Antti Koivisto>
Reviewed by Alexey.
Fix <rdar://problem/5863728>
REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)
Parse the encoding attribute in PreloadScanner.
Test: fast/encoding/script-preload-encoding.html
- html/PreloadScanner.cpp: (WebCore::PreloadScanner::processAttribute): (WebCore::PreloadScanner::emitTag): (WebCore::PreloadScanner::emitCSSRule):
- html/PreloadScanner.h:
- loader/DocLoader.cpp: (WebCore::DocLoader::preload):
- loader/DocLoader.h:
LayoutTests:
2008-04-16 Antti Koivisto <Antti Koivisto>
Reviewed by Alexey.
Test for <rdar://problem/5863728>
REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)
- fast/encoding/resources/utf-8.css: Added.
- fast/encoding/resources/utf-8.js: Added.
- fast/encoding/preload-encoding-expected.txt: Added.
- fast/encoding/preload-encoding.html: Added.
- 2:03 PM Changeset in webkit [31963] by
-
- 15 edits1 add in trunk/WebCore
2008-04-16 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and
fix typos in the #if line.
- DerivedSources.make:
- WebCore.vcproj/WebCore.vcproj:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
- loader/appcache/ApplicationCache.cpp:
- loader/appcache/ApplicationCache.h:
- loader/appcache/ApplicationCacheGroup.cpp:
- loader/appcache/ApplicationCacheGroup.h:
- loader/appcache/ApplicationCacheResource.cpp:
- loader/appcache/ApplicationCacheResource.h:
- loader/appcache/DOMApplicationCache.cpp:
- loader/appcache/DOMApplicationCache.h:
- loader/appcache/DOMApplicationCache.idl:
- loader/appcache/ManifestParser.cpp:
- loader/appcache/ManifestParser.h:
- 1:58 PM Changeset in webkit [31962] by
-
- 16 edits in trunk
2008-04-16 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
- To keep the behavior of the WebKit and JavaScriptCore API's the same, we need to hide the fact that the global object and the window object are no longer the same thing, and the the global object now changes on navigations. To do this, only the wrapper should ever be exposed. This fixes the two remaining spots where the internal global object is exposed, the windowScriptObject returned from [WebFrame windowObject] and the object return by calling JSContextGetGlobalObject on [WebFrame globalContext].
- API/JSContextRef.cpp: (JSContextGetGlobalObject): This is a bit of a hack, this returns the "this" representation of the globalObject which will be the WrapperWindow for WebCore and the globalObject for non-WebCore.
- API/JSObjectRef.cpp: (JSObjectSetProperty): Call the new putWithAttributes method instead of relying on lower-level calls. This is needed so that the window wrapper can forward the calls.
- JavaScriptCore.exp:
- kjs/Activation.h:
- kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::putWithAttributes):
- kjs/JSGlobalObject.h:
- kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTablePutWithAttributes):
- kjs/function.cpp: (KJS::ActivationImp::putWithAttributes):
- kjs/nodes.cpp: (KJS::ConstDeclNode::handleSlowCase): (KJS::ConstDeclNode::evaluateSingle): (KJS::EvalNode::processDeclarations):
- kjs/object.cpp: (KJS::JSObject::putWithAttributes):
- kjs/object.h: Rename initializeVariable to putWithAttributes and move it down to JSObject so it can be used for JSObjectSetProperty.
WebCore:
2008-04-16 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
- To keep the behavior of the WebKit and JavaScriptCore API's the same, we need to hide the fact that the global object and the window object are no longer the same thing, and the the global object now changes on navigations. To do this, only the wrapper should ever be exposed. This fixes the two remaining spots where the internal global object is exposed, the windowScriptObject returned from [WebFrame windowObject] and the object return by calling JSContextGetGlobalObject on [WebFrame globalContext]
- bindings/js/JSDOMWindowWrapper.cpp: (WebCore::JSDOMWindowWrapper::putWithAttributes):
- bindings/js/JSDOMWindowWrapper.h: Forward this new method so that JSObjectSetProperty doesn't set properties on the wrapper.
- page/mac/FrameMac.mm: (WebCore::Frame::windowScriptObject): Return the wrapper instead of the global object.
- 1:53 PM Changeset in webkit [31961] by
-
- 13 edits in trunk/WebCore
2008-04-16 David Hyatt <hyatt@apple.com>
Eliminate the paintBuffer and drawImage(ImageBuffer*) methods from GraphicsContext* in favor of just
snagging an Image* from the ImageBuffer and drawing that instead.
Enhance canvas with a CanvasObserver so that notifications of dirtying or resizing can be tracked by
a consumer.
Reviewed by olliej
- html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage):
- html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::HTMLCanvasElement): (WebCore::HTMLCanvasElement::willDraw): (WebCore::HTMLCanvasElement::reset): (WebCore::HTMLCanvasElement::paint):
- html/HTMLCanvasElement.h: (WebCore::CanvasObserver::~CanvasObserver): (WebCore::HTMLCanvasElement::setSize): (WebCore::HTMLCanvasElement::setObserver):
- platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawImage): (WebCore::GraphicsContext::drawTiledImage):
- platform/graphics/GraphicsContext.h:
- platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::clearImage):
- platform/graphics/cairo/GraphicsContextCairo.cpp:
- platform/graphics/cg/GraphicsContextCG.cpp:
- platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::draw): (WebCore::Image::drawPattern):
- platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::createFrameAtIndex):
- platform/graphics/qt/GraphicsContextQt.cpp:
- platform/graphics/wx/GraphicsContextWx.cpp:
- 1:32 PM Changeset in webkit [31960] by
-
- 2 edits in trunk/WebCore
2008-04-16 Steve Falkenburg <sfalken@apple.com>
Improve timer latency/resolution.
The primary timing mechanism is now CreateTimerQueueTimer, with a PostMessage from
the callback proc. This event will be delivered sooner than if we used SetTimer(),
since it is higher priority than other messages.
If there is an input message pending, we'll use we SetTimer() based timers to avoid
starving user input.
Don't call PostMessage immediately on all timers < 10ms. Only call immediately if
timer is already expired. This avoids the case where no timers would be processed,
causing the timer to be re-posted via the slower SetTimer method.
Don't call PostMessage immediately if there's a pending WM_PAINT, since
we don't want to starve all paints when bombarded with a continuous stream of low
duration timers.
Removed reentrancy check, since we're now looking for specific starvation cases,
and will typically defer non-expired timers through reateTimerQueueTimer.
The reason Windows wouldn't starve paints in favor of timers with the old code:
When we went to reset the timer when it fired, the timer reset code treated this as a
reentrant timer, causing us to hit the slow SetTimer code rather than calling PostMessage,
even for timers expiring in < 10ms. I corrected that, exposing the paint starvation problem.
Use timeBeginPeriod/timeEndPeriod to improve resolution of system timers.
Limit this resolution change to within 20ms of the last high resolution timer request.
Corrected GetQueueStatus to check for specific input (and paint) messages rather than
checking QS_ALLINPUT. Contrary to its name, QS_ALLINPUT actually indicates interest
in ALL queued messages, not just input messages.
Fix SetTimer/KillTimer calls to pass our window handle.
Reviewed by Brady.
- platform/win/SharedTimerWin.cpp: (WebCore::): (WebCore::TimerWindowWndProc): (WebCore::queueTimerProc): (WebCore::setSharedTimerFireTime): (WebCore::stopSharedTimer):
- 1:22 PM Changeset in webkit [31959] by
-
- 2 edits in trunk/WebCore
Fix console-log-formatting to truly test formatting an undefined value
Exceptions thrown by the test will also now be shown as errors.
Reviewed by Tim Hatcher.
- manual-tests/inspector/console-log-formatting.html: (test): Use console.error to report exceptions. (runTests): Use window.noSuchVariable instead of just noSuchVariable to avoid an exception.
- 12:47 PM Changeset in webkit [31958] by
-
- 2 edits in trunk/WebCore
2008-04-16 Anatoli Papirovski <apapirovski@mac.com>
Reviewed by David.
Optimized the calculation of background-size.
- rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize):
- 12:34 PM Changeset in webkit [31957] by
-
- 2 edits2 adds in trunk/WebCore
Fix Bug 17228: console.{log,warn,info,error} should support format strings, variable arguments
<https://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>
Reviewed by Tim Hatcher.
Test: manual-tests/inspector/console-log-formatting.html
- page/inspector/Console.js: (WebInspector.ConsoleMessage): Pass any extra arguments down to _format. (WebInspector.ConsoleMessage._format): This method constructs this.formattedMessage. We treat the first parameter as a format string. Any parameters that have not been used after substituting into the format string are concatenated together, separated by spaces. (WebInspector.ConsoleMessage.toMessageElement): Updated to use this.formattedMessage. (WebInspector.ConsoleMessage.toString): Ditto.
- 12:34 PM Changeset in webkit [31956] by
-
- 2 edits in trunk/WebCore
Make String.format return an array of unused substitutions
String.format now returns an object with two properties:
formattedResult and unusedSubstitutions.
Reviewed by Tim Hatcher.
- page/inspector/utilities.js: (String.vsprintf): Updated for changes to String.format. We throw away the array of unused substitutions. (String.format): Changed to keep track of which substitutions are used when formatting. We then return both the formatted result and the array of unused substitutions.
- 12:34 PM Changeset in webkit [31955] by
-
- 2 edits in trunk/WebCore
Generalize String.format some more
String.format now takes an initial value and an append function which
it uses to build the result. Each time a token is processed,
append(valueSoFar, newValue) is called.
Reviewed by Tim Hatcher.
- page/inspector/utilities.js: (String.vsprintf): Pass the empty string for the initial value, and a function that concatenates two strings as the append function. (String.format): Use initialValue and append to build the result instead of only working with strings.
- 12:20 PM Changeset in webkit [31954] by
-
- 2 edits in trunk/WebCore
Add String.format
String.format is a more generic form of String.vsprintf that takes a
set of formatter functions, one for each supported format specifier.
Each formatter function is passed the relevant token and substitution
value, and returns the formatted result.
Reviewed by Tim Hatcher.
- page/inspector/utilities.js: (String.standardFormatters): Added. (String.vsprintf): Changed to call through to String.format. (String.format): Added. Most of the code came from String.vsprintf, except that we use the passed-in formatters to format the substitutions rather than hard-coding how to handle each format specifier.
- 12:19 PM Changeset in webkit [31953] by
-
- 2 edits in trunk/WebCore
Refactor String.vsprintf to separate tokenizing and substituting
This will eventually be useful for the various console methods that
take a format string.
Reviewed by Tim Hatcher.
- page/inspector/utilities.js: (String.tokenizeFormatString): Added. This uses the format parsing code from String.vsprintf but just returns an array of "string" and "specifier" tokens. (String.vsprintf): Now calls String.tokenizeFormatString and processes the tokens one at a time.
- 12:19 PM Changeset in webkit [31952] by
-
- 6 edits in trunk/WebCore
Pass all arguments to console.{log,warn,info,error} into the Inspector's JS
Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>
We don't use the extra arguments yet.
Reviewed by Tim Hatcher.
- page/Console.cpp: (WebCore::Console::error): Pass the arguments list to InspectorController. (WebCore::Console::info): Ditto. (WebCore::Console::log): Ditto. (WebCore::Console::warn): Ditto.
- page/InspectorController.cpp: (WebCore::ConsoleMessage::ConsoleMessage): Added a new constructor that takes an ExecState and a List instead of a String. We wrap and store the JSValues from the List in a Vector<ProtectedPtr<JSValue> >. (WebCore::InspectorController::addMessageToConsole): Added an overload that takes an ExecState and a List. (WebCore::InspectorController::addConsoleMessage): Moved code here from addMessageToConsole. Both overloads of addMessageToConsole now call this helper method. (WebCore::InspectorController::addScriptConsoleMessage): Updated for the new parameter order of WebInspector.ConsoleMessage. If the ConsoleMessage has a non-empty wrappedArguments Vector, we use that instead of the ConsoleMessage's message String.
- page/InspectorController.h:
- page/inspector/Console.js: (WebInspector.ConsoleMessage): Removed the explicit message parameter. We now get the message from the unnamed 5th parameter.
- page/inspector/Resource.js: Updated for the change to WebInspector.ConsoleMessage's parameter order.
- 12:19 PM Changeset in webkit [31951] by
-
- 26 edits in trunk/WebCore
Change calls to Chrome::addMessageToConsole to use Console::addMessage
Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>
Console now takes care of calling ChromeClient::addMessageToConsole
for the appropriate messages (i.e., just messages from JavaScript). If
you ever want to add a message to the console, Console is the place to
do it.
Reviewed by Darin Adler.
- WebCore.xcodeproj/project.pbxproj: Mark Console.h Private.
- page/Chrome.cpp: Removed addMessageToConsole
- page/Chrome.h: Moved MessageSource/MessageLevel to Console.h.
- page/Console.cpp: (WebCore::Console::addMessage): Added. Calls ChromeClient::addMessageToConsole for JS messages, and calls InspectorController::addMessageToConsole for all messages. (WebCore::Console::error): Changed to call directly to InspectorController in addition to ChromeClient. (WebCore::Console::info): Ditto. (WebCore::Console::log): Ditto. (WebCore::Console::warn): Ditto.
- page/Console.h: Added MessageSource/MessageLevel enums from Chrome.h.
- 12:18 PM Changeset in webkit [31950] by
-
- 9 edits2 adds in trunk/WebCore
Pass JSConsole's arguments unmodified to Console
Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>
All of JSConsole's methods are now custom, so that we can pass the
arguments unmodified to Console. Console now handles calling
toString() on the first argument. Later it will pass the arguments off
to InspectorController.
There should be no behavioral changes caused by this patch.
Reviewed by Darin Adler.
- ForwardingHeaders/kjs/list.h: Added.
- GNUmakefile.am: Added JSConsoleCustom.cpp to the project.
- WebCore.pro: Ditto.
- WebCore.vcproj/WebCore.vcproj: Ditto.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- WebCoreSources.bkl: Ditto.
- bindings/js/JSConsoleCustom.cpp: Added. (WebCore::JSConsole::error): (WebCore::JSConsole::info): (WebCore::JSConsole::log): (WebCore::JSConsole::warn):
- page/Console.cpp: Changed all methods to take an ExecState* and a const List&. The first item in the List is toString()ed and passed to Chrome. (WebCore::Console::error): (WebCore::Console::info): (WebCore::Console::log): (WebCore::Console::warn):
- page/Console.h:
- page/Console.idl:
- 12:08 PM Changeset in webkit [31949] by
-
- 10 edits5 adds in trunk/JavaScriptCore
2008-04-16 Kevin McCullough <kmccullough@apple.com>
Reviewed by Sam and Geoff.
-<rdar://problem/5770054> JavaScript profiler (10928)
Inital profiler prototype
- GNUmakefile.am: Added new files to project
- JavaScriptCore.pri: Ditto
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto
- JavaScriptCore.xcodeproj/project.pbxproj: Ditto
- JavaScriptCoreSources.bkl: Ditto
- kjs/config.h: Put compiling flag in here.
- kjs/function.cpp: Instrument calling the function eval(). (KJS::eval):
- kjs/interpreter.cpp: Instrument evaluating global scopes. (KJS::Interpreter::evaluate):
- kjs/object.cpp: Instrument JS function calls. (KJS::JSObject::call):
- profiler: Added.
- profiler/FunctionCallProfile.cpp: Added. (KJS::FunctionCallProfile::FunctionCallProfile): (KJS::FunctionCallProfile::~FunctionCallProfile): (KJS::FunctionCallProfile::willExecute): Call right before the JS function or executing context is executed to start the profiler's timer. (KJS::FunctionCallProfile::didExecute): Call right after the JS function or executing context is executed to stop the profiler's timer. (KJS::FunctionCallProfile::addChild): Add a child to the current FunctionCallProfile if it isn't already a child of the current FunctionalCallProfile. (KJS::FunctionCallProfile::findChild): Return the child that matches the given name if there is one. (KJS::FunctionCallProfile::printDataSampleStyle): Print the current profiled information in a format that matches sample's output.
- profiler/FunctionCallProfile.h: Added. (KJS::FunctionCallProfile::FunctionCallProfile): (KJS::FunctionCallProfile::~FunctionCallProfile): (KJS::FunctionCallProfile::functionName): (KJS::FunctionCallProfile::microSecs):
- profiler/Profiler.cpp: Added. (KJS::Profiler::profiler): (KJS::Profiler::sharedProfiler): Return global singleton (may change due to multi-threading concerns) (KJS::Profiler::startProfiling): Don't start collecting profiling information until the user starts the profiler. Also don't clear old prfiled data until the profiler is restarted. (KJS::Profiler::stopProfiling): Stop collecting profile information. (KJS::Profiler::willExecute): Same as above. (KJS::Profiler::didExecute): Same as above. (KJS::Profiler::insertStackNamesInTree): Follow the stack of the given names and if a sub-stack is not in the current tree, add it. (KJS::Profiler::getStackNames): Get the names from the different passed in parameters and order them as a stack. (KJS::Profiler::getFunctionName): Get the function name from the given parameter. (KJS::Profiler::printDataSampleStyle): Print the current profiled information in a format that matches sample's output. (KJS::Profiler::debugLog):
- profiler/Profiler.h: Added. (KJS::Profiler::Profiler):
- 11:41 AM Changeset in webkit [31948] by
-
- 10 edits in trunk
2008-04-16 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
- Remove kjs_ prefix from strtod, dtoa, and freedtoa and put it in the KJS namespace.
- Make strtod, dtoa, and freedtoa c++ functions instead of extern "C".
- Remove mode switching from dtoa. ~2% improvement on test 26.
- Removes all unnecessary #defines from dtoa code.
- JavaScriptCore.exp:
- kjs/dtoa.cpp: (KJS::ulp): (KJS::b2d): (KJS::d2b): (KJS::ratio): (KJS::): (KJS::strtod): (KJS::freedtoa): (KJS::dtoa):
- kjs/dtoa.h:
- kjs/function.cpp: (KJS::parseInt):
- kjs/lexer.cpp: (KJS::Lexer::lex):
- kjs/number_object.cpp: (KJS::integer_part_noexp): (KJS::numberProtoFuncToExponential):
- kjs/ustring.cpp: (KJS::UString::from): (KJS::UString::toDouble):
WebCore:
2008-04-16 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Rename kjs_strtod to KJS::strtod.
- platform/text/String.cpp: (WebCore::charactersToDouble):
- 10:30 AM Changeset in webkit [31947] by
-
- 3 edits4 adds in trunk
Reviewed by Adam.
http://bugs.webkit.org/show_bug.cgi?id=18259
XML+XSLT pages in iframe contains document.location of a parent window
Test: fast/xsl/subframe-location.html
- xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::createDocumentFromSource): Set resulting document URL before opening it, so that the document loader picks a correct URL, too.
- 10:23 AM Changeset in webkit [31946] by
-
- 2 edits in trunk/JavaScriptCore
Reviewed by Darin.
Get rid of static execForCompareByStringForQSort in array_instance.cpp.
No change on SunSpider, CelticKane or iBench JavaScript.
- kjs/array_instance.cpp: (KJS::ArraySortComparator::ArraySortComparator): (KJS::ArraySortComparator::operator()): (KJS::ArrayInstance::sort): Switch slow case to std::sort, so that ExecState can be passed in a comparator.
- 8:30 AM Changeset in webkit [31945] by
-
- 2 edits in trunk/WebCore
Rubber-stamped by John Sullivan.
- remove unreachable code which was added in r8802
- rendering/RenderText.cpp: (WebCore::RenderText::caretRect):
- 8:26 AM Changeset in webkit [31944] by
-
- 8 edits in trunk/JavaScriptCore
Reviewed by Adam Roben.
MSVC build fix.
- kjs/CommonIdentifiers.cpp:
- kjs/CommonIdentifiers.h:
- kjs/Parser.cpp:
- kjs/Parser.h:
- kjs/identifier.cpp:
- kjs/lexer.h:
- wtf/ThreadSpecific.h:
- 7:31 AM Changeset in webkit [31943] by
-
- 3 edits in trunk/JavaScriptCore
Build fix.
- kjs/date_object.cpp:
- kjs/date_object.h: Don't include DateMath.h from date_object.h, as the latter is used from WebCore, while where the former is not available.
- 6:49 AM Changeset in webkit [31942] by
-
- 3 edits1 add in trunk/WebCore
Adds a script resource icon. Update the CSS icon to better match the script icon.
https://bugs.webkit.org/show_bug.cgi?id=18499
Rubber-stamped by Adele Peterson.
- page/inspector/Images/resourceCSSIcon.png: Updated.
- page/inspector/Images/resourceJSIcon.png: Added.
- page/inspector/inspector.css: Changed the script icon rule to reference the new image.
- 5:51 AM Changeset in webkit [31941] by
-
- 2 edits in trunk/JavaScriptCore
2008-04-16 Holger Hans Peter Freyther <zecke@selfish.org>
Unreviewed build fix for MSVC. It does not want to have
WTF in the KJS namespace.
- kjs/CommonIdentifiers.h:
- 5:26 AM Changeset in webkit [31940] by
-
- 2 edits in trunk/JavaScriptCore
2008-04-16 Holger Hans Peter Freyther <zecke@selfish.org>
Unreviewed build fix for gcc.
::msToGregorianDateTime is not known to it.
- kjs/date_object.cpp: (KJS::DateInstance::msToGregorianDateTime):
- 2:58 AM Changeset in webkit [31939] by
-
- 3 edits in trunk/JavaScriptCore
Reviewed by Oliver Hunt.
Initialize threadMapMutex safely (as already done in ThreadingWin).
- wtf/ThreadingGtk.cpp: (WTF::threadMapMutex): (WTF::initializeThreading):
- wtf/ThreadingPthreads.cpp: (WTF::threadMapMutex): (WTF::initializeThreading):
- 2:44 AM Changeset in webkit [31938] by
-
- 1 edit in trunk/JavaScriptCore/ChangeLog
Fix ChangeLog spelling.
- 2:41 AM Changeset in webkit [31937] by
-
- 4 edits in trunk/JavaScriptCore
Reviewed by Adam Roben.
Cache Gregorian date/time structure on DateInstance objects for 1.027x SunSpider speedup
(1.65x on date-format-xparb, 1.13x on date-format-tofte).
- kjs/DateMath.h: (KJS::GregorianDateTime::copyFrom): Added. It presumably makes sense to keep GregorianDateTime Noncopiable, so it's not just operator=.
- kjs/date_object.h: Added a per-object cache.
- kjs/date_object.cpp: (KJS::DateInstance::DateInstance): (KJS::DateInstance::msToGregorianDateTime): (KJS::dateProtoFuncToString): (KJS::dateProtoFuncToUTCString): (KJS::dateProtoFuncToDateString): (KJS::dateProtoFuncToTimeString): (KJS::dateProtoFuncToLocaleString): (KJS::dateProtoFuncToLocaleDateString): (KJS::dateProtoFuncToLocaleTimeString): (KJS::dateProtoFuncGetFullYear): (KJS::dateProtoFuncGetUTCFullYear): (KJS::dateProtoFuncToGMTString): (KJS::dateProtoFuncGetMonth): (KJS::dateProtoFuncGetUTCMonth): (KJS::dateProtoFuncGetDate): (KJS::dateProtoFuncGetUTCDate): (KJS::dateProtoFuncGetDay): (KJS::dateProtoFuncGetUTCDay): (KJS::dateProtoFuncGetHours): (KJS::dateProtoFuncGetUTCHours): (KJS::dateProtoFuncGetMinutes): (KJS::dateProtoFuncGetUTCMinutes): (KJS::dateProtoFuncGetSeconds): (KJS::dateProtoFuncGetUTCSeconds): (KJS::dateProtoFuncGetTimezoneOffset): (KJS::setNewValueFromTimeArgs): (KJS::setNewValueFromDateArgs): (KJS::dateProtoFuncSetYear): (KJS::dateProtoFuncGetYear): Use the cache when converting.
- 2:30 AM Changeset in webkit [31936] by
-
- 12 edits1 add in trunk/JavaScriptCore
Reviewed by Darin.
Implement an abstraction for thread-specific storage, use it to get rid of some static objects.
SunSpider results were not conclusive, possibly up to 0.2% slowdown.
- JavaScriptCore.xcodeproj/project.pbxproj:
- JavaScriptCore.vcproj/WTF/WTF.vcproj: Added ThreadSpecific.h
- wtf/ThreadSpecific.h: Added. (WTF::::ThreadSpecific): (WTF::::~ThreadSpecific): (WTF::::get): (WTF::::set): (WTF::::destroy): (WTF::T): (WTF::::operator): Only implemented for platforms that use pthreads.
- kjs/CommonIdentifiers.cpp: (KJS::CommonIdentifiers::shared):
- kjs/CommonIdentifiers.h:
- kjs/InitializeThreading.cpp: (KJS::initializeThreading):
- kjs/Parser.cpp: (KJS::parser):
- kjs/Parser.h:
- kjs/identifier.cpp: (KJS::identifierTable): (KJS::literalIdentifierTable): (KJS::Identifier::initializeIdentifierThreading):
- kjs/identifier.h:
- kjs/lexer.cpp: (KJS::lexer):
- kjs/lexer.h: Make static instances per-thread.
- 12:53 AM Changeset in webkit [31935] by
-
- 4 edits in trunk/WebCore
Reviewed by hyatt.
Fix leaky ImageBuffer code.
- platform/graphics/GeneratedImage.cpp: (WebCore::GeneratedImage::drawPattern):
- platform/graphics/ImageBuffer.h:
- platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::image):
- 12:52 AM Changeset in webkit [31934] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt and Maciej Stachowiak.
Fixed a codegen bug in with and switch, and added an ASSERT to
make sure it doesn't happen again.
emitCode() assumes that dst, if non-zero, is either referenced or
non-temporary (i.e., it assumes that newTemporary() will return a
register not equal to dst). Certain callers to emitCode() weren't
guaranteeing that to be so, so temporary register values were being
overwritten.
- VM/CodeGenerator.h: (KJS::CodeGenerator::emitNode): ASSERT that dst is referenced or non-temporary.
- kjs/nodes.cpp: (KJS::CommaNode::emitCode): Reference the dst we pass.
(KJS::WithNode::emitCode): No need to pass an explicit dst register.
(KJS::CaseBlockNode::emitCodeForBlock): No need to pass an explicit dst register.
(KJS::SwitchNode::emitCode): No need to pass an explicit dst register.
- kjs/nodes.h: Made dst the last parameter to emitCodeForBlock, to match emitCode.
Apr 15, 2008:
- 10:53 PM Changeset in webkit [31933] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
Bug 18526: Throw exceptions when resolve fails for op_resolve_base_and_func.
<https://bugs.webkit.org/show_bug.cgi?id=18526>
Reviewed by Maciej
Very simple fix, sunspider shows a 0.7% progression, ubench shows a 0.4% regression.
- 10:30 PM Changeset in webkit [31932] by
-
- 3 edits2 adds in trunk
WebCore:
2008-04-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver.
<rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)
- editing/markup.cpp: (WebCore::createFragmentFromText): Don't use clones of the enclosing block to hold paragraphs if the enclosing block is the root editable element.
LayoutTests:
2008-04-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver.
<rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)
- editing/pasteboard/5665299-expected.txt: Added.
- editing/pasteboard/5665299.html: Added.
- 8:36 PM Changeset in webkit [31931] by
-
- 4 edits in trunk/WebCore
Don't treat the misnamed NSAccessibilitySortButtonRole as an accessibility role.
It is really a subrole of NSAccessibilityButtonRole. As it is not used inside WebCore
there is no change in behaviour as a result of doing this. This fixes <rdar://problem/5866444>.
Reviewed by Jon Honeycutt.
- page/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::canSetFocusAttribute): Remove SortButtonRole as it is unused.
- page/AccessibilityObject.h: Ditto.
(WebCore::):
- page/mac/AccessibilityObjectWrapper.mm:
(RoleEntry::):
- 8:21 PM Changeset in webkit [31930] by
-
- 2 edits in branches/squirrelfish/SunSpider
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Oliver.
- add newly working tests to squirrelfish list
- tests/LIST-SQUIRRELFISH: Add 3d-raytrace and string-unpack-code
- 8:03 PM Changeset in webkit [31929] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fix incorrect result on 3d-raytrace test
Oliver found and tracked down this bug, I just typed in the fix.
- VM/Machine.cpp: (KJS::slideRegisterWindowForCall): When setting omitted parameters to undefined, account for the space for local variables.
- 6:57 PM Changeset in webkit [31928] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fix codegen handling of dst registers
1.006x speedup (not sure why).
Most emitCode functions take an optional "dst" parameter that says
where the output of the instruction should be written. I made some
functions for convenient handling of the dst register:
- VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): Takes the dst register. Returns it if it is not null and is a temporary, otherwise allocates a new temporary. This is intended for cases where an intermediate value might be written into the dst
(KJS::CodeGenerator::finalDestination): Takes the dst register and an optional
register that was used as a temp destination. Picks the right thing for the final
output. Intended to be used as the output register for the instruction that generates
the final value of a particular node.
(KJS::CodeGenerator::moveToDestinationIfNeeded): Takes dst and a
RegisterID; moves from the register to dst if dst is defined and
different from the register. This is intended for cases where the
result of a node is already in a specific register (likely a
local), and so no code needs to be generated unless a specific
destination has been requested, in which case a move is needed.
I also applied these methods throughout emitCode functions. In
some cases this was just cleanup, in other cases I fixed actual
codegen bugs. Below I have given specific comments for the cases
where I believe I fixed a codegen bug, or improved quality of codegen.
- kjs/nodes.cpp: (KJS::NullNode::emitCode): (KJS::FalseNode::emitCode): (KJS::TrueNode::emitCode): (KJS::NumberNode::emitCode): (KJS::StringNode::emitCode): (KJS::RegExpNode::emitCode): (KJS::ThisNode::emitCode): Now avoids emitting a mov when dst is the same as the this register (the unlikely case of "this = this"); (KJS::ResolveNode::emitCode): Now avoids emitting a mov when dst is the same as the local regiester, in the local var case (the unlikely case of "x = x"); (KJS::ArrayNode::emitCode): Fixed a codegen bug where array literal element expressions may have observed an intermediate value of constructing the array. (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): Fixed a codegen bug where object literal property definition expressions may have obesrved an intermediate value of constructing the object. (KJS::BracketAccessorNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::NewExprNode::emitCode): (KJS::FunctionCallValueNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode): (KJS::VoidNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode): (KJS::PreIncResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreDecResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode): (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::AddNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::LessNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::InstanceOfNode::emitCode): (KJS::InNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode): (KJS::ConditionalNode::emitCode): (KJS::emitReadModifyAssignment): Allow an out argument separate from the operands, needed for fixes below. (KJS::ReadModifyResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::AssignResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyDotNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyBracketNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::CommaNode::emitCode): Avoid writing temporary value to dst register. (KJS::ReturnNode::emitCode): Void return should return undefined, not null. (KJS::FuncExprNode::emitCode):
- 6:56 PM Changeset in webkit [31927] by
-
- 2 edits in trunk/WebCore
2008-04-15 Anders Carlsson <andersca@apple.com>
Fix leaks seen on bot.
- loader/SubstituteResource.h: (WebCore::SubstituteResource::~SubstituteResource): Add a virtual destructor.
- 6:10 PM Changeset in webkit [31926] by
-
- 3 edits in trunk/WebCore
2008-04-15 Brady Eidson <beidson@apple.com>
Reviewed by Anders Carlsson
Fix for <rdar://problem/5820819> - Crash sometime occurs when interrupting a load.
Each SubresourceLoader has a client. That client is often a Loader::Host object.
The Loader/Host/CachedResource system predates our ref-counting and ownership models, and therefore manages
object lifetime manually.
The cause of this crash was that we would sometimes call "didFail()" on a Host object twice - Once when
beginning the new navigation, and once when the new navigation is committed.
The problem is after the first time Host::didFail() gets called, the Host is almost always deleted shortly
thereafter. But the SubresourceLoader had a dangling pointer to the Host which is now invalid.
I explored a few options to fix this bug. The one that was most obviously "clean" was to call cancel() on
the SubresourceLoader itself, which would end up calling Host::didFail() and doing the appropriate cache
cleanup.
This problem with that approach was that it had other side effects - when you cut off a load that had already
partially displayed in the WebView, images that hadn't finished loading would be invalidated and immediately
turn into broken image icons. This was visually jarring and pretty unacceptable.
So I decided to follow a much simpler approach, which was to have the Host clear the client pointer from each
SubresourceLoader before it forgets about it. This leaves things the same visually and fixes the crash.
Note that the layout test for this - if possible - will require other enhancements to DRT including possibly
adding support for window.stop(). That task is non-trivial, and is documented in <rdar://problem/5061826>
- loader/SubresourceLoader.h: (WebCore::SubresourceLoader::clearClient): Add a method to clear the SubresourceLoaderClient. This is perfectly safe to do on an in-flight SubresourceLoader as they are already designed to be client-less, and already null-check the client before calling it.
- loader/loader.cpp: (WebCore::Loader::Host::didFail): The SubresourceLoader itself might not be finished loading and might decide to call into its client later. Since the client has no guaranteed lifetime and is liable to be deleted after didFail() is called, call clearClient() on the SubresourceLoader so such an invalid call can't happen.
- 4:48 PM Changeset in webkit [31925] by
-
- 4 edits in trunk/WebKit/mac
Reviewed by Anders.
<rdar://problem/5412759> CrashTracer: [USER] 22 crashes in Safari at com.apple.quicktime.webplugin: NPN_SetValue + 15403
In certain situations, code in WebBasePluginPackage would load a plug-in only for the explicit reason of asking it to create a
preference file, but wouldn't actually unload the bundle. This created problems for the QuickTime WebKit plug-in by unloading
a bundle out from underneath itself.
- Plugins/WebBasePluginPackage.h: Added unload method.
- Plugins/WebBasePluginPackage.m: (-[WebBasePluginPackage unload]): Added new method. Currently, only Netscape plug-ins support unload. (-[WebBasePluginPackage pListForPath:createFile:]): Added a call to unload.
- Plugins/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage unload]): Added.
- 4:24 PM Changeset in webkit [31924] by
-
- 2 edits in trunk/WebKitTools
2008-04-15 Anders Carlsson <andersca@apple.com>
Add missing ;
- Scripts/build-webkit:
- 4:16 PM Changeset in webkit [31923] by
-
- 13 edits12 adds in trunk
2008-04-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
- Configurations/JavaScriptCore.xcconfig:
WebCore:
2008-04-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Add empty files for the application cache.
- Configurations/WebCore.xcconfig:
- WebCore.vcproj/WebCore.vcproj:
- WebCore.vcproj/build-generated-files.sh: Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
- WebCore.xcodeproj/project.pbxproj:
- loader/appcache: Added.
- loader/appcache/ApplicationCache.cpp: Added.
- loader/appcache/ApplicationCache.h: Added.
- loader/appcache/ApplicationCacheGroup.cpp: Added.
- loader/appcache/ApplicationCacheGroup.h: Added.
- loader/appcache/ApplicationCacheResource.cpp: Added.
- loader/appcache/ApplicationCacheResource.h: Added.
- loader/appcache/DOMApplicationCache.cpp: Added.
- loader/appcache/DOMApplicationCache.h: Added.
- loader/appcache/DOMApplicationCache.idl: Added.
- loader/appcache/ManifestParser.cpp: Added.
- loader/appcache/ManifestParser.h: Added.
WebKit/mac:
2008-04-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
- Configurations/WebKit.xcconfig:
WebKit/win:
2008-04-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
- WebKit.vcproj/WebKit.vcproj:
WebKitTools:
2008-04-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
- Scripts/build-webkit:
- 3:27 PM Changeset in webkit [31922] by
-
- 6 edits in trunk/WebCore
2008-04-15 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim.
- <rdar://problem/5792587> AJAX (XMLHttpRequest) support for the Inspector (17776)
- Add XMLHttpRequest support to the inspector.
- English.lproj/InspectorLocalizedStrings.js: Specify capitalization instead of using text-transform because XHR must capitalize all the letters.
- page/inspector/Resource.js: Assume XHRs are textType even though this may not always be true. Also add the XHR category and let all mime types be consistent with it.
- page/inspector/ResourcesPanel.js: Set the XHR category color.
- page/inspector/inspector.css: Make XHRs yellow and fonts red because XHRs are more common than fonts and yellow next to orange (scripts) is not as harsh on the eyes as red next to orange.
- page/inspector/inspector.js: Specify capitalization again.
- 2:56 PM Changeset in webkit [31921] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- fix huge performance regression (from trunk) in string-unpack-code
This restores string-unpack-code performance to parity with
trunk (2.27x speedup relative to previous SquirrelFish)
- VM/Machine.cpp: (KJS::Machine::execute): Shrink register file after call to avoid growing repeatedly.
- 2:31 PM Changeset in webkit [31920] by
-
- 3 edits4 adds in trunk
2008-04-15 David Hyatt <hyatt@apple.com>
Fix the zoom property so that it works properly with font-size.
Reviewed by John Sullivan
Added fast/css/zoom-font-size.html
- css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::updateFont): (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::checkForZoomChange):
- css/CSSStyleSelector.h:
- 2:29 PM Changeset in webkit [31919] by
-
- 4 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed dumpCallFrame to match our new convention of passing around a
ScopeChainNode* instead of a ScopeChain*.
- JavaScriptCore.exp:
- VM/Machine.cpp: (KJS::Machine::dumpCallFrame):
- VM/Machine.h:
- 1:56 PM Changeset in webkit [31918] by
-
- 3 edits in trunk/WebCore
Fixes the bug where a resource view could still be shown after the inspected
page navigates to another page.
https://bugs.webkit.org/show_bug.cgi?id=18517
Reviewed by Adam Roben.
- page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.reset): Close the visible resource.
Iterate over all the resources and zero errors and warnings and delete the
resource view and tree element. Removes all children of resourceViews. Passes
true to _updateGraphDividersIfNeeded to force an immediate update.
(WebInspector.ResourcesPanel.prototype.removeResource): Added. Closes
the resource view if it is visible. Removes the resource from the _resources
array. Removes the tree element from the outline tree. Zeros out the errors
and warnings properties. Deletes the tree element and resource view properties.
(WebInspector.ResourcesPanel.prototype.closeVisibleResource): Null check
this._calculator for times when reset is called before the calculator is set.
- page/inspector/inspector.js:
(WebInspector.removeResource): Call ResourcesPanel.removeResource.
- 1:55 PM Changeset in webkit [31917] by
-
- 4 edits in trunk/WebCore
2008-04-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Rename "archive" to "substitute" in a couple of places.
- loader/DocumentLoader.cpp: (WebCore::DocumentLoader::DocumentLoader): (WebCore::DocumentLoader::clearArchiveResources): (WebCore::DocumentLoader::deliverSubstituteResourcesAfterDelay): (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired): (WebCore::DocumentLoader::isSubstituteLoadPending): (WebCore::DocumentLoader::cancelPendingSubstituteLoad): (WebCore::DocumentLoader::scheduleArchiveLoad): (WebCore::DocumentLoader::setDefersLoading):
- loader/DocumentLoader.h:
- loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load): (WebCore::ResourceLoader::didCancel):
- 12:44 PM Changeset in webkit [31916] by
-
- 4 edits in trunk/WebCore
2008-04-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Move the URL, response and data to SubstituteResource.
- loader/SubstituteResource.h: (WebCore::SubstituteResource::url): (WebCore::SubstituteResource::response): (WebCore::SubstituteResource::data): (WebCore::SubstituteResource::SubstituteResource):
- loader/archive/ArchiveResource.cpp: (WebCore::ArchiveResource::ArchiveResource):
- loader/archive/ArchiveResource.h: (WebCore::ArchiveResource::frameName):
- 12:21 PM Changeset in webkit [31915] by
-
- 3 edits4 adds in trunk
2008-04-15 David Hyatt <hyatt@apple.com>
Make sure to ignore zoom:0. That is not supposed to actually do anything. It's a hack in IE
to cause an element to set "hasLayout."
Reviewed by Anders
Added fast/css/zoom-property-parsing.html
- css/CSSParser.cpp: (WebCore::CSSParser::parseValue):
- css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
- 12:03 PM Changeset in webkit [31914] by
-
- 4 edits1 add in trunk/WebCore
2008-04-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Add a (currently empty) SubstituteResource class and make ArchiveResource inherit from it.
- WebCore.vcproj/WebCore.vcproj:
- WebCore.xcodeproj/project.pbxproj:
- loader/SubstituteResource.h: Added.
- loader/archive/ArchiveResource.h:
- 11:49 AM Changeset in webkit [31913] by
-
- 3 edits in trunk/WebCore
2008-04-15 Antti Koivisto <Antti Koivisto>
Reviewed by Geoff.
Fix <rdar://problem/5862921>
REGRESSION: Leak in SVGSVGElement::SVGSVGElement
In these strange days RefCounted starts with count of one.
- svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement):
- svg/animation/SMILTimeContainer.h: (WebCore::SMILTimeContainer::create):
- 11:15 AM Changeset in webkit [31912] by
-
- 5 edits4 adds in trunk
WebCore:
2008-04-15 Anatoli Papirovski <apapirovski@mac.com>
Reviewed by hyatt
[CSS1, CSS3] Fixed the background-origin calculation for root elements
(background-size and background-position are affected), r10794
[CSS3] Fixed the background-size transformation where width is specified in percentage and height is left to auto
Test: fast/backgrounds/background-origin-root-element.html
- rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::calculateBackgroundImageGeometry):
LayoutTests:
2008-04-15 Anatoli Papirovski <apapirovski@mac.com>
Reviewed by hyatt
Added test case for background-origin calculation on root elements
(background-repeat and background-size), r10794 [CSS1 + CSS3]
- fast/backgrounds/background-origin-root-element.html: Added.
- platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum: Added.
- platform/mac/fast/backgrounds/background-origin-root-element-expected.png: Added.
- platform/mac/fast/backgrounds/background-origin-root-element-expected.txt: Added.
- 10:54 AM Changeset in webkit [31911] by
-
- 4 edits in trunk/WebKit/mac
2008-04-15 Brady Eidson <beidson@apple.com>
Reviewed by John Sullivan
Do a more complete job adding the "WebArchiveDebugMode" pref
- WebView/WebPreferences.m: Add both getter *and* setter (-[WebPreferences webArchiveDebugModeEnabled]): (-[WebPreferences setWebArchiveDebugModeEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): Call the renamed getter
- 10:24 AM Changeset in webkit [31910] by
-
- 4 edits in trunk/WebCore
Fixes the regression where the error and warning counts did not show up in the Resources
sidebar next to resources.
https://bugs.webkit.org/show_bug.cgi?id=18494
Reviewed by Adam Roben.
- page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.addMessageToResource): Increment errors or warnings
on the resource. Set the bubbleText to the total of the errors and warnings. Add a error
or warning class to the bubble.
(WebInspector.ResourcesPanel.prototype.clearMessages): Zero out the errors and warnings
properties on each resource. Set the bubbleText back to an empty string.
- page/inspector/SidebarTreeElement.js:
(WebInspector.SidebarTreeElement): Create a statusElement.
(WebInspector.SidebarTreeElement.prototype.get bubbleText): Return _bubbleText.
(WebInspector.SidebarTreeElement.prototype.set bubbleText): Create bubbleElement if needed.
Assign the value to _bubbleText and bubbleElement.textContent.
(WebInspector.SidebarTreeElement.prototype.onattach): Append statusElement to _listItemNode.
- page/inspector/inspector.css: Style rules for bubbles and status elements.
- 10:24 AM Changeset in webkit [31909] by
-
- 5 edits in trunk/WebCore
Fixes the regression where error and warning bubbles would not be added
to the source view of a resource.
https://bugs.webkit.org/show_bug.cgi?id=18495
Reviewed by Adam Roben.
- css/view-source.css:
(.webkit-html-message-bubble): Add a min-height to make sure the border-radius
has enough room to apply.
- page/inspector/Console.js:
(WebInspector.Console.prototype.addMessage): Removed code that added messages
to resource panels and incremented error and warning counts on resources.
Now just call ResourcesPanel.addMessageToResource after assigning the resource
to the console message.
(WebInspector.Console.prototype.clearMessages): Removed code that cleared error
and warning counts from resources an call ResourcesPanel.clearMessages.
- page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.addMessageToResource): Call addMessage
on the resource's view, if it is implemented.
(WebInspector.ResourcesPanel.prototype.clearMessages): Call clearMessages
on all the resource views for the ones that implement it.
(WebInspector.ResourcesPanel.prototype.refreshResource): Call _resourceView
to make the resource's view if needed. Use a local view variable.
(WebInspector.ResourcesPanel.prototype._resourceView): Added helper function
to create a resource view if needed.
- page/inspector/SourceView.js:
(WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Delete the
_frameNeedsSetup property at the beginning to prevent recursion. Get the
length of the messages array when assigning the local length variable.
(WebInspector.SourceView.prototype.addMessage): Renamed from addMessageToSource.
(WebInspector.SourceView.prototype.clearMessages): Added. Clear all the message
bubbles that might be sprinkled in the source. Also clears the messages array.
(WebInspector.SourceView.prototype._addMessageToSource): Create the image
element in the Inspector's document so we can use relative image URLs. Then
adopt the image element into the frame's document.
- 10:07 AM Changeset in webkit [31908] by
-
- 4 edits20 adds in trunk
WebCore:
2008-04-15 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Hook up event dispatching for window.localStorage changes.
Tests: storage/domstorage/localstorage/enumerate-storage.html
storage/domstorage/localstorage/iframe-events.html
storage/domstorage/localstorage/index-get-and-set.html
storage/domstorage/localstorage/onstorage-attribute-markup.html
storage/domstorage/localstorage/onstorage-attribute-setattribute.html
storage/domstorage/localstorage/simple-events.html
storage/domstorage/localstorage/simple-usage.html
storage/domstorage/localstorage/window-open.html
- storage/LocalStorage.cpp: (WebCore::LocalStorage::dispatchStorageEvent): Walk every Page in the PageGroup, adding each Frame that matches the storage area's security origin to a Vector. Then dispatch the StorageEvent to each Frame in the Vector
- storage/SessionStorage.cpp: (WebCore::SessionStorage::dispatchStorageEvent): Adopt the technique used in LocalStorage, which is to only add the Frames to the Vector if their security origin matches
LayoutTests:
2008-04-15 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Hook up event dispatching for window.localStorage changes.
Now a meaningful LayoutTest suite can be landed for window.localStorage.
- storage/domstorage/localstorage/enumerate-storage-expected.txt: Added.
- storage/domstorage/localstorage/enumerate-storage.html: Added.
- storage/domstorage/localstorage/iframe-events-expected.txt: Added.
- storage/domstorage/localstorage/iframe-events.html: Added.
- storage/domstorage/localstorage/index-get-and-set-expected.txt: Added.
- storage/domstorage/localstorage/index-get-and-set.html: Added.
- storage/domstorage/localstorage/onstorage-attribute-markup-expected.txt: Added.
- storage/domstorage/localstorage/onstorage-attribute-markup.html: Added.
- storage/domstorage/localstorage/onstorage-attribute-setattribute-expected.txt: Added.
- storage/domstorage/localstorage/onstorage-attribute-setattribute.html: Added.
- storage/domstorage/localstorage/resources: Added.
- storage/domstorage/localstorage/resources/clearLocalStorage.js: Added.
- storage/domstorage/localstorage/resources/iframe-events-second.html: Added.
- storage/domstorage/localstorage/resources/window-open-second.html: Added.
- storage/domstorage/localstorage/simple-events-expected.txt: Added.
- storage/domstorage/localstorage/simple-events.html: Added.
- storage/domstorage/localstorage/simple-usage-expected.txt: Added.
- storage/domstorage/localstorage/simple-usage.html: Added.
- storage/domstorage/localstorage/window-open-expected.txt: Added.
- storage/domstorage/localstorage/window-open.html: Added.
- 4:51 AM Changeset in webkit [31907] by
-
- 2 edits in trunk/WebKit/qt
Ariya Hidayat <ariya.hidayat@trolltech.com>
fix potential crash when loading image(s)
Crash may occur. If compiled with 4.3, the variable is not initialized.
This fix solves https://bugs.webkit.org/show_bug.cgi?id=17174
- 3:51 AM Changeset in webkit [31906] by
-
- 5 edits in trunk/WebKit/qt
Simon Hausmann <Simon Hausmann>
Update the micro focus for input methods as soon as the composition mode changes
or the caret/selection changes.
- 3:51 AM Changeset in webkit [31905] by
-
- 2 edits in trunk/WebKit/qt
Simon Hausmann <Simon Hausmann>
Don't use QDir, QString or any locale sensitive function before constructing Q(Core)Application,
it yields undefined behaviour or wrong default codec initialization.
- 3:50 AM Changeset in webkit [31904] by
-
- 5 edits in trunk
Olivier Goffart <ogoffart@trolltech.com>
Fixes: copy to clipboard when selecting, and paste when clicking with the middle button
- 3:29 AM Changeset in webkit [31903] by
-
- 7 edits in trunk/WebKit/qt
Michael Brasser <michael.brasser@trolltech.com>
Add basic input method support.
- 3:28 AM Changeset in webkit [31902] by
-
- 5 edits in trunk/WebKit/qt
Simon Hausmann <Simon Hausmann>
Added (QWebFrame|QWebView)::textZoomFactor.
- 3:28 AM Changeset in webkit [31901] by
-
- 3 edits in trunk/WebKit/qt
Michael Brasser <michael.brasser@trolltech.com>
Added simple scrolling API to QWebFrame.
The intent is that it works similar to QAbstractScrollArea.
- 3:12 AM Changeset in webkit [31900] by
-
- 2 edits in trunk/WebKit/qt
Olivier Goffart <ogoffart@trolltech.com>
Fixes: implement the OpenFrameInNewWindow action.
- 2:40 AM Changeset in webkit [31899] by
-
- 44 edits in trunk
Fix compilation with Qt namespaces
Qt can be configured to have all of its classes inside a specified namespaces.
This is for example used in plugin/component environments like Eclipse.
This change makes it possible to let the Qt port compile against a namespaced
Qt by the use of macros Qt provides to properly forward declare Qt classes in
the namespace.
Signed-off-by: Simon
- 2:18 AM Changeset in webkit [31898] by
-
- 7 edits in branches/squirrelfish/JavaScriptCore
Bug 18436: Need to throw exception on read/modify/write or similar resolve for nonexistent property
<https://bugs.webkit.org/show_bug.cgi?id=18436>
Reviewed by Maciej.
Add op_resolve_base_and_property for read/modify/write operations,
this adds a "superinstruction" to resolve the base and value of a
property simultaneously. Just using resolveBase and resolve results
in an 5% regression in ubench, 30% in loop-empty-resolve (which is
expected). 1.3% progression in sunspider, 2.1% in ubench, with a
21% gain in loop-empty-resolve. The only outlier is function-missing-args
which gets a 3% regression that I could never resolve.
- 2:07 AM Changeset in webkit [31897] by
-
- 8 edits in branches/squirrelfish/JavaScriptCore
2008-04-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fixed "SquirrelFish crashes due to bad scope chain on some SunSpider tests" https://bugs.webkit.org/show_bug.cgi?id=18508
3d-raytrace and string-unpack-code now run.
The basic approach is to pass around ScopeChainNode* instead of
ScopeChain*, which in addition to not becoming suddenly an invalid
pointer also saves an indirection.
This is an 0.4% speedup on SunSpider --squirrelfish (1.8% on --ubench)
- VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::resolveBaseAndFunc): (KJS::initializeCallFrame): (KJS::scopeChainForCall): (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::execute): (KJS::Machine::privateExecute):
- VM/Machine.h:
- VM/Register.h: (KJS::Register::):
- kjs/nodes.cpp: (KJS::EvalNode::generateCode): (KJS::FunctionBodyNode::generateCode): (KJS::ProgramNode::generateCode): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations): (KJS::FuncDeclNode::makeFunction): (KJS::FuncExprNode::makeFunction):
- kjs/nodes.h: (KJS::ProgramNode::): (KJS::EvalNode::): (KJS::FunctionBodyNode::):
- kjs/object.h:
- kjs/scope_chain.h: (KJS::ScopeChainNode::ScopeChainNode): (KJS::ScopeChainNode::deref): (KJS::ScopeChainIterator::ScopeChainIterator): (KJS::ScopeChainIterator::operator*): (KJS::ScopeChainIterator::operator->): (KJS::ScopeChain::ScopeChain): (KJS::ScopeChain::node): (KJS::ScopeChain::deref): (KJS::ScopeChain::ref): (KJS::ScopeChainNode::ref): (KJS::ScopeChainNode::release): (KJS::ScopeChainNode::begin): (KJS::ScopeChainNode::end):
- 12:20 AM squirrelfish edited by
- (diff)
Apr 14, 2008:
- 10:19 PM Changeset in webkit [31896] by
-
- 2 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed crash when accessing registers in a torn-off activation object.
- kjs/JSActivation.cpp: (KJS::JSActivation::copyRegisters): Update our registerOffset after copying our registers, since our offset should now be relative to our private register array, not the shared register file.
- 8:40 PM Changeset in webkit [31895] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fix a codegen flaw that makes some tests run way too fast or way too slow
The basic problem was that FunctionCallResolveNode results in
codegen which can incorrectly write an intermediate value into the
dst register even when that is a local. I added convenience
functions to CodeGenerator for getting this right, but for now I
only fixed FunctionCallResolve.
- VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): (KJS::CodeGenerator::):
- kjs/nodes.cpp: (KJS::FunctionCallResolveNode::emitCode):
- 5:47 PM Changeset in webkit [31894] by
-
- 1 edit in trunk/WebCore/ChangeLog
2008-04-14 Brady Eidson <beidson@apple.com>
Fix up a recent Changelog comment that I never updated
- 5:45 PM Changeset in webkit [31893] by
-
- 17 edits3 adds in trunk
WebCore:
2008-04-14 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Lay the underpinnings for LocalStorage.
For now, this just exposes window.localStorage to the dom which returns an in-memory Storage object, much
like SessionStorage. The primary difference at this point is that the object returned is shared globally,
and isn't copied for new top-level browsing contexts like SessionStorage.
Later, I'll add proper event dispatch and a persistent storage backing.
- GNUmakefile.am:
- WebCore.base.exp:
- WebCore.pro:
- WebCore.vcproj/WebCore.vcproj:
- WebCore.xcodeproj/project.pbxproj:
- WebCoreSources.bkl:
- bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::mark): Mark the optionalLocalStorage
- page/DOMWindow.cpp: (WebCore::DOMWindow::clear): (WebCore::DOMWindow::localStorage):
- page/DOMWindow.h: (WebCore::DOMWindow::optionalLocalStorage):
- storage/LocalStorage.cpp: Added. (WebCore::LocalStorage::sharedLocalStorage): (WebCore::LocalStorage::LocalStorage): (WebCore::LocalStorage::storageArea): (WebCore::LocalStorage::itemChanged): (WebCore::LocalStorage::itemRemoved): (WebCore::LocalStorage::dispatchStorageEvent):
- storage/LocalStorage.h: Added.
- storage/SessionStorage.cpp: Refactor to use the client interface for event dispatching for sessionStorage objects (WebCore::SessionStorage::SessionStorage): (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea): (WebCore::SessionStorage::itemChanged): (WebCore::SessionStorage::itemRemoved): (WebCore::SessionStorage::dispatchStorageEvent):
- storage/SessionStorage.h:
- storage/StorageArea.cpp: Add a client parameter, and call to the client when an item is changed or removed. (WebCore::StorageArea::create): (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::copy): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::setClient):
- storage/StorageArea.h: (WebCore::StorageArea::page): (WebCore::StorageArea::securityOrigin):
- storage/StorageAreaClient.h: Added. Break out "itemChanged" and "itemRemoved" to a StorageAreaClient This way, both SessionStorage and LocalStorage areas can have different behavior on changes with that behavior managed from a central location. (WebCore::StorageAreaClient::~StorageAreaClient): (WebCore::StorageAreaClient::StorageAreaClient): (WebCore::StorageAreaClient::itemChanged): (WebCore::StorageAreaClient::itemRemoved):
LayoutTests:
2008-04-14 Brady Eidson <beidson@apple.com>
Reviewed by Anders
As underpinnings for LocalStorage are laid, it is exposed to the dom - update the relevant layout tests.
- fast/dom/Window/window-properties-expected.txt:
- storage/domstorage/window-attributes-exist-expected.txt:
- 5:40 PM Changeset in webkit [31892] by
-
- 9 edits in trunk
WebCore:
2008-04-14 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Add a hidden pref to debug WebArchive loading. With this pref on, when loading a WebArchive,
if the resource isn't in the ArchiveResourceCollection, the loader will not fall back to the
network and will instead fail the load as "cancelled."
- loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load): Do the check here.
- page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setWebArchiveDebugModeEnabled):
- page/Settings.h: (WebCore::Settings::webArchiveDebugModeEnabled):
WebKit/mac:
2008-04-14 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Add a hidden pref to debug WebArchive loading. With this pref on, when loading a WebArchive,
if the resource isn't in the ArchiveResourceCollection, the loader will not fall back to the
network and will instead fail the load as "cancelled."
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.m: (+[WebPreferences initialize]): (-[WebPreferences _webArchiveDebugModeEnabled]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]):
- 4:55 PM Changeset in webkit [31891] by
-
- 9 edits in trunk/WebCore
2008-04-14 Antti Koivisto <Antti Koivisto>
Reviewed by Eric.
Some preparations for additive animations and animations in <use>.
- Disallow animation elements in instance trees.
- Fix buggy SVGUseElement::removeDisallowedElementsFromSubtree(), make it public and static
- Invoke it from SVGElementInstance::updateInstance() to clean up the instance tree there as well.
- Add mechanism for blocking instance updates when an animation changes the referenced tree.
The added assert in SVGSMILElement::insertedIntoDocument() verifies the fixes
with the existing test cases.
- svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):
- svg/SVGElementInstance.cpp: (WebCore::SVGElementInstance::updateInstance):
- svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::updateElementInstance): (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
- svg/SVGStyledElement.h:
- svg/SVGUseElement.cpp: (WebCore::isDisallowedElement): (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
- svg/SVGUseElement.h:
- svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::insertedIntoDocument): (WebCore::SVGSMILElement::isSMILElement): (WebCore::SVGSMILElement::connectConditions): (WebCore::SVGSMILElement::disconnectConditions):
- svg/animation/SVGSMILElement.h:
- 4:46 PM Changeset in webkit [31890] by
-
- 10 edits17 adds in trunk/WebCore
Don't let the inspected page overwrite properties of JS objects in the Inspector
<https://bugs.webkit.org/show_bug.cgi?id=16011>
<rdar://problem/5604409>
<https://bugs.webkit.org/show_bug.cgi?id=16837>
<rdar://problem/5813850>
Reviewed by Sam Weinig and Geoff Garen.
Tests (contributed by Adam Barth and Collin Jackson):
manual-tests/inspector-wrappers
- GNUmakefile.am:
- WebCore.pro:
- WebCore.vcproj/WebCore.vcproj:
- WebCore.xcodeproj/project.pbxproj:
- WebCoreSources.bkl: Added new files to the projects.
- bindings/js/JSQuarantinedObjectWrapper.cpp: Added. (WebCore::): (WebCore::JSQuarantinedObjectWrapper::asWrapper): Converts a JSValue into a JSQuarantinedObjectWrapper, if the JSValue is in fact a JSQuarantinedObjectWrapper. (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): Callback to be used with PropertySlot. (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper): Hold onto the object we're wrapping and its global object. Pass the wrapped prototype up to the JSObject constructor. (WebCore::JSQuarantinedObjectWrapper::~JSQuarantinedObjectWrapper): (WebCore::JSQuarantinedObjectWrapper::unwrappedExecStateMatches): Returns true if our underlying object originated from the same global object as the passed-in ExecState. (WebCore::JSQuarantinedObjectWrapper::unwrappedExecState): (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState): Wraps and moves an exception from our underlying ExecState to the passed-in one. (WebCore::JSQuarantinedObjectWrapper::mark): Marks ourselves and the objects we're holding references to.
(WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
(WebCore::JSQuarantinedObjectWrapper::put):
(WebCore::JSQuarantinedObjectWrapper::deleteProperty):
(WebCore::JSQuarantinedObjectWrapper::implementsConstruct):
(WebCore::JSQuarantinedObjectWrapper::construct):
(WebCore::JSQuarantinedObjectWrapper::implementsHasInstance):
(WebCore::JSQuarantinedObjectWrapper::hasInstance):
(WebCore::JSQuarantinedObjectWrapper::implementsCall):
(WebCore::JSQuarantinedObjectWrapper::callAsFunction):
(WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
JSObject overrides. These each check the appropriate permission before
allowing the call to proceed. We wrap all outgoing values using
m_wrapOutgoingValue, and we prepare all incoming values with the
virtual prepareIncomingValue function. If an exception is raised when
calling the underlying object, we transfer the exception in wrapped
form to the passed-in ExecState.
- bindings/js/JSQuarantinedObjectWrapper.h: Added. (WebCore::JSQuarantinedObjectWrapper::unwrappedObject): (WebCore::JSQuarantinedObjectWrapper::className): We return the underlying object's class name so that we can successfully masquerade as that underlying object when, e.g., Object.prototype.toString is called on us. (WebCore::JSQuarantinedObjectWrapper::classInfo):
(WebCore::JSQuarantinedObjectWrapper::allowsGetProperty):
(WebCore::JSQuarantinedObjectWrapper::allowsSetProperty):
(WebCore::JSQuarantinedObjectWrapper::allowsDeleteProperty):
(WebCore::JSQuarantinedObjectWrapper::allowsConstruct):
(WebCore::JSQuarantinedObjectWrapper::allowsHasInstance):
(WebCore::JSQuarantinedObjectWrapper::allowsCallAsFunction):
(WebCore::JSQuarantinedObjectWrapper::allowsGetPropertyNames):
These virtual methods let subclasses define the allowed operations on
the wrapped object. By default all operations are disabled.
- bindings/js/JSInspectedObjectWrapper.cpp: Added. This subclass of JSQuarantinedObjectWrapper is used to wrap objects from the inspected page being passed to the Inspector. (WebCore::wrappers): (WebCore::): (WebCore::JSInspectedObjectWrapper::wrap): Wraps the passed-in object if needed and returns the wrapper. If this object has been wrapped previously we'll return the old wrapper rather than make a new one. (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Add ourselves to the wrapper map. (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Remove ourselves from the wrapper map. (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Ensure that any objects passed to the inspected object are either wrappers around objects from the inspected page (in which case we unwrap them so that the inspected page never sees the wrapper), or wrapped callbacks from the Inspector.
- bindings/js/JSInspectedObjectWrapper.h: Added. (WebCore::JSInspectedObjectWrapper::classInfo): (WebCore::JSInspectedObjectWrapper::allowsGetProperty): (WebCore::JSInspectedObjectWrapper::allowsSetProperty): (WebCore::JSInspectedObjectWrapper::allowsDeleteProperty): (WebCore::JSInspectedObjectWrapper::allowsConstruct): (WebCore::JSInspectedObjectWrapper::allowsHasInstance): (WebCore::JSInspectedObjectWrapper::allowsCallAsFunction): (WebCore::JSInspectedObjectWrapper::allowsGetPropertyNames): These all return true so that the Inspector can use objects from the inspected page however it needs. (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue): Wrap all outgoing values as JSInspectedObjectWrappers.
- bindings/js/JSInspectorCallbackWrapper.cpp: Added. This subclass of
JSQuarantinedObjectWrapper is used to wrap callbacks that the
Inspector passes to the inspected page (e.g., for event listeners or
client-side storage callbacks).
(WebCore::wrappers):
(WebCore::):
(WebCore::JSInspectorCallbackWrapper::wrap): Wraps the passed-in
object if needed and returns the wrapper. If this object has been
wrapped previously we'll return the old wrapper rather than make a new
one.
(WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper): Add
ourselves to the wrapper map.
(WebCore::JSInspectorCallbackWrapper::~JSInspectorCallbackWrapper):
Remove ourselves from the wrapper map.
(WebCore::JSInspectorCallbackWrapper::prepareIncomingValue): Ensure
that values passed from the inspected page to an Inspector callback
are wrapped in JSInspectedObjectWrappers. We also allow the inspected
page to pass ourselves in (which will happen in the case of a
client-side storage callback, where the callback itself is passed as
the
this
object). In this case we unwrap ourselves so that the Inspector doesn't have to deal with the wrapper. - bindings/js/JSInspectorCallbackWrapper.h: Added. (WebCore::JSInspectorCallbackWrapper::classInfo): (WebCore::JSInspectorCallbackWrapper::allowsCallAsFunction): This is the only allowed operation on a JSInspectorCallbackWrapper. (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue): Wrap all outgoing values as JSInspectorCallbackWrappers.
- page/InspectorController.cpp: (WebCore::getResourceDocumentNode): Wrap the Document before passing it to the Inspector. (WebCore::highlightDOMNode): Unwrap the Node that the Inspector passed to us. (WebCore::databaseTableNames): Unwrap the Database that the Inspector passed to us. (WebCore::inspectedWindow): Wrap the Window before passing it to the Inspector. (WebCore::InspectorController::focusNode): Wrap the Node before passing it to the Inspector. (WebCore::wrapCallback): Wraps the passed-in callback in a JSInspectorCallbackWrapper. (WebCore::InspectorController::addDatabaseScriptResource): Wrap the Database beore pasing it to the Inspector. (WebCore::InspectorController::windowScriptObjectAvailable): Add the new wrapCallback function to the InspectorController JS object.
- page/inspector/ElementsPanel.js: (WebInspector.ElementsPanel.reset): Wrap the contentLoaded callback.
- page/inspector/DatabaseQueryView.js: (WebInspector.DatabaseQueryView._enterKeyPressed):
- page/inspector/DatabaseTableView.js: (WebInspector.DatabaseTableView.update): Pass null instead of an empty array to executeSql since we're no longer allowed to pass any unwrapped objects to the inspected page. We now wrap all callbacks being passed to the inspected page using InspectorController.wrapCallback.
- 4:45 PM Changeset in webkit [31889] by
-
- 5 edits in trunk/WebCore
Use prototypes/constructors from the inspected page when operating on objects from the inspected page
Reviewed by Tim Hatcher.
- page/inspector/Console.js: (WebInspector.ConsolePanel._format): Use the Node constructor from the inspected Window with the instanceof operator.
- page/inspector/ElementsPanel.js: (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Use the Element prototype from the inspected Window instead of the Element prototype from this Window.
- page/inspector/inspector.js: (WebInspector.performSearch): Ditto for Document prototype.
- page/inspector/utilities.js: (Object.type): Now takes an optional Window parameter that is used to find the built-in constructors.
- 4:45 PM Changeset in webkit [31888] by
-
- 2 edits in trunk/WebCore
Don't store objects from the Inspector on CSSStyleRules from the inspected page
Reviewed by Tim Hatcher.
- page/inspector/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.update): Don't store raw CSSStyleRules from the inspected page in the styleRules array. Instead, always use a wrapper object. This will keep us from setting Inspector objects as properties of inspected objects.
- 4:05 PM Changeset in webkit [31887] by
-
- 1 edit8 adds in branches/squirrelfish/SunSpider
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Oliver.
- move ubench tests properly.
- tests/ubench: Added.
- tests/ubench/function-closure.js: Added.
- tests/ubench/function-empty.js: Added.
- tests/ubench/function-missing-args.js: Added.
- tests/ubench/function-sum.js: Added.
- tests/ubench/loop-empty-resolve.js: Added.
- tests/ubench/loop-empty.js: Added.
- tests/ubench/loop-sum.js: Added.
- 3:55 PM Changeset in webkit [31886] by
-
- 2 edits in branches/squirrelfish/WebKitTools
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- added support for --ubench mode
- Scripts/run-sunspider:
- 3:47 PM Changeset in webkit [31885] by
-
- 6 edits in trunk/WebCore
Fixes a regression where clicking a resource URL in the Console would not
show the resource in the Resources panel.
https://bugs.webkit.org/show_bug.cgi?id=18493
Reviewed by Adam Roben.
- page/inspector/Console.js:
(WebInspector.Console.prototype._messagesClicked): Removed console-message-url
handling to show resources. This is now handled by WebInspector.showResourceForURL.
(WebInspector.ConsoleMessage.prototype.toMessageElement): Add the webkit-html-resource-link
class name to the URL anchor. Also add the line number as a property to the anchor.
- page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel): Add a reference to the tree element to each calculator.
(WebInspector.ResourcesPanel.prototype.showResource): Select and reveal the resource in
the sidebar. Call showLine on the resource view if it is implemented.
(WebInspector.ResourcesPanel.prototype.closeVisibleResource): Select the current calculator's
tree element in the sidebar.
(WebInspector.ResourcesPanel.prototype._graphSelected): Call closeVisibleResource after
the calculator changes since closeVisibleResource uses the calculator.
- page/inspector/SourceView.js:
(WebInspector.SourceView.prototype.sourceRow): Early return if the line is null/zero.
(WebInspector.SourceView.prototype.showLine): Renamed from showSourceLine.
- page/inspector/inspector.css:
(body.console-visible #main-panels): Made the bottom 24px to match
the height of #main-status-bar.
(.console-message-url): Make the color important so it wins over
the .webkit-html-resource-link rule.
(.resource-view .resource-view-content): Made more generic from .image
so all resource views get sized correctly.
(.resource-view.image .resource-view-content): Removed.
- page/inspector/inspector.js:
(WebInspector.documentClick): Pass the line number from the anchor to
WebInspector.showResourceForURL.
(WebInspector.showResourceForURL): Add line number support. Pass the line
to ResourcesPanel.showResource.
(WebInspector.addMainEventListeners): Use bind for the event listeners.
- 3:41 PM Changeset in webkit [31884] by
-
- 2 edits in branches/squirrelfish/SunSpider
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Oliver.
- sunspider: Don't force --runs=1 in squirrelfish mode any more.
- 2:55 PM Changeset in webkit [31883] by
-
- 12 edits in branches/squirrelfish
2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>
Reviewed and slightly tweaked by Geoffrey Garen.
Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>
- JavaScriptCore.pri: Add VM into include path and its files into source set
- VM/JSPropertyNameIterator.cpp: Fix include name
- VM/Machine.cpp: Add UNLIKELY macro for GCC
- VM/Machine.h: Add missing includes
- VM/RegisterFile.cpp: Add missing include
- kjs/testkjs.pro: Add VM into include path
WebCore:
2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>
Reviewed by Geoffrey Garen.
Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>
- WebCore.pro: Add JavaScriptCore/VM into include path
- 2:45 PM Changeset in webkit [31882] by
-
- 3 edits1 add1 delete in branches/squirrelfish/SunSpider
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- make --squirrelfish mode use the real harness, but a reduced set of tests
Also add a new ubench mode which runs the older squirrelfish microbenchmarks.
- sunspider:
- tests/LIST-SQUIRRELFISH:
- tests/LIST-UBENCH: Added.
- tests/squirrelfish: Moved to tests/ubench
- 2:31 PM Changeset in webkit [31881] by
-
- 1 edit1 delete in branches/squirrelfish/SunSpider
2008-04-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Removed an unused test.
- tests/squirrelfish/loop-resolve.js: Removed.
- 2:20 PM Changeset in webkit [31880] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Restored OwnPtr in some places where I had removed it previously. We
can have an OwnPtr to an undefined class in a header as long as the
class's destructor isn't in the header.
- 1:45 PM Changeset in webkit [31879] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed access to "this" inside dynamic scopes.
- VM/CodeGenerator.cpp: (KJS::CodeGenerator::registerForLocal): Always return a register for "this", even if we're not optimizing access to other locals. Because "this" is a keyword, it's always in a register and always accessible.
- VM/CodeGenerator.h: (KJS::CodeGenerator::shouldOptimizeLocals): Factored out a function for determining whether we should optimize access to locals, since eval will need to make this test a little more complicated.
- 1:18 PM Changeset in webkit [31878] by
-
- 6 edits2 adds1 delete in trunk
2008-04-14 Xan Lopez <xan@gnome.org>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=17917
Bug 17917: Cookie support for HTTP soup backend
Initial implementation of cookies for the http soup backend.
Moved CookieJarGtk to CookieJarSoup in network/soup and left the original
one as CookieJarCurl in network/curl.
Bumped the libsoup required version to 2.23 for cookie support.
- 1:06 PM Changeset in webkit [31877] by
-
- 8 edits in trunk
2008-04-14 Holger Freyther <zecke@selfish.org>
Reviewed by Alp Toker.
https://bugs.webkit.org/show_bug.cgi?id=18411
Enable Page caching and create FrameViews on the fly
Create the FrameView on the fly and cache pages
- Keep a copy of the GtkAdjustment to be able to reuse it for the FrameViews
- Do not initially create a FrameView and update the WebKit code to cope with not having a view.
- Cache seven pages by default.
- platform/gtk/ScrollViewGtk.cpp: (WebCore::ScrollView::setGtkAdjustments):
- 12:55 PM Changeset in webkit [31876] by
-
- 7 edits in trunk/WebCore
2008-04-14 David Hyatt <hyatt@apple.com>
Add a new optimized layout path for positioned objects that move. Also avoid always marking the <html>
object for layout when it has a percentage height, since the RenderView already does that when its size
changes.
Reviewed by mjs
- rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlockChildren): (WebCore::RenderBlock::layoutPositionedObjects):
- rendering/RenderBox.h: (WebCore::RenderBox::layoutDoingPositionedMovementOnly):
- rendering/RenderObject.cpp: (WebCore::RenderObject::RenderObject): (WebCore::RenderObject::setNeedsLayout): (WebCore::RenderObject::setChildNeedsLayout): (WebCore::RenderObject::setNeedsPositionedMovementLayout): (WebCore::RenderObject::setStyle):
- rendering/RenderObject.h: (WebCore::RenderObject::needsLayout): (WebCore::RenderObject::needsPositionedMovementLayoutOnly): (WebCore::RenderObject::layoutDoingPositionedMovementOnly):
- rendering/RenderStyle.cpp: (WebCore::positionedObjectMoved): (WebCore::RenderStyle::diff):
- rendering/RenderStyle.h: (WebCore::RenderStyle::):
- 12:30 PM Changeset in webkit [31875] by
-
- 3 adds in trunk/LayoutTests/platform/mac/fast/gradients
Add generated gradients layout test.
- 12:29 PM Changeset in webkit [31874] by
-
- 1 add in trunk/LayoutTests/fast/gradients/generated-gradients.html
Add generated gradients layout test.
- 12:28 PM Changeset in webkit [31873] by
-
- 16 edits2 adds in trunk/WebCore
2008-04-14 David Hyatt <hyatt@apple.com>
Add support for gradients in the CSS content property.
Reviewed by olliej
Added fast/gradients/generated-gradients.html
- GNUmakefile.am:
- WebCore.pro:
- WebCore.vcproj/WebCore.vcproj:
- WebCore.xcodeproj/project.pbxproj:
- WebCoreSources.bkl:
- css/CSSParser.cpp: (WebCore::CSSParser::parseContent):
- css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::styleImage): (WebCore::CSSStyleSelector::mapBackgroundImage):
- css/CSSStyleSelector.h:
- html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::attach):
- rendering/RenderContainer.cpp: (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
- rendering/RenderImage.cpp: (WebCore::RenderImage::RenderImage): (WebCore::RenderImage::setCachedImage): (WebCore::RenderImage::paintReplaced): (WebCore::RenderImage::calcReplacedWidth): (WebCore::RenderImage::calcReplacedHeight): (WebCore::RenderImage::calcAspectRatioWidth): (WebCore::RenderImage::calcAspectRatioHeight):
- rendering/RenderImage.h: (WebCore::RenderImage::hasImage): (WebCore::RenderImage::image): (WebCore::RenderImage::errorOccurred): (WebCore::RenderImage::usesImageContainerSize): (WebCore::RenderImage::setImageContainerSize): (WebCore::RenderImage::imageHasRelativeWidth): (WebCore::RenderImage::imageHasRelativeHeight): (WebCore::RenderImage::imageSize):
- rendering/RenderImageGeneratedContent.cpp: Added. (WebCore::RenderImageGeneratedContent::RenderImageGeneratedContent): (WebCore::RenderImageGeneratedContent::~RenderImageGeneratedContent): (WebCore::RenderImageGeneratedContent::setStyleImage):
- rendering/RenderImageGeneratedContent.h: Added. (WebCore::RenderImageGeneratedContent::hasImage): (WebCore::RenderImageGeneratedContent::image): (WebCore::RenderImageGeneratedContent::errorOccurred): (WebCore::RenderImageGeneratedContent::usesImageContainerSize): (WebCore::RenderImageGeneratedContent::setImageContainerSize): (WebCore::RenderImageGeneratedContent::imageHasRelativeWidth): (WebCore::RenderImageGeneratedContent::imageHasRelativeHeight): (WebCore::RenderImageGeneratedContent::imageSize):
- rendering/RenderObject.cpp: (WebCore::RenderObject::createObject):
- rendering/RenderStyle.cpp: (WebCore::StyleCachedImage::imageHasRelativeWidth): (WebCore::StyleCachedImage::imageHasRelativeHeight): (WebCore::StyleCachedImage::usesImageContainerSize): (WebCore::RenderStyle::contentDataEquivalent): (WebCore::RenderStyle::setContent): (WebCore::ContentData::clear):
- rendering/RenderStyle.h: (WebCore::StyleGeneratedImage::imageHasRelativeWidth): (WebCore::StyleGeneratedImage::imageHasRelativeHeight): (WebCore::StyleGeneratedImage::usesImageContainerSize): (WebCore::BackgroundLayer::setBackgroundImage): (WebCore::ContentData::): (WebCore::RenderStyle::setListStyleImage):
- 11:48 AM Changeset in webkit [31872] by
-
- 2 edits in trunk/JavaScriptCore
2008-04-14 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Don't leak the prototype class.
- API/JSClassRef.cpp: (OpaqueJSClass::create):
- 11:33 AM Changeset in webkit [31871] by
-
- 2 edits in trunk/JavaScriptCore
Fix build.
- wtf/ThreadingWin.cpp:
- 11:13 AM squirrelfish edited by
- (diff)
- 11:09 AM Changeset in webkit [31870] by
-
- 4 edits in trunk/WebCore
2008-04-14 Brady Eidson <beidson@apple.com>
Reviewed by Sam, but Anders too, and he was more thorough in his review
and thats the only reason Sam beat him
Swap the Page and SecurityOrigin arguments when creating a StorageArea.
SecurityOrigin is really the primary identifying characteristic of a StorageArea,
and StorageAreas that represent LocalStorage won't have an owner Page.
- storage/SessionStorage.cpp: (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea):
- storage/StorageArea.cpp: (WebCore::StorageArea::create): (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::copy): (WebCore::StorageArea::dispatchStorageEvent): Null check m_page here, as in the future it might be null
- storage/StorageArea.h:
- 10:41 AM Changeset in webkit [31869] by
-
- 3 edits in branches/squirrelfish/JavaScriptCore
2008-04-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adam.
- fix crash when running SunSpider full harness
When growing the register file's buffer to make space for new globals,
make sure to copy accounting for the fact that the new space is logically
at the beginning of the buffer in this case, instead of at the end as when
growing for a new call frame.
- VM/RegisterFile.cpp: (KJS::RegisterFile::newBuffer): (KJS::RegisterFile::growBuffer): (KJS::RegisterFile::addGlobalSlots):
- VM/RegisterFile.h:
- 10:09 AM Changeset in webkit [31868] by
-
- 1 edit in trunk/WebCore/English.lproj/InspectorLocalizedStrings.js
Forgot to land InspectorLocalizedStrings.js with my last commit.
- 10:05 AM Changeset in webkit [31867] by
-
- 3 edits2 adds in trunk/WebCore
Add support for changing the sort order of the resources. The two sorting
methods supported current are Time and Size.
Reviewed by Adam Roben.
- page/inspector/Images/statusbarMenuButton.png: Added.
- page/inspector/Images/statusbarMenuButtonSelected.png: Added.
- page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel): Create the status bar menu button and
setup the event listener to call _changeSortingFunction. Each option in
the select references a sorting function.
(WebInspector.ResourcesPanel.get statusBarItems): Add the sorting menu to the
items returned.
(WebInspector.ResourcesPanel._changeSortingFunction): Set the sorting function
to the selected option's function in the sorting menu.
- page/inspector/inspector.css: Added CSS rules for select elements in status bars.
- 10:05 AM Changeset in webkit [31866] by
-
- 4 edits3 adds in trunk/WebCore
Add support for toggling between small and large resource rows
in the Resources panel.
Reviewed by Adam Roben.
- English.lproj/InspectorLocalizedStrings.js: Added new tooltip string.
- page/inspector/Images/largerResourcesButtons.png: Added.
- page/inspector/Images/resourceDocumentIconSmall.png: Added.
- page/inspector/Images/resourcePlainIconSmall.png: Added.
- page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel): Create the status bar button and
setup the event listener to call _toggleLargerResources.
(WebInspector.ResourcesPanel.get statusBarItems): Return the status bar button.
(WebInspector.ResourcesPanel._toggleLargerResources): Toggle the class names
for the resources children list and the status bar button.
- page/inspector/inspector.css: New style rules for small resources
and the status bar item.
- 9:46 AM Changeset in webkit [31865] by
-
- 3 edits in trunk/WebCore
<rdar://problem/5854572> REGRESSION: AXPosition seems to be flipped in nightly build
AX was using the wrong method to determine the view to use to create the screen position
- 9:30 AM Changeset in webkit [31864] by
-
- 2 edits in trunk/JavaScriptCore
Reviewed by Adam Roben.
https://bugs.webkit.org/show_bug.cgi?id=18488
FastMalloc doesn't release thread-specific data on Windows
- wtf/ThreadingWin.cpp: (WTF::threadMapMutex): (WTF::initializeThreading): Call threadMapMutex once to initialize the static safely. (WTF::ThreadFunctionInvocation::ThreadFunctionInvocation): Added a structure to wrap thread entry point and arguments. (WTF::wtfThreadEntryPoint): Make sure to end all WTF threads with pthread_exit(), to give pthreads-win32 a chance to call destructors of thread-specific data. (WTF::createThread): Use _beginthreadex instead of CreateThread, because MSDN says so. Also removed a call to CreateEvent, for which I could see no reason at all.
- 9:24 AM Changeset in webkit [31863] by
-
- 4 edits in trunk/WebCore
2008-04-14 David Smith <catfish.man@gmail.com>
Reviewed by Timothy Hatcher.
- Fix https://bugs.webkit.org/show_bug.cgi?id=14258 Response time vs. download time should be shown in the network profile
- page/inspector/Resource.js: Change the sorting function to sort by response received time.
- page/inspector/ResourcesPanel.js: Hook up the existing infrastructure to two bars instead of one; one for the total time, one for the time post-response.
- page/inspector/inspector.css: Add a new rule to make the waiting bar have a lower opacity, and change the total bar opacity to handle the overlap
- 9:08 AM Changeset in webkit [31862] by
-
- 2 edits in trunk/JavaScriptCore
Touched a file to make JavaScriptCore.vcproj rebuild.
- wtf/MathExtras.h:
- 8:25 AM Changeset in webkit [31861] by
-
- 2 edits in trunk/JavaScriptCore
Windows build fix
Rubberstamped by Alexey Proskuryakov.
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Disable the "potentially uninitialized variable" warning for grammar.cpp, as it seems to be incorrect. yylval gets initialized by the lexer, but MSVC doesn't seem to understand this.
- 6:29 AM QtWebKitContrib edited by
- (diff)
- 4:50 AM Changeset in webkit [31860] by
-
- 4 edits2 adds in trunk
2008-04-14 Julien Chaffraix <jchaffraix@webkit.org>
Reviewed by Ap.
Bug 17403: WebKit Creates Invalid Xhtml Links with Ajax
http://bugs.webkit.org/show_bug.cgi?id=17403
The previous code had callbacks for the normal parsing (full document) and fragment parsing.
The difference was induced by the method we were using which did not accept a xmlParserCtxt.
The code has been refactored to allow us to share the callbacks between the different cases.
A drawback is that we have to use xmlParseContent which is an internal libxml method and thus
some internal intialization is done in WebCore.
Test: fast/parser/ampersand-escaped-parseXMLFragment.xhtml
- dom/XMLTokenizer.cpp: (WebCore::createStringParser): Moved didInit in the global scope as it is shared by the 2 create methods.
(WebCore::createMemoryParser): Create a memory parser similar to the previous code.
Initialize the xmlParserContext to call xmlParseContent in parseXMLDocumentFragment.
(WebCore::XMLTokenizer::initializeParserContext): Check m_parsingFragment to know
which create method to call.
- dom/XMLTokenizer.h: Added parseXMLDocumentFragment as a friend of XMLTokenizer.
2008-04-14 Julien Chaffraix <jchaffraix@webkit.org>
Reviewed by Ap.
Layout test for http://bugs.webkit.org/show_bug.cgi?id=17403:
WebKit Creates Invalid Xhtml Links with Ajax
- fast/parser/ampersand-escaped-parseXMLFragment-expected.txt: Added.
- fast/parser/ampersand-escaped-parseXMLFragment.xhtml: Added.