Timeline


and

08/19/08:

22:51 BuildingOnWindows edited by wilsong@gmail.com
(diff)
16:33 Changeset [35852] by eric@webkit.org

Reviewed by Geoff Garen.

Add the beginnings of Skia graphics support to WebCore
as I try to begin the long process of un-forking the changes
needed to WebCore to make Andriod's WebCore build.

I'll follow this up with actual *Skia.cpp files in a separate patch.

  • platform/graphics/AffineTransform.h:
  • platform/graphics/FloatPoint.h:
  • platform/graphics/FloatRect.h:
  • platform/graphics/Gradient.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Image.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageSource.h:
  • platform/graphics/IntPoint.h:
  • platform/graphics/IntRect.h:
  • platform/graphics/Path.h:
  • platform/graphics/Pattern.h:
  • svg/graphics/SVGPaintServerPattern.h:
  • svg/graphics/SVGPaintServerSolid.h:
15:46 Changeset [35851] by sfalken@apple.com

Fix Windows build more.

  • WebCore.vcproj/WebCore.vcproj:
15:36 Changeset [35850] by timothy@apple.com

Fixes the Web Inspector flashing white while resizing after
highlighting a page element. Calling disableScreenUpdatesUntilFlush
when attaching and detaching the Inspector page highlight is bad,
since the browser window might not flush again for a while. So screen
updates could be disabled for long periods of time, causing backing store
flashing while resizing. There is no need to call disableScreenUpdatesUntilFlush
when attaching or detaching the child window.

Reviewed by John Sullivan and Kevin McCullough.

  • WebInspector/WebNodeHighlight.m: (-[WebNodeHighlight attach]): Remove the call to disableScreenUpdatesUntilFlush. (-[WebNodeHighlight detach]): Ditto.
15:34 Changeset [35849] by sfalken@apple.com

Fix Windows build.

  • page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
15:29 Changeset [35848] by sfalken@apple.com

Fix build.

  • WebScriptCallFrame.cpp: (WebScriptCallFrame::jsValueToString):
15:22 Changeset [35847] by kmccullough@apple.com

2008-08-19 Kevin McCullough <kmccullough@apple.com>

Reviewed by Tim and Mark.

Implement DTrace hooks for dashcode and instruments.

  • API/JSProfilerPrivate.cpp: Added. Expose SPI so that profiling can be turned on from a client. The DTrace probes were added within the profiler mechanism for performance reasons so the profiler must be started to enable tracing. (JSStartProfiling): (JSEndProfiling):
  • API/JSProfilerPrivate.h: Added. Ditto.
  • JavaScriptCore.exp: Exposing the start/stop methods to clients.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • kjs/Tracing.d: Define the DTrace probes.
  • kjs/Tracing.h: Ditto.
  • profiler/ProfileGenerator.cpp: Implement the DTrace probes in the profiler. (KJS::ProfileGenerator::willExecute): (KJS::ProfileGenerator::didExecute):
15:05 Changeset [35846] by cfleizach@apple.com

<rdar://problem/4003764> Expose tables as AXTables

Exposes "data" tables in HTML as AXTables through accessibility

14:35 Changeset [35845] by sfalken@apple.com

Build fix.


  • kjs/operations.cpp: (KJS::equal):
13:18 Changeset [35844] by ap@webkit.org

Reviewed by Darin.

Fix run-webkit-tests misreporting crashed tests as timed out ones because DumpRenderTree
is waiting for crash reporter to let it exit.

The fix does not work on Tiger, because the state of the process is indistinguishable from
other waiting processes, at least not with this technique.

  • Scripts/run-webkit-tests:
11:39 Changeset [35843] by sfalken@apple.com

Build fix.
Add buildfailed support to stop builds early (preventing inaccurate error messages).
Add missing post-build rule to Release.

  • WebCore.vcproj/QTMovieWin.vcproj:
11:33 Changeset [35842] by timothy@apple.com

Added support for console.count in the inspector.

Reviewed by Geoff Garen.

  • page/Console.cpp: (WebCore::Console::count):
  • page/Console.h:
  • page/Console.idl: Added console.count.
  • page/InspectorController.cpp: (WebCore::InspectorController::didCommitLoad): Clears m_counts. (WebCore::InspectorController::count): Updates the count number sing "title@source:line" as the identifier, and adds a message to the console.
  • page/InspectorController.h: Added m_counts.
11:33 Changeset [35841] by timothy@apple.com

Clear console.time timers when changing page.

Reviewed by Geoff Garen.

  • page/InspectorController.cpp: (WebCore::InspectorController::didCommitLoad):
10:55 Changeset [35840] by adele@apple.com

2008-08-19 Eric Carlson <eric.carlson@apple.com>

Reviewed by Adele.

Fix for <rdar://problem/6154695> Full-page movies flicker while playing
https://bugs.webkit.org/show_bug.cgi?id=20404

Ignore setVisible() when visibility doesn't change.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): (WebCore::MediaPlayerPrivate::setVisible):
10:01 Changeset [35839] by timothy@apple.com

Correctly remembers the attached state of the Web Inspector so
it opens in that state for the next window, or next launch.

Reviewed by Kevin McCullough.

  • WebCoreSupport/WebInspectorClient.mm: (-[WebInspectorWindowController attach]): Set WebKitInspectorAttachedKey to YES in the user defaults. (-[WebInspectorWindowController detach]): Set WebKitInspectorAttachedKey to NO in the user defaults.
10:01 Changeset [35838] by timothy@apple.com

Fixes a bug in the Profile view where switching sort order, then
switching from heavy to tree mode would show the tree in the
previous sort order.

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

Reviewed by Kevin McCullough.

  • page/inspector/ProfileView.js: (WebInspector.ProfileView.prototype._changeView): Call _sortProfile on the next profile before assigning it to this.profile. (WebInspector.ProfileView.prototype._sortData): Call _sortProfile. (WebInspector.ProfileView.prototype._sortProfile): Moves from _sortData and takes a profile argument. If the profile passed in matches the this.profile, then call refresh.
10:01 Changeset [35837] by timothy@apple.com

Changed the default sort order now that heavy view is the default.
Also fixes a bug where the heavy profile was not sorted at first.

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

Reviewed by Kevin McCullough.

  • page/inspector/ProfileView.js: (WebInspector.ProfileView): Changed the default sort column. Also assign heavyProfile to profile, so the sortSelfTimeDescending call happens on the heavy profile before assigning to this.profile.
10:00 Changeset [35836] by timothy@apple.com

Fix an assertion when generating a heavy profile because the
empty value and deleted value of CallIdentifier where equal.

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

Reviewed by Dan Bernstein.

  • profiler/CallIdentifier.h: Make the emptyValue for CallIdentifier use empty strings for URL and function name.
10:00 Changeset [35835] by timothy@apple.com

Add support for editing DOM properties and scope variables by double
clicking a property to enter edit mode.

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

Reviewed by Kevin McCullough.

  • page/inspector/ObjectPropertiesSection.js: (WebInspector.ObjectPropertiesSection): Set editable to true by default. (WebInspector.ObjectPropertiesSection.prototype.onpopulate): Factored out code into update, and calls update. (WebInspector.ObjectPropertiesSection.prototype.update): Moved from onpopulate. Call removeChildren since this method can be called multiple times now. (WebInspector.ObjectPropertyTreeElement): Pass an empty title, the title gets made later in onattach. (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate): Don't return early if shouldRefreshChildren is true. Call removeChildren since this method can be called multiple times now. (WebInspector.ObjectPropertyTreeElement.prototype.ondblclick): Call startEditing. (WebInspector.ObjectPropertyTreeElement.prototype.onattach): Call update. (WebInspector.ObjectPropertyTreeElement.prototype.update): Update the title for this element (code moved from the constructor.) (WebInspector.ObjectPropertyTreeElement.prototype.updateSiblings): Recreate all sibling property elements. (WebInspector.ObjectPropertyTreeElement.prototype.startEditing): Call WebInspector.startEditing after rememebring some context. (WebInspector.ObjectPropertyTreeElement.prototype.editingEnded): Reset the scrollLeft for the list element, since it might have scrolled during editing. (WebInspector.ObjectPropertyTreeElement.prototype.editingCancelled): Call editingEnded then restore the state from the context. Then call update to restore the title. (WebInspector.ObjectPropertyTreeElement.prototype.editingCommitted): Call editingCancelled if the user input and the previous input are the same. Call editingEnded, then call applyExpression to commit the user input. (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): Evaluates the input expression and stores the result on the object for the property name of this element. If the expression is empty, delete the property and remove the tree element.
  • page/inspector/ScopeChainSidebarPane.js: (WebInspector.ScopeChainSidebarPane.prototype.update): Set the editInSelectedCallFrameWhenPaused property on each ObjectPropertiesSection. (WebInspector.ScopeVariableTreeElement.prototype.onattach): Call ObjectPropertyTreeElement's onattach since it is now implemented.
  • page/inspector/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame): Added an updateInterface argument that defaults to true if omitted. It specifies whether to call update on the scope chain.
  • page/inspector/inspector.css: New styles.
  • page/inspector/treeoutline.js: (TreeElement.prototype._attach): Fixed an exception that fired when handling the shouldRefreshChildren change. The nextSibling would exist but have a _listItemNode that didn't match the new parent.
10:00 Changeset [35834] by timothy@apple.com

Surround the expression to be evaluated in parenthesis so the
result of the eval is the result of the whole expression not
the last potential sub-expression. So evaluating {x: 123}
will show the Object not 123.

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

Reviewed by Kevin McCullough.

  • page/inspector/Console.js: (Console.prototype._evalInInspectedWindow): Add parenthesis around the expression. And add couple comments.
09:38 Changeset [35833] by kmccullough@apple.com

2008-08-19 Kevin McCullough <kmccullough@apple.com>

Reviewed by Geoff.

-Implement a page() function to extract a common code pattern.

  • WebCore.xcodeproj/project.pbxproj:
  • page/Console.cpp: (WebCore::Console::addMessage): (WebCore::Console::error): (WebCore::Console::info): (WebCore::Console::log): (WebCore::Console::dir): (WebCore::Console::assertCondition): (WebCore::Console::time): (WebCore::Console::timeEnd): (WebCore::Console::group): (WebCore::Console::groupEnd): (WebCore::Console::finishedProfiling): (WebCore::Console::warn): (WebCore::Console::framePage):
  • page/Console.h:
07:35 Changeset [35832] by ap@webkit.org

https://bugs.webkit.org/show_bug.cgi?id=19762
Crash in svg/webarchive/svg-cursor-subresources.svg

Disabling the test while the crash is being investigated.

00:27 Changeset [35831] by ap@webkit.org

Reviewed by Dan Bernstein.

https://bugs.webkit.org/show_bug.cgi?id=19347
<rdar://problem/5977562> Input methods do not work after switching to a password field
and back.

Fix <rdar://problem/5522011> (The content of the password field of Safari is displayed by
reconversion) in a different way which doesn't conflict with context caching performed
by AppKit.

This original bug does not really occur in ToT or shipping Safari under Mac OS X 10.5.4,
because input methods are disabled in password fields. Attempting to reconvert text typed
with Romaji only yields a string of bullets. Still, it is probably better to match Cocoa
password field behavior and disable reconversion completely.

  • WebView/WebHTMLView.mm: (isInPasswordField): Factored out code to determine that the current selection is in a password field. (inputContext): Removed a hack that was breaking TSMGetActiveDocument(). (-[WebHTMLView attributedSubstringFromRange:]): Check for password fields. (-[WebHTMLView textStorage]): Ditto.

08/18/08:

21:39 Changeset [35830] by darin@apple.com

JavaScriptCore:

2008-08-12 Darin Adler <darin@apple.com>

Reviewed by Geoff.

  • eliminate JSValue::type()

This will make it slightly easier to change the JSImmediate design without
having to touch so many call sites.

SunSpider says this change is a wash (looked like a slight speedup, but not
statistically significant).

  • API/JSStringRef.cpp: Removed include of JSType.h.
  • API/JSValueRef.cpp: Removed include of JSType.h. (JSValueGetType): Replaced use of JSValue::type() with JSValue::is functions.
  • VM/JSPropertyNameIterator.cpp: Removed type() implementation. (KJS::JSPropertyNameIterator::toPrimitive): Changed to take PreferredPrimitiveType argument instead of JSType.
  • VM/JSPropertyNameIterator.h: Ditto.
  • VM/Machine.cpp: (KJS::fastIsNumber): Updated for name change. (KJS::fastToInt32): Ditto. (KJS::fastToUInt32): Ditto. (KJS::jsAddSlowCase): Updated toPrimitive caller for change from JSType to PreferredPrimitiveType. (KJS::jsAdd): Replaced calls to JSValue::type() with calls to JSValue::isString(). (KJS::jsTypeStringForValue): Replaced calls to JSValue::type() with multiple calls to JSValue::is -- we could make this a virtual function instead if we want to have faster performance. (KJS::Machine::privateExecute): Renamed JSImmediate::toTruncatedUInt32 to JSImmediate::getTruncatedUInt32 for consistency with other functions. Changed two calls of JSValue::type() to JSValue::isString().
  • kjs/GetterSetter.cpp: (KJS::GetterSetter::toPrimitive): Changed to take PreferredPrimitiveType argument instead of JSType. (KJS::GetterSetter::isGetterSetter): Added.
  • kjs/GetterSetter.h:
  • kjs/JSCell.cpp: (KJS::JSCell::isString): Added. (KJS::JSCell::isGetterSetter): Added. (KJS::JSCell::isObject): Added.
  • kjs/JSCell.h: Eliminated type function. Added isGetterSetter. Made isString and isObject virtual. Changed toPrimitive to take PreferredPrimitiveType argument instead of JSType. (KJS::JSCell::isNumber): Use Heap::isNumber for faster performance. (KJS::JSValue::isGetterSetter): Added. (KJS::JSValue::toPrimitive): Changed to take PreferredPrimitiveType argument instead of JSType.
  • kjs/JSImmediate.h: Removed JSValue::type() and replaced JSValue::toTruncatedUInt32 with JSValue::getTruncatedUInt32. (KJS::JSImmediate::isEitherImmediate): Added.
  • kjs/JSNotAnObject.cpp: (KJS::JSNotAnObject::toPrimitive): Changed to take PreferredPrimitiveType argument instead of JSType.
  • kjs/JSNotAnObject.h: Ditto.
  • kjs/JSNumberCell.cpp: (KJS::JSNumberCell::toPrimitive): Ditto.
  • kjs/JSNumberCell.h: (KJS::JSNumberCell::toInt32): Renamed from fastToInt32. There's no other "slow" version of this once you have a JSNumberCell, so there's no need for "fast" in the name. It's a feature that this hides the base class toInt32, which does the same job less efficiently (and has an additional ExecState argument). (KJS::JSNumberCell::toUInt32): Ditto.
  • kjs/JSObject.cpp: (KJS::callDefaultValueFunction): Use isGetterSetter instead of type. (KJS::JSObject::getPrimitiveNumber): Use PreferredPrimitiveType. (KJS::JSObject::defaultValue): Ditto. (KJS::JSObject::defineGetter): Use isGetterSetter. (KJS::JSObject::defineSetter): Ditto. (KJS::JSObject::lookupGetter): Ditto. (KJS::JSObject::lookupSetter): Ditto. (KJS::JSObject::toNumber): Use PreferredPrimitiveType. (KJS::JSObject::toString): Ditto. (KJS::JSObject::isObject): Added.
  • kjs/JSObject.h: (KJS::JSObject::inherits): Call the isObject from JSCell; it's now hidden by our override of isObject. (KJS::JSObject::getOwnPropertySlotForWrite): Use isGetterSetter instead of type. (KJS::JSObject::getOwnPropertySlot): Ditto. (KJS::JSObject::toPrimitive): Use PreferredPrimitiveType.
  • kjs/JSString.cpp: (KJS::JSString::toPrimitive): Use PreferredPrimitiveType. (KJS::JSString::isString): Added.
  • kjs/JSString.h: Ditto.
  • kjs/JSValue.h: Removed type(), added isGetterSetter(). Added PreferredPrimitiveType enum and used it as the argument for the toPrimitive function. (KJS::JSValue::getBoolean): Simplified a bit an removed a branch.
  • kjs/collector.cpp: (KJS::typeName): Changed to use JSCell::is functions instead of calling JSCell::type.
  • kjs/collector.h: (KJS::Heap::isNumber): Renamed from fastIsNumber.
  • kjs/nodes.h: Added now-needed include of JSType, since the type is used here to record types of values in the tree.
  • kjs/operations.cpp: (KJS::equal): Rewrote to no longer depend on type(). (KJS::strictEqual): Ditto.

JavaScriptGlue:

2008-08-12 Darin Adler <darin@apple.com>

Reviewed by Geoff.

  • eliminate JSValue::type()
  • JSUtils.cpp: (KJSValueToCFTypeInternal): Replaced uses of JSValue::type() with JSValue::is functions.
  • UserObjectImp.cpp: (UserObjectImp::getOwnPropertySlot): Ditto. (UserObjectImp::toPrimitive): Take PreferredPrimitiveType argument instead of JSType argument.
  • UserObjectImp.h: Ditto.

WebCore:

2008-08-12 Darin Adler <darin@apple.com>

Reviewed by Geoff.

  • eliminate JSValue::type()
  • bridge/c/c_instance.cpp: (KJS::Bindings::CInstance::defaultValue): Take PreferredPrimitiveType argument instead of JSType argument. Removed unneeded code to handle boolean, since that's never passed.
  • bridge/c/c_instance.h: Ditto.
  • bridge/c/c_utility.cpp: (KJS::Bindings::convertValueToNPVariant): Use JSValue::is functions instead of JSValue::type(). Removed unneeded code to handle "unspecified".
  • bridge/jni/jni_instance.cpp: (JavaInstance::defaultValue): Take PreferredPrimitiveType argument instead of JSType argument. Removed unneeded code to handle boolean.
  • bridge/jni/jni_instance.h: Ditto.
  • bridge/jni/jni_jsobject.mm: (JavaJSObject::convertValueToJObject): Use JSValue::is functions instead of JSValue::type().
  • bridge/objc/objc_instance.h: Take PreferredPrimitiveType argument instead of JSType argument. Removed unused argument.
  • bridge/objc/objc_instance.mm: (ObjcInstance::getValueOfUndefinedField): Removed unused argument. (ObjcInstance::defaultValue): Take PreferredPrimitiveType argument instead of JSType argument. Removed unneeded code to handle boolean and another dead code path for unknown types.
  • bridge/objc/objc_runtime.h: Take PreferredPrimitiveType argument instead of JSType argument. Removed override of type() that caused the fallback object to return "UndefinedType" when there is no invokeUndefinedMethodFromWebScript:withArguments: method defined. That didn't accomplish much, since most checks for undefined don't ever call type().
  • bridge/objc/objc_runtime.mm: (ObjcFallbackObjectImp::defaultValue): Ditto.
  • bridge/qt/qt_instance.cpp: (KJS::Bindings::QtInstance::defaultValue): Take PreferredPrimitiveType argument instead of JSType argument. Removed unneeded code to handle boolean.
  • bridge/qt/qt_instance.h: Ditto.
  • bridge/runtime.h: (KJS::Bindings::Instance::getValueOfUndefinedField): Removed unsed argument.
  • bridge/runtime_object.cpp: (RuntimeObjectImp::defaultValue): Take PreferredPrimitiveType argument instead of JSType argument.
  • bridge/runtime_object.h: Ditto.

WebKit/mac:

2008-08-12 Darin Adler <darin@apple.com>

Reviewed by Geoff.

  • eliminate JSValue::type()
  • WebView/WebView.mm: (aeDescFromJSValue): Rewrite to use the JSValue::is functions instead of a switch on JSValue::type().

LayoutTests:

2008-08-12 Darin Adler <darin@apple.com>

Reviewed by Geoff.

  • added a test since I had to rewrite the == and === operators
  • fast/js/equality-expected.txt: Added.
  • fast/js/equality.html: Added.
  • fast/js/resources/equality.js: Added.
17:42 Changeset [35829] by britto@apple.com

2008-08-18 Maxime Britto <britto@apple.com>

Reviewed by Adele.

<rdar://6157207> Mouse pointer does not change when new window is opened after pan-scrolling original window
Related to the discussion from rdar://6102511 , we should disable every key event (except for the esc key which stops the panning).
We shouldn't be able to create another window while we are in pan scrolling.
Other browsers behaviors :

FF3 : Most of the keys are disabled, there is no way to create another window while in panscroll mode
IE7 : Keys are not disabled but stops immediately the panning.

This patch matches FF3 behavior by disabling every key but the esc key.

  • page/EventHandler.cpp: (WebCore::EventHandler::stopAutoscrollTimer): Change the cursor back to the regular arrow cursor when the pannning is stopped. (WebCore::EventHandler::keyEvent): When a key event is received while in panning or autoscroll we swallow the event early.
17:20 Changeset [35828] by mitz@apple.com

WebCore:

Reviewed by Dave Hyatt.

  • fix <rdar://problem/5862634> REGRESSION (3.1.1): In iChat, inline image not resizable past current size after another IM is received

Test: fast/replaced/max-width-percent.html

Added an includeMaxWidth boolean to RenderBox::calcReplaedWidth().
When false, max-width is not factored into the
calculation.
Changed RenderReplaced and subclasses' calcPrefWidths() to call
calcReplacedWidth(false) and then apply max-width only if it has a
fixed, positive value.

  • rendering/RenderBox.cpp: (WebCore::RenderBox::calcReplacedWidth):
  • rendering/RenderBox.h:
  • rendering/RenderImage.cpp: (WebCore::RenderImage::calcReplacedWidth): (WebCore::RenderImage::calcPrefWidths):
  • rendering/RenderImage.h:
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::calcPrefWidths):
  • rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::calcPrefWidths):
  • rendering/RenderVideo.cpp: (WebCore::RenderVideo::calcReplacedWidth): (WebCore::RenderVideo::calcPrefWidths):
  • rendering/RenderVideo.h:

LayoutTests:

Reviewed by Dave Hyatt.

  • test for <rdar://problem/5862634> REGRESSION (3.1.1): In iChat, inline image not resizable past current size after another IM is received
  • fast/replaced/max-width-percent.html: Added.
  • platform/mac/fast/replaced/max-width-percent-expected.checksum: Added.
  • platform/mac/fast/replaced/max-width-percent-expected.png: Added.
  • platform/mac/fast/replaced/max-width-percent-expected.txt: Added.
16:08 Changeset [35827] by simon.fraser@apple.com

Make transition_shorthand_parsing.html a text-only test.

  • fast/css/transition_shorthand_parsing-expected.txt: Added.
  • fast/css/transition_shorthand_parsing.html:
  • platform/mac/fast/css/transition_shorthand_parsing-expected.txt:
15:47 Changeset [35826] by mrowe@apple.com

2008-08-18 Daniel Macks <dmacks@netspace.org>

Reviewed by Mark Rowe.

https://bugs.webkit.org/show_bug.cgi?id=20410
More portable/self-documenting replacement for SIZE_MAX.

  • platform/network/curl/FormDataStreamCurl.cpp: (WebCore::FormDataStream::read):
15:11 Changeset [35825] by simon.fraser@apple.com

Reviewed by Dave Hyatt

Need to make sure we have an Animation in the AnimationList
before setting the initial value.
https://bugs.webkit.org/show_bug.cgi?id=20408

Test: fast/css/transition_shorthand_parsing.html

  • css/CSSStyleSelector.cpp:
14:55 Changeset [35824] by kevino@webkit.org

Build fix for Win. Don't include the libxml/libxslt directories in the
include path, it picks up the wrong Pattern.h in that case.

13:53 Changeset [35823] by kmccullough@apple.com

2008-08-18 Kevin McCullough <kmccullough@apple.com>

Reviewed by Tim.

If there are no nodes in a profile all the time should be attributed to
(idle)

  • profiler/Profile.cpp: If ther are no nodes make sure we still process the head. (KJS::Profile::forEach):
  • profiler/ProfileGenerator.cpp: Remove some useless code. (KJS::ProfileGenerator::stopProfiling):
13:53 Changeset [35822] by jchaffraix@webkit.org

WebCore:

2008-08-18 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Eric.

Bug 20347: [XBL] Add support for DocumentXBL interface

  • Add a custom NamedNodeMap for document.bindingsDocument as it is a static map that throws NO_MODIFICATIN_ALLOWED_ERR on modification.

Test: fast/xbl/xbl-bindingDocuments.html

  • GNUmakefile.am: Add NamedStaticDocumentMap.cpp.
  • WebCore.pro: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • dom/Document.cpp: (WebCore::Document::Document): Initialize m_bindingDocuments. (WebCore::Document::~Document): Zero m_bindingDocuments. (WebCore::Document::bindingDocuments): Getter method. (WebCore::Document::loadBindingDocument): Stub method as we need an helper class to load bindings. (WebCore::Document::createBindingDocumentsIfNeeded):
  • dom/Document.h:
  • dom/Document.idl: Add documentXBL interface.
  • dom/NamedStaticDocumentMap.cpp: Added. (WebCore::NamedStaticDocumentMap::NamedStaticDocumentMap): (WebCore::NamedStaticDocumentMap::~NamedStaticDocumentMap): (WebCore::NamedStaticDocumentMap::getNamedItem): (WebCore::NamedStaticDocumentMap::removeNamedItem): (WebCore::NamedStaticDocumentMap::getNamedItemNS): (WebCore::NamedStaticDocumentMap::removeNamedItemNS): (WebCore::NamedStaticDocumentMap::setNamedItem): (WebCore::NamedStaticDocumentMap::item): (WebCore::NamedStaticDocumentMap::addItem):
  • dom/NamedStaticDocumentMap.h: Added. (WebCore::NamedStaticDocumentMap::create): (WebCore::NamedStaticDocumentMap::length): (WebCore::NamedStaticDocumentMap::clear): Custom NamedNodeMap that match the specification.

LayoutTests:

2008-08-18 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Eric.

Test case for bug 20347: [XBL] Add support for DocumentXBL interface

  • fast/xbl/resources/bindingDocuments.js: Added.
  • fast/xbl/xbl-bindingDocuments-expected.txt: Added.
  • fast/xbl/xbl-bindingDocuments.html: Added.
13:21 Changeset [35821] by kmccullough@apple.com

2008-08-18 Kevin McCullough <kmccullough@apple.com>

Reviewed by Tim.

<rdar://problem/6150593> JSProfiler: Empty profiles disappear when there
is another profile.

  • page/inspector/ProfilesPanel.js:
12:55 Changeset [35820] by kmccullough@apple.com

2008-08-18 Kevin McCullough <kmccullough@apple.com>

Reviewed by Geoff.

<rdar://problem/6150642> REGRESSION: Closing the Web Inspector clears
all console messages

  • page/inspector/Console.js:
08:54 Changeset [35819] by jchaffraix@webkit.org

WebCore:

2008-08-18 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Eric.

Bug 20263: [XBL] Add loading code for XBLBinding

Test: fast/xbl/xbl-empty-fragment-loadBinding.html

  • GNUmakefile.am: Add XBLBinding.cpp.
  • WebCore.pro: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • xbl/XBLBinding.cpp: Added. (WebCore::XBLBinding::XBLBinding): (WebCore::XBLBinding::~XBLBinding): (WebCore::XBLBinding::setXBLDocument): (WebCore::XBLBinding::getBindingElement):
  • xbl/XBLBinding.h: Inherit from CachedResourceClient to use the Cache management. Also added the bound element, the <binding> element as members.


  • xbl/XBLBindingManager.cpp: Changed Vector<XBLBinding>* to Vector<XBLBinding*>* as we were taking a pointer to a local value.


(WebCore::XBLBindingManager::addBinding): Ditto.
(WebCore::XBLBindingManager::removeBinding): Ditto.
(WebCore::XBLBindingManager::hasBinding): Ditto.
(WebCore::XBLBindingManager::removeAllBindings): Ditto.

  • xbl/XBLBindingManager.h: Ditto.

LayoutTests:

2008-08-18 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Eric.


Test case for bug 20263: [XBL] Add loading code for XBLBinding


  • fast/xbl/resources/xbl-failed-binding.xbl: Added.
  • fast/xbl/resources/xbl-passed-binding.xbl: Added.
  • fast/xbl/xbl-empty-fragment-loadBinding-expected.txt: Added.
  • fast/xbl/xbl-empty-fragment-loadBinding.html: Added.


07:54 Changeset [35818] by mrowe@apple.com

Upgrade to WordPress 2.6.1.

04:20 Changeset [35817] by jmalonzo@webkit.org

2008-08-18 Dirk Schulze <vbs85@gmx.de>

Reviewed by Eric Seidel.

Fixed Canvas for Cairo. Stroke and fill colors didn't work after
the canvas clean up.

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

  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::fill): (WebCore::CanvasRenderingContext2D::stroke): (WebCore::CanvasRenderingContext2D::fillRect):
04:14 Changeset [35816] by jmalonzo@webkit.org

2008-08-18 Alp Toker <alp@nuanti.com>

Reviewed by Holger Freyther.

https://bugs.webkit.org/show_bug.cgi?id=20350
[GTK] Get DumpRenderTree working

WebKit/gtk:

Add a private function to WebFrame to dump the render tree as required
for the DumpRenderTree testing tool.

  • webkit/webkitprivate.h:
  • webkit/webkitwebframe.cpp:

WebKitTools/DumpRenderTree/gtk:

Fixes and enhancements to DumpRenderTree. With these changes, the test
suite can now complete a run producing text and render tree dumps.

  • DumpRenderTree/gtk/DumpRenderTree.cpp: (dumpFramesAsText): (dump): (runTest): (webViewLoadFinished): (webViewWindowObjectCleared): (webViewConsoleMessage): (webViewScriptAlert): (webViewScriptPrompt): (webViewScriptConfirm): (webViewTitleChanged): (main):
  • DumpRenderTree/gtk/DumpRenderTreeGtk.h:
  • DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: (LayoutTestController::clearBackForwardList): (LayoutTestController::pathToLocalResource): (LayoutTestController::setAcceptsEditing): (LayoutTestController::setUserStyleSheetEnabled): (LayoutTestController::setUserStyleSheetLocation): (waitToDumpWatchdogFired): (LayoutTestController::windowCount):
  • DumpRenderTree/gtk/WorkQueueItemGtk.cpp: (JSStringCopyUTF8CString): (ScriptItem::invoke):
01:09 Changeset [35815] by ap@webkit.org

Reviewed by Maciej.

Make JSGlobalContextRetain/Release actually work.

  • API/JSContextRef.cpp: (JSGlobalContextRetain): (JSGlobalContextRelease): Ref/deref global data to give checking for globalData.refCount() some sense.
  • API/tests/testapi.c: (main): Added a test for this bug.
  • kjs/JSGlobalData.cpp: (KJS::JSGlobalData::~JSGlobalData): While checking for memory leaks, found that JSGlobalData::emptyList has changed to a pointer, but it was not destructed, causing a huge leak in run-webkit-tests --threaded.

08/17/08:

20:21 Changeset [35814] by timothy@apple.com

Complete in scope variables in the Console when paused.

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

Reviewed by Geoffrey Garen.

  • page/inspector/Console.js: (WebInspector.Console.prototype.completions): If the expressionString is null or empty and the debugger is paused, call variablesInScopeForSelectedCallFrame to get an object that declares all the in scope variables. That way "top level" expressions are completed.
  • page/inspector/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.variablesInScopeForSelectedCallFrame): Return an object that has all the variables that are in scope for the selected call frame. The value of each property is just true. The return object is useful for quick lookups or auto completion.
19:42 Changeset [35813] by cwzwarich@webkit.org

2008-08-17 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Change the counting of constants so that preincrement and predecrement of
const local variables are considered unexpected loads.

JavaScriptCore:

  • kjs/nodes.cpp: (KJS::PrefixResolveNode::emitCode):
  • kjs/nodes.h: (KJS::ScopeNode::neededConstants):

LayoutTests:

  • fast/js/deep-recursion-test.html:
16:38 Changeset [35812] by oliver@apple.com

<rdar://problem/6150322> In Gmail, a crash occurs at KJS::Machine::privateExecute() when applying list styling to text after a quote had been removed
<https://bugs.webkit.org/show_bug.cgi?id=20386>

Reviewed by Cameron Zwarich.

This crash was caused by "depth()" incorrectly determining the scope depth
of a 0 depth function without a full scope chain. Because such a function
would not have an activation the depth function would return the scope depth
of the parent frame, thus triggering an incorrect unwind. Any subsequent
look up that walked the scope chain would result in incorrect behaviour,
leading to a crash or incorrect variable resolution. This can only actually
happen in try...finally statements as that's the only path that can result in
the need to unwind the scope chain, but not force the function to need a
full scope chain.

14:34 Changeset [35811] by cwzwarich@webkit.org

2008-08-17 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Speculative Qt build fix.

  • bridge/qt/qt_runtime.cpp: (KJS::Bindings::convertValueToQVariant): (KJS::Bindings::QtRuntimeMethod::QtRuntimeMethod):
14:27 Changeset [35810] by cwzwarich@webkit.org

2008-08-17 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Bug 20419: Remove op_jless
<https://bugs.webkit.org/show_bug.cgi?id=20419>

Remove op_jless, which is rarely used now that we have op_loop_if_less.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitJumpIfTrue):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
14:18 Changeset [35809] by cwzwarich@webkit.org

2008-08-17 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Dan Bernstein.

Fix a typo in r35807 that is also causing build failures for
non-AllInOne builds.

  • kjs/NumberConstructor.cpp:
13:28 Changeset [35808] by ggaren@apple.com

JavaScriptGlue:

2008-08-17 Geoffrey Garen <ggaren@apple.com>

Reviewed by Cameron Zwarich.


Updated project files to XCode 3.1.

  • JavaScriptGlue.xcodeproj/project.pbxproj:

WebCore:

2008-08-17 Geoffrey Garen <ggaren@apple.com>

Reviewed by Cameron Zwarich.


Updated project files to XCode 3.1.

  • manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj:

WebKit:

2008-08-17 Geoffrey Garen <ggaren@apple.com>

Reviewed by Cameron Zwarich.


Updated project files to XCode 3.1.

  • WebKit.xcodeproj/project.pbxproj:

WebKitTools:

2008-08-17 Geoffrey Garen <ggaren@apple.com>

Reviewed by Cameron Zwarich.


Updated project files to XCode 3.1.

  • DrawTest/DrawTest.xcodeproj/project.pbxproj:
  • WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj:
13:23 Changeset [35807] by ggaren@apple.com

JavaScriptCore:

2008-08-17 Geoffrey Garen <ggaren@apple.com>

Reviewed by Cameron Zwarich.

Made room for a free word in JSCell.


SunSpider says no change.


I changed JSCallbackObjectData, Arguments, JSArray, and RegExpObject to
store auxiliary data in a secondary structure.

I changed InternalFunction to store the function's name in the property
map.


I changed JSGlobalObjectData to use a virtual destructor, so WebCore's
JSDOMWindowBaseData could inherit from it safely. (It's a strange design
for JSDOMWindowBase to allocate an object that JSGlobalObject deletes,
but that's really our only option, given the size constraint.)


I also added a bunch of compile-time ASSERTs, and removed lots of comments
in JSObject.h because they were often out of date, and they got in the
way of reading what was actually going on.


Also renamed JSArray::getLength to JSArray::length, to match our style
guidelines.

WebCore:

2008-08-17 Geoffrey Garen <ggaren@apple.com>

Reviewed by Cameron Zwarich.

Made room for a free word in JSCell.


Changed JSDOMWindowBase to store its auxiliary data in a subclass of
JSGlobalData, so the two could share a pointer.


Added a bunch of ASSERTs, to help catch over-sized objects.

WebKit/mac:

2008-08-17 Geoffrey Garen <ggaren@apple.com>

Reviewed by Cameron Zwarich.

Made room for a free word in JSCell.


(Updated for JavaScriptCore changes.)

00:57 Changeset [35806] by ggaren@apple.com

2007-08-16 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Sped up property access for array.length and string.length by adding a
mechanism for returning a temporary value directly instead of returning
a pointer to a function that retrieves the value.


Also removed some unused cruft from PropertySlot.


SunSpider says 0.5% - 1.2% faster.

NOTE: This optimization is not a good idea in general, because it's
actually a pessimization in the case of resolve for assignment,
and it may get in the way of other optimizations in the future.

08/16/08:

22:06 Changeset [35805] by mitz@apple.com

Reviewed by Geoffrey Garen.

Disable dead code stripping in debug builds.

  • Configurations/Base.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
20:28 Changeset [35804] by mitz@apple.com

2008-08-15 Mark Rowe <mrowe@apple.com>

Reviewed by Dan Bernstein.

Disable dead code stripping in debug builds.

  • Configurations/Base.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:

08/15/08:

23:53 Changeset [35803] by mrowe@apple.com

<rdar://problem/6143072> FastMallocZone's enumeration code makes assumptions about handling of remote memory regions that overlap

Reviewed by Oliver Hunt.

  • wtf/FastMalloc.cpp:

(WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Don't directly compare pointers mapped into the local process with
a pointer that has not been mapped. Instead, calculate a local address for the pointer and compare with that.
(WTF::TCMallocStats::FreeObjectFinder::findFreeObjects): Pass in the remote address of the central free list so that it can
be used when calculating local addresses.
(WTF::TCMallocStats::FastMallocZone::enumerate): Ditto.

23:48 Changeset [35802] by mrowe@apple.com

<rdar://problem/6139914> Please include a _debug version of JavaScriptCore framework

Rubber-stamped by Geoff Garen.

15:58 Changeset [35801] by antti@apple.com

2008-08-15 Antti Koivisto <antti@apple.com>

Reviewed by Anders.

Don't start preloading body resources before the head is complete. This prevents
body preloads from slowing down initial display when there is limited amount
of bandwidth available.


Works by queuing up found body preloads to DocLoader and only issuing them
after document has rendering.


With bandwidth capped to 300kbit/s this speeds up cnn.com initial display by ~25% or 5s
without affecting complete load time.

  • html/PreloadScanner.cpp: (WebCore::PreloadScanner::PreloadScanner): (WebCore::PreloadScanner::scanningBody): (WebCore::PreloadScanner::emitTag): (WebCore::PreloadScanner::emitCSSRule):
  • html/PreloadScanner.h:
  • loader/DocLoader.cpp: (WebCore::DocLoader::preload): (WebCore::DocLoader::checkForPendingPreloads): (WebCore::DocLoader::requestPreload):
  • loader/DocLoader.h:
  • loader/loader.cpp: (WebCore::Loader::Host::didFinishLoading): (WebCore::Loader::Host::didFail):
14:08 Changeset [35800] by adachan@apple.com

Use item's computed style if the render style is 0 before falling back to the <select>'s style.
This way style set on an <hr> within a <select> will be honored.

Reviewed by Dave Hyatt and Dan Bernstein.

  • rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::itemStyle):
13:48 Changeset [35799] by antti@apple.com

2008-08-15 Antti Koivisto <antti@apple.com>

Reviewed by Oliver.

Some loader performance tweaks:

  • Make stylesheets highest priority instead of scripts. We block script execution on stylesheets. Especially if a stylesheet @imports other stylesheets it is important to get them to the front of the queue to not delay rendering.
  • Issue the first resource load for a host immediately even if the resource is low priority. TCP connection setup can take long time when latency is high so it is good to get started early.
  • When the document is fully parsed and stylesheets have been loaded there is no need to keep managing the load queues. Issue remaining loads to the network layer.
  • loader/loader.cpp: (WebCore::Loader::determinePriority): (WebCore::Loader::load): (WebCore::Loader::Host::servePendingRequests):
  • loader/loader.h:
11:35 Changeset [35798] by timothy@apple.com

Detach the script debugger when the Web Inspector's window closes.
This has always been the intended design, but never fully implemented.

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

Reviewed by Adam Roben.

  • page/InspectorController.cpp: (WebCore::InspectorController::setWindowVisible): Call stopDebugging() if the window is no longer visible.
11:27 Changeset [35797] by mitz@apple.com

Rubber-stamped by Tim Hatcher.

  • update results for console.dir
  • fast/dom/Window/window-properties-expected.txt:
11:12 Changeset [35796] by hausmann@webkit.org

2008-08-15 Håvard Wall <hwall@trolltech.com>

Reviewed by Simon.

Fixes: compile with QT_NO_UNDOCOMMAND/STACK

11:12 Changeset [35795] by hausmann@webkit.org

2008-08-15 Håvard Wall <hwall@trolltech.com>

Reviewed by Simon.

Fixes: compile with QT_NO_STYLE_STYLESHEET

11:12 Changeset [35794] by hausmann@webkit.org

Håvard Wall <hwall@trolltech.com>

Fixes: compile with QT_NO_SHORTCUT

11:12 Changeset [35793] by hausmann@webkit.org

2008-08-15 Håvard Wall <hwall@trolltech.com>

Reviewed by Simon.

Fixes: compile with QT_NO_CONTEXTMENU

11:11 Changeset [35792] by hausmann@webkit.org

2008-08-15 Håvard Wall <hwall@trolltech.com>

Reviewed by Simon.

Fixes: compile with QT_NO_WHEELEVENT

11:11 Changeset [35791] by hausmann@webkit.org

Håvard Wall <hwall@trolltech.com>

Fixes: compile with QT_NO_PRINTER

11:10 Changeset [35790] by hausmann@webkit.org

2008-08-15 David Boddie <dboddie@trolltech.com>

Reviewed by Simon.

Doc: Added documentation for default property values.

11:10 Changeset [35789] by hausmann@webkit.org

David Boddie <dboddie@trolltech.com>

Doc: Renamed snippets that appear in the code directory.

10:48 Changeset [35788] by timothy@apple.com

Fixed Bug 20210: Console groups are incorrect when closing and reopening the Inspector

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

Reviewed by Tim Hatcher.

  • page/Console.cpp: (WebCore::Console::group): (WebCore::Console::groupEnd):
  • page/Console.h: (WebCore::): Removed GroupTitleMessageLevel. Added StartGroupMessaageLevel and EndGroupMessageLevel.
  • page/InspectorController.cpp: (WebCore::InspectorController::startGroup): Increments group level by one and adds console message with StartGroupMessaageLevel. (WebCore::InspectorController::endGroup): Decrements group level by one and adds console message with EndGroupMessaageLevel.
  • page/InspectorController.h:
  • page/inspector/Console.js: (WebInspector.Console.prototype.addMessage): Creates new ConsoleGroup if the message is StartGroupMessaageLevel. (WebInspector.ConsoleMessage.prototype.toMessageElement): (WebInspector.ConsoleGroup.prototype.addMessage):
  • page/inspector/inspector.js:
10:35 Changeset [35787] by timothy@apple.com

Adds support for console.dir to the Inspector

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

Reviewed by Tim Hatcher.

  • bindings/js/JSConsoleCustom.cpp: (WebCore::JSConsole::dir):
  • page/Console.cpp: (WebCore::Console::dir):
  • page/Console.h: Added ObjectMessageLevel.
  • page/Console.idl: Added console.dir.
  • page/inspector/Console.js: (WebInspector.ConsoleMessage.prototypet.toMessageElement): Creates an ObjectPropertiesSection if the MessageLevel is Object.
  • page/inspector/ObjectPropertiesSection.js: "in" operator can't be used on primitive data types.
  • page/inspector/inspector.css:
10:06 Changeset [35786] by timothy@apple.com

Adds support for clear() in the Inspector console.

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

Reviewed by Tim Hatcher.

  • page/inspector/Console.js:
10:02 Changeset [35785] by timothy@apple.com

Cmd-F on Mac or Ctrl-F on other platforms now focus the search field.

Platform distinction and modifier key matching adjusted
by Daniel Jalkut <jalkut@red-sweater.com>

Bug 16313: text search (find) keybindings should work in the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=16313

Reviewed by Tim Hatcher.

  • page/inspector/inspector.js: Added a case for the F key
09:50 Changeset [35784] by timothy@apple.com

Fix for error when the string doesn't contain a webkit-profile link.

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

Reviewed by Tim Hatcher.

  • page/inspector/inspector.js:
09:33 Changeset [35783] by timothy@apple.com

Fixes two bugs where JavaScript could be executed from the page
while the debugger is paused.

The first issue was JSLazyEventListener not checking the paused
state before parsing the code.

The second issue was with the PageGroup version of
JavaScriptDebugServer::setJavaScriptPaused always passing false
to the Page version of JavaScriptDebugServer::setJavaScriptPaused,
and not the paused argument.

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

Reviewed by Adam Roben.

  • bindings/js/JSEventListener.cpp: (WebCore::JSLazyEventListener::parseCode): Check the paused state of the ScriptController. Return early if paused.
  • manual-tests/inspector/debugger-execution-while-paused.html: Added.
  • page/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::setJavaScriptPaused): Pass the paused argument to the Page version of setJavaScriptPaused.
07:55 Changeset [35782] by mrowe@apple.com

Fix the 64-bit build.

Add extra cast to avoid warnings about loss of precision when casting from
JSValue* to an integer type.

  • kjs/JSImmediate.h:

(KJS::JSImmediate::intValue):
(KJS::JSImmediate::uintValue):

04:59 Changeset [35781] by ap@webkit.org

Still fixing Windows build.

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Added OpaqueJSString to yet another place.
04:41 Changeset [35780] by barraclough@apple.com

Windows build fix

04:14 Changeset [35779] by ap@webkit.org

Trying to fix non-Apple builds.

  • ForwardingHeaders/JavaScriptCore/OpaqueJSString.h: Added.
03:42 Changeset [35778] by barraclough@apple.com

2008-08-15 Gavin Barraclough <barraclough@apple.com>

Reviewed by Geoff Garen.

Allow JSImmediate to hold 31 bit signed integer immediate values. The low two bits of a
JSValue* are a tag, with the tag value 00 indicating the JSValue* is a pointer to a
JSCell. Non-zero tag values used to indicate that the JSValue* is not a real pointer,
but instead holds an immediate value encoded within the pointer. This patch changes the
encoding so both the tag values 01 and 11 indicate the value is a signed integer, allowing
a 31 bit value to be stored. All other immediates are tagged with the value 10, and
distinguished by a secondary tag.

Roughly +2% on SunSpider.

  • kjs/JSImmediate.h: Encoding of JSImmediates has changed - see comment at head of file for

descption of new layout.

03:18 Changeset [35777] by ap@webkit.org

More build fixes.

  • API/OpaqueJSString.h: Add a namespace to friend declaration to appease MSVC.
  • API/JSStringRefCF.h: (JSStringCreateWithCFString) Cast UniChar* to UChar* explicitly.
  • JavaScriptCore.exp: Added OpaqueJSString::create(const KJS::UString&) to fix WebCore build.
01:32 Changeset [35776] by ap@webkit.org

Build fix.

  • JavaScriptCore.xcodeproj/project.pbxproj: Marked OpaqueJSString as private
  • kjs/identifier.cpp: (KJS::Identifier::checkSameIdentifierTable):
  • kjs/identifier.h: (KJS::Identifier::add): Since checkSameIdentifierTable is exported for debug build's sake, gcc wants it to be non-inline in release builds, too.
00:43 Changeset [35775] by ap@webkit.org

Reviewed by Geoff Garen.

JSStringRef is created context-free, but can get linked to one via an identifier table,
breaking an implicit API contract.

Made JSStringRef point to OpaqueJSString, which is a new string object separate from UString.

Note: See TracTimeline for information about the timeline view.