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

Timeline



Nov 21, 2002:

10:59 PM Changeset in webkit [2821] by darin
  • 27 edits
    3 adds in trunk

top level:

  • Site/Internal/Design/CFURL.rtf: Added.

Tools:

  • Scripts/last-update: Added. Script for Trey that tells you when you last did a cvs update, based on most-recently updated ChangeLog.

JavaScriptCore:

  • stop garbage collecting the ActivationImp objects, gets 3% on iBench
  • pave the way to separate the argument lists from scope chains
  • kjs/context.h: Added. Moved ContextImp here so it can use things defined in function.h
  • kjs/scope_chain.h: Added. Starting as a copy of List, to be improved.
  • kjs/scope_chain.cpp: Added. Starting as a copy of List, to be improved.
  • JavaScriptCore.pbproj/project.pbxproj: Rearranged things, added context.h.
  • kjs/function.cpp: (FunctionImp::call): Pass InterpreterImp, not ExecState, to ContextImp. (DeclaredFunctionImp::DeclaredFunctionImp): List -> ScopeChain. (ActivationImp::createArgumentsObject): ArgumentList -> List. (GlobalFuncImp::call): Pass InterpreterImp, not an ExecState, to ContextImp.
  • kjs/function.h: List -> ScopeChain.
  • kjs/function_object.cpp: (FunctionObjectImp::construct): List -> ScopeChain.
  • kjs/internal.cpp: (ContextImp::ContextImp): Set the context in the interpreter. (ContextImp::~ContextImp): Set the context in the interpreter to the caller. (ContextImp::mark): Mark all the activation objects. (InterpreterImp::InterpreterImp): Initialize context to 0. (InterpreterImp::mark): Mark the top context. (InterpreterImp::evaluate): Pass InterpreterImp to ContextImp.
  • kjs/internal.h: Move ContextImp to its own header. Add setContext to InterpreterImp.
  • kjs/interpreter.cpp: (Context::scopeChain): List -> ScopeChain.
  • kjs/interpreter.h: List -> ScopeChain.
  • kjs/nodes.cpp: (ResolveNode::evaluateReference): List -> ScopeChain. (FuncDeclNode::processFuncDecl): List -> ScopeChain. (FuncExprNode::evaluate): List -> ScopeChain.
  • kjs/object.cpp: List -> ScopeChain.
  • kjs/object.h: List -> ScopeChain.
  • kjs/types.h: Remove needsMarking features from List.
  • kjs/types.cpp: Ditto.

WebCore:

  • khtml/ecma/kjs_dom.cpp: (DOMNode::eventHandlerScope): List -> ScopeChain.
  • khtml/ecma/kjs_dom.h: List -> ScopeChain.
  • khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): List -> ScopeChain.
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLElement::eventHandlerScope): List -> ScopeChain.
  • khtml/ecma/kjs_html.h: List -> ScopeChain.
  • force-js-clean-timestamp: Not sure this is required, but better safe than sorry.
8:40 PM Changeset in webkit [2820] by cblu
  • 6 edits in trunk/WebKit

Removed workaround for: 3093170 - Handle clients receive data with length 0

as it's now fixed.

  • Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler receivedData:]): remove workaround
  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:didReceiveData:]): added asserts
6:58 PM Changeset in webkit [2819] by rjw
  • 4 edits in trunk/WebKit

A different fix to 3078065 that doesn't depend on the appkit's idea of
fixed pitch font.

The fix is to adjust the width of all characters that have the same width
as the space character to match the adjustment of the space character.
This has the slight downside that non-monospace fonts that contain glyphs
with the same width as the space character will have an extra adjustment.
In practice this is not noticeable as the adjustment is always sub-pixel.
Nor of course does this cause any mislayout, as it's done at the lowest
level for both measurement and drawing.

Until we move kthml internals to floats this will be just fine.

  • WebCoreSupport.subproj/WebTextRenderer.h:
  • WebCoreSupport.subproj/WebTextRenderer.m: (widthForGlyph): (-[WebTextRenderer initWithFont:]): (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):

tAfterNavigationPolicy:request:]):

6:43 PM Changeset in webkit [2818] by mjs
  • 4 edits in trunk/WebCore
  • force-js-clean-timestamp: Touch so other people's builds work.
6:08 PM Changeset in webkit [2817] by mjs
  • 5 edits in trunk/JavaScriptCore
  • reduced the size of PropertyMap by storing sizes and such in the dynamically allocated part of the object to reduce the size of ObjectImp - .5% speed improvement on JS iBench.
  • kjs/property_map.cpp:
  • kjs/property_map.h:
5:57 PM Changeset in webkit [2816] by hyatt
  • 4 edits in trunk/WebCore

Nested <a>s are never allowed. Make sure to always pop the
<a> blocks.

  • khtml/html/htmlparser.cpp: (KHTMLParser::getElement):
5:32 PM Changeset in webkit [2815] by hyatt
  • 4 edits in trunk/WebCore

Stop table cells from repainting the whole table when they
get a repaint. Gives another big boost to link rollover
performance when links' containing blocks are table cells.

  • khtml/rendering/render_table.cpp: (RenderTableCell::repaint):
5:26 PM Changeset in webkit [2814] by hyatt
  • 4 edits in trunk/WebCore

Fix <font> so that behaves just like <i>, <b>, etc. Stop
the (incorrect) allowance of blocks inside <font> tags.
This fixes the mispositioning on avoyagetoarcturus.blogspot.com
and fixes the vertical gaps on www.ve3d.com.

  • khtml/html/dtd.cpp: (DOM::checkChild):
5:20 PM Changeset in webkit [2813] by mjs
  • 11 edits in trunk

Tools:

  • CommitLogEditor/Makefile.am: Pass symroots for this tree to pbxbuild.
  • HotSpotFinder/Makefile.am: Pass symroots for this tree to pbxbuild.

JavaScriptCore:

  • Makefile.am: Pass symroots for this tree to pbxbuild.

Tests:

  • ObjcUnit/Makefile.am: Pass symroots for this tree to pbxbuild.
  • TestPlugin/Makefile.am: Pass symroots for this tree to pbxbuild.
  • WebFoundation-CacheLoader/Makefile.am: Pass symroots for this tree to pbxbuild.

WebFoundation:

  • Makefile.am: Pass symroots for this tree to pbxbuild.

WebCore:

  • Makefile.am: Pass symroots for this tree to pbxbuild.

WebKit:

  • Makefile.am: Pass symroots for this tree to pbxbuild.

WebBrowser:

  • Makefile.am: Pass symroots for this tree to pbxbuild.
5:17 PM Changeset in webkit [2812] by hyatt
  • 6 edits in trunk/WebCore

Fixed for tables. Make the percentage height calculation
more robust. Also add a hack for replaced elements to
subtract out their margins when computing percentage widths.
This keeps them from spilling out of table cells.

  • khtml/rendering/render_box.cpp: (RenderBox::calcReplacedWidth): (RenderBox::calcReplacedHeight):
  • khtml/rendering/render_table.cpp: (RenderTable::layoutRows):
  • khtml/xml/dom_nodeimpl.h:
4:25 PM Changeset in webkit [2811]
  • 4 copies in tags/Alexander-33

This commit was manufactured by cvs2svn to create tag 'Alexander-33'.

4:25 PM Changeset in webkit [2810] by mjs
  • 3 edits in trunk/WebCore

Moved Alexander-33 marker.

4:22 PM Changeset in webkit [2809] by rjw
  • 4 edits in trunk/WebCore

Fixed from SK's copy/paste whitespace issue.
This fixes 3076236 and a regression due to additional whitespace
in the DOM.

  • kwq/WebCoreBridge.mm: (attributedString):
4:13 PM Changeset in webkit [2808] by cblu
  • 4 edits in trunk/WebKit

Fixed: 3009881 - plugins get mouse-overs even when mouse is in menus
Fixed: 3108240 - Loading datasource sometimes doesn't have cancelled error when cancelled

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendNullEvent]): check if menus are showing (-[WebBaseNetscapePluginView restartNullEvents]): tweak
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _stopLoading]): set cancelled error if main handle is gone
4:03 PM Changeset in webkit [2807] by sheridan
  • 8 edits in trunk

Alex-33 stamp

2:06 PM Changeset in webkit [2806] by hyatt
  • 4 edits in trunk/WebCore

Fix mac.com regression (and weather.com regression).

  • khtml/rendering/bidi.cpp: (RenderFlow::findNextLineBreak):
1:19 PM Changeset in webkit [2805] by rjw
  • 4 edits in trunk/WebCore

Fixed performance regression! Argh.

  • khtml/rendering/font.cpp: (Font::width):
9:36 AM Changeset in webkit [2804] by darin
  • 8 edits in trunk

JavaScriptCore:

  • kjs/property_map.cpp: More assertions.

WebCore:

  • force-js-clean-timestamp: Trigger a rebuild because of the size change in ValueImp.
9:06 AM Changeset in webkit [2803] by darin
  • 5 edits in trunk/WebCore
  • fixed 3107286 -- REGRESSION: unrepro assertion failure in KWQKHTMLPart.mm keyEvent
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Handle case of nil document as well as case of nil focus node.
  • kwq/WebCoreBridge.mm: Tweak whitespace.
8:23 AM Changeset in webkit [2802] by darin
  • 4 edits in trunk/JavaScriptCore
  • kjs/property_map.cpp: Turn that consistency check back off.
8:22 AM Changeset in webkit [2801] by darin
  • 5 edits in trunk/JavaScriptCore
  • someone somewhere must be defining a macro named check, causing a compile failure in WebCore

Rename check() to checkConsistency().

  • kjs/property_map.h: Rename.
  • kjs/property_map.cpp: Yes, rename.
7:39 AM Changeset in webkit [2800] by darin
  • 12 edits in trunk/JavaScriptCore
  • add self-check to property map in hopes of finding the cnet.com bug
  • kjs/property_map.h: Add check() function.
  • kjs/property_map.cpp: Add the checking, controlled by DO_CONSISTENCY_CHECK.
  • fixed UChar interface so it's not so slow in debug builds
  • kjs/ustring.h: Nothing in UChar needs to be private.
  • kjs/function.cpp: (GlobalFuncImp::call):
  • kjs/function_object.cpp: (FunctionObjectImp::construct):
  • kjs/identifier.cpp:
  • kjs/lexer.cpp: (Lexer::setCode), (Lexer::shift):
  • kjs/lookup.cpp: (keysMatch):
  • kjs/ustring.cpp: (UString::Rep::computeHash), (KJS::compare): Use the "uc" field instead of the "unicode()" inline function.
7:11 AM Changeset in webkit [2799] by darin
  • 6 edits in trunk/JavaScriptCore
  • fixed a null-dereference I ran into while trying to reproduce bug 3107351
  • kjs/function.h: Change ActivationImp constructor to take context parameter.
  • kjs/function.cpp: (ActivationImp::ActivationImp): Take context parameter, not execution state parameter.
  • kjs/internal.cpp: (ContextImp::ContextImp): Initialize activation object from context, not execution state, because the new context is not yet in the execution state.

Nov 20, 2002:

11:42 PM Changeset in webkit [2798] by darin
  • 10 edits in trunk

WebFoundation:

  • English.lproj/StringsNotToBeLocalized.txt: Update.

WebCore:

  • fixed 3107383 -- clicking link on cnet.com leads to assertion failure

When we removed a frame, we were leaving behind an empty WebView. Yuck.

  • kwq/KWQScrollView.mm: (QScrollView::addChild): Use the new getOuterView. (QScrollView::removeChild): Ditto. This was the bug fix.
  • kwq/KWQWidget.h: Add getOuterView.
  • kwq/KWQWidget.mm: (QWidget::frameGeometry): Use the new getOuterView. (QWidget::setFrameGeometry): Ditto. (QWidget::getOuterView): Added. Does the WebCoreFrameView magic to find the WebView instead of the WebHTMLView. Yuck. (QWidget::paint): Use the new getOuterView.

WebKit:

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Unescape the string before executing it, so we don't suffer from bug 3083043 here in the javascript: URLs that come from plug-ins.
  • English.lproj/StringsNotToBeLocalized.txt: Update.

WebBrowser:

  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): Fix typo. "Import" the favorites, don't "Imported" them.
  • English.lproj/StringsNotToBeLocalized.txt: Let the update script sort this file.
10:05 PM Changeset in webkit [2797] by cblu
  • 5 edits
    2 deletes in trunk/WebKit

Fixed: 3079134 - Throttle plug-ins while in background

  • Plugins.subproj/WebBaseNetscapePluginView.h:
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendNullEvent]): new (-[WebBaseNetscapePluginView stopNullEvents]): stops timer (-[WebBaseNetscapePluginView restartNullEvents]): stops timer if there is one, and starts a new one based on window activation state (-[WebBaseNetscapePluginView start]): call restartNullEvents (-[WebBaseNetscapePluginView stop]): call stopNullEvents (-[WebBaseNetscapePluginView windowBecameKey:]): call restartNullEvents (-[WebBaseNetscapePluginView windowResignedKey:]): call restartNullEvents (-[WebBaseNetscapePluginView windowDidMiniaturize:]): call stopNullEvents (-[WebBaseNetscapePluginView windowDidDeminiaturize:]): call restartNullEvents
  • Plugins.subproj/WebNetscapePluginNullEventSender.h: Removed. No need for another class, use a timer.
  • Plugins.subproj/WebNetscapePluginNullEventSender.m: Removed. No need for another class, use a timer.
  • WebKit.pbproj/project.pbxproj:
6:20 PM Changeset in webkit [2796] by rjw
  • 4 edits in trunk

Fixed 3107007. Letter-spacing is causing width to be miscalculated.
This also fixed some selection problems.

  • khtml/rendering/font.cpp: (Font::width):

Fixed 3107007. Letter-spacing is causing width to be miscalculated.
This also fixed some selection problems.

  • WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):
5:35 PM Changeset in webkit [2795] by rjw
  • 1 edit in trunk/WebKit/WebCoreSupport.subproj/WebTextRenderer.h

Oops, forgot to checkin header change.

5:28 PM Changeset in webkit [2794] by darin
  • 6 edits in trunk/JavaScriptCore
  • added a feature for Richard to use in his back/forward cache
  • kjs/object.h: Added save/restoreProperties.
  • kjs/property_map.h: Here too.
  • kjs/property_map.cpp: Here too.
5:21 PM Changeset in webkit [2793] by rjw
  • 3 edits in trunk/WebKit

Fixed mono spaced fonts to always render with mono spacing! (3078065)

  • WebCoreSupport.subproj/WebTextRenderer.h:
  • WebCoreSupport.subproj/WebTextRenderer.m: (widthForGlyph): (-[WebTextRenderer initWithFont:]):
4:55 PM Changeset in webkit [2792] by darin
  • 8 edits in trunk/JavaScriptCore
  • created argument list objects only on demand for a 7.5% speedup
  • kjs/function.h: Change ActivationImp around.
  • kjs/function.cpp: (FunctionImp::call): Pass a pointer to the arguments list to avoid ref/unref. (FunctionImp::get): Get the function pointer from the context directly, not the activation object. (ArgumentsImp::ArgumentsImp): Add an overload that takes no arguments. (ActivationImp::ActivationImp): Store a context pointer and an arguments object pointer. (ActivationImp::get): Special case for arguments, create it and return it. (ActivationImp::put): Special case for arguments, can't be set. (ActivationImp::hasProperty): Special case for arguments, return true. (ActivationImp::deleteProperty): Special case for arguments, refuse to delete. (ActivationImp::mark): Mark the arguments object. (ActivationImp::createArgumentsObject): Do the work of actually creating it. (GlobalFuncImp::call): Use stack-based objects for the ContextImp and ExecState.
  • kjs/internal.h: Keep function and arguments pointer in the context.
  • kjs/internal.cpp: (ContextImp::ContextImp): Don't pass in the func and args when making an ActivationImp. (InterpreterImp::evaluate): Use stack-based objects here.
  • kjs/types.h: Add ArgumentList as a synonym for List, soon to be separate.
4:21 PM Changeset in webkit [2791] by mjs
  • 5 edits in trunk/JavaScriptCore

Reduced the size of ValueImp by 8 bytes for a .5% speedup.

  • kjs/value.h: Removed destructed flag. Made refcount and flag 16 bits each.
  • kjs/value.cpp: (ValueImp::~ValueImp): Don't set destructed flag.
3:55 PM Changeset in webkit [2790] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3074926 - crash in BitsToPix() trying to print cnet page

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView drawRect:]): disable experimental plug-in printing code.
2:59 PM Changeset in webkit [2789] by darin
  • 4 edits in trunk/JavaScriptCore
  • kjs/types.cpp: Keep ref count for the whole lists of nodes. Doesn't speed things up much, less than 1%.
2:26 PM Changeset in webkit [2788] by mjs
  • 4 edits in trunk/JavaScriptCore
  • kjs/collector.cpp: (Collector::allocate): Clear the flags on newly allocated objects.
2:11 PM Changeset in webkit [2787] by cblu
  • 4 edits in trunk/WebKit

Minor clean-up, logging and more error checking in plug-in code.

  • Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream setResponse:]): (-[WebBaseNetscapePluginStream receivedData:]): (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
  • Plugins.subproj/npapi.m: (NPN_UserAgent): (NPN_MemFree): (NPN_MemFlush): (NPN_ReloadPlugins):
1:49 PM Changeset in webkit [2786] by darin
  • 6 edits in trunk/JavaScriptCore
  • oops, checked in big regression instead of 5% speedup
  • kjs/function.cpp: (ActivationImp::ActivationImp): Make a marking list, not a refing list.
  • a cut at the sparse array implementation
  • kjs/array_instance.h: Keep storageLength separate from length.
  • kjs/array_object.cpp: (ArrayInstanceImp::ArrayInstanceImp): Start with storageLength == length. (ArrayInstanceImp::get): Check against storage length. (ArrayInstanceImp::put): Ditto. (ArrayInstanceImp::hasProperty): Ditto. (ArrayInstanceImp::deleteProperty): Ditto. (ArrayInstanceImp::setLength): Only enlarge storage length up to a cutoff. (ArrayInstanceImp::mark): Use storageLength. (ArrayInstanceImp::pushUndefinedObjectsToEnd): Added FIXME.
1:34 PM Changeset in webkit [2785] by darin
  • 4 edits in trunk/WebCore
  • force-js-clean-timestamp: Again.
1:25 PM Changeset in webkit [2784] by hyatt
  • 4 edits in trunk/WebCore

Fix the mac.com line-breaking bug. This was not a regression
but was present in Konq.

  • khtml/rendering/bidi.cpp: (RenderFlow::findNextLineBreak):
1:12 PM Changeset in webkit [2783] by darin
  • 31 edits
    1 add in trunk/JavaScriptCore
  • decrease ref/deref -- 5% speedup in iBench
  • JavaScriptCore.pbproj/project.pbxproj: Added array_instance.h
  • kjs/array_instance.h: Added so it can be shared by function.h.
  • kjs/array_object.cpp:
  • kjs/array_object.h:
  • kjs/bool_object.cpp:
  • kjs/bool_object.h:
  • kjs/collector.cpp:
  • kjs/date_object.cpp:
  • kjs/date_object.h:
  • kjs/error_object.cpp:
  • kjs/function.cpp:
  • kjs/function.h:
  • kjs/function_object.cpp:
  • kjs/internal.cpp:
  • kjs/internal.h:
  • kjs/math_object.cpp:
  • kjs/nodes.cpp:
  • kjs/number_object.cpp:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/object_object.cpp:
  • kjs/property_map.cpp:
  • kjs/reference.cpp:
  • kjs/reference.h:
  • kjs/regexp_object.cpp:
  • kjs/string_object.cpp:
  • kjs/string_object.h:
  • kjs/value.cpp:
  • kjs/value.h: Switched lots of interfaces so they don't require ref/deref.
11:20 AM Changeset in webkit [2782] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3061174 - javascript: URLs sent by plugins don't work

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]):
8:54 AM Changeset in webkit [2781] by mjs
  • 5 edits in trunk/JavaScriptCore

Fixed the two most obvious problems with the new GC for another 6%
improvement.

  • kjs/collector.cpp: (Collector::allocate): Don't bother doing the bit tests on a bitmap word if all it's bits are on. (Collector::collect): Track memoryFull boolean.
  • kjs/collector.h: Inlined outOfMemory since it was showing up on profiles.
2:07 AM Changeset in webkit [2780] by darin
  • 3 edits in trunk/WebKit

WebFoundation:

  • English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

WebKit:

  • English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

WebBrowser:

  • English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
  • Test/PageLoadTestController.m: (-[PageLoadTestController browserWindowClosed]): Explain the world leak check a bit more.
1:34 AM Changeset in webkit [2779] by mjs
  • 11 edits in trunk

JavaScriptCore:

Rewrote garbage collector to make blocks of actual memory instead
of blocks of pointers. 7% improvement on JavaScript
iBench. There's still lots of room to tune the new GC, this is
just my first cut.

  • kjs/collector.cpp: (Collector::allocate): (Collector::collect): (Collector::size): (Collector::outOfMemory): (Collector::finalCheck): (Collector::numGCNotAllowedObjects): (Collector::numReferencedObjects): (Collector::liveObjectClasses):
  • kjs/collector.h:
  • kjs/function.cpp: (ActivationImp::ActivationImp):
  • kjs/function.h:

WebCore:

  • force-js-clean-timestamp: Work around PB lameness yet again.
1:11 AM Changeset in webkit [2778] by darin
  • 9 edits in trunk/JavaScriptCore
  • on the road to killing ActivationImp
  • kjs/function.h: Add get/put to FunctionImp. Remove argumentsObject() from ActivationImp. Add function() to ActivationImp.
  • kjs/function.cpp: (FunctionImp::FunctionImp): No arguments property. (FunctionImp::call): No need to set up the arguments property. (FunctionImp::parameterString): Remove strangeness. (FunctionImp::processParameters): Ditto. (FunctionImp::get): Added, handles arguments and length properties. (FunctionImp::put): Ditto. (FunctionImp::hasProperty): Ditto. (FunctionImp::deleteProperty): Ditto. (ActivationImp::ActivationImp): Store a function pointer so we can find it in the context.
  • kjs/function_object.cpp: (FunctionObjectImp::construct): No need to set up arguments property.
  • kjs/nodes.cpp: (FuncExprNode::evaluate): No need to set up length property.
  • kjs/internal.h: Return ObjectImp * for activation object.
  • kjs/interpreter.h: Remove stray declaration of ExecStateImp.
12:53 AM Changeset in webkit [2777] by darin
  • 7 edits in trunk/JavaScriptCore
  • add a couple of list operations to avoid clearing lists so much during sorting; gives 1.5% iBench
  • kjs/types.h: Added replaceFirst/replaceLast.
  • kjs/types.cpp: (List::replaceFirst), (List::replaceLast): Added.
  • kjs/array_object.cpp: (compareWithCompareFunctionForQSort): Use replaceFirst/replaceLast.
  • kjs/property_map.cpp: Put in an ifdef so I can re-add/remove the single entry to see if it has outlived its usefulness. (It hasn't yet.)
12:15 AM Changeset in webkit [2776] by darin
  • 7 edits in trunk/JavaScriptCore
  • atomic identifiers; gives another 6.5% in the iBench suite
  • kjs/identifier.h: Did the real thing.
  • kjs/identifier.cpp: Ditto.
  • kjs/property_map.h: _tableSizeHashMask -> _tableSizeMask
  • kjs/property_map.cpp: The above, plus take advantage of comparing by pointer instead of by comparing bytes.
Note: See TracTimeline for information about the timeline view.