1. 20 Nov, 2002 15 commits
    • darin's avatar
      * kjs/types.cpp: Keep ref count for the whole lists of nodes. · 20330f77
      darin authored
      	Doesn't speed things up much, less than 1%.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2789 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mjs's avatar
      * kjs/collector.cpp: · 4debf737
      mjs authored
              (Collector::allocate): Clear the flags on newly allocated objects.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2788 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cblu's avatar
      Minor clean-up, logging and more error checking in plug-in code. · 65861942
      cblu authored
              * Plugins.subproj/WebBaseNetscapePluginStream.m:
              (-[WebBaseNetscapePluginStream setResponse:]):
              (-[WebBaseNetscapePluginStream receivedData:]):
              (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
              * Plugins.subproj/npapi.m:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2787 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - oops, checked in big regression instead of 5% speedup · 1a208841
      darin authored
              * 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.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      * force-js-clean-timestamp: Again. · 8c68df58
      darin authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2785 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hyatt's avatar
      Fix the mac.com line-breaking bug. This was not a regression · 711fe237
      hyatt authored
      	but was present in Konq.
              * khtml/rendering/bidi.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2784 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - decrease ref/deref -- 5% speedup in iBench · c758b286
      darin authored
              * 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.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2783 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cblu's avatar
      Fixed: 3061174 - javascript: URLs sent by plugins don't work · 84a69979
      cblu authored
              * Plugins.subproj/WebBaseNetscapePluginView.m:
              (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]):
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2782 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mjs's avatar
      Fixed the two most obvious problems with the new GC for another 6% · 3d0d1816
      mjs authored
              * 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.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2781 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      WebFoundation: · d076e32b
      darin authored
              * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
              * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
              * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
              * Test/PageLoadTestController.m: (-[PageLoadTestController browserWindowClosed]):
      	Explain the world leak check a bit more.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mjs's avatar
      JavaScriptCore: · 6d32b07d
      mjs authored
      	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:
              * kjs/collector.h:
              * kjs/function.cpp:
              * kjs/function.h:
              * force-js-clean-timestamp: Work around PB lameness yet again.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - on the road to killing ActivationImp · 0210a252
      darin authored
              * 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.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2778 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - add a couple of list operations to avoid clearing lists so much during... · f7fc08d7
      darin authored
      	- 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.)
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2777 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - atomic identifiers; gives another 6.5% in the iBench suite · 302759c8
      darin authored
              * 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.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2776 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      * force-js-clean-timestamp: Make other people's builds work. · 4a234d6c
      darin authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2775 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  2. 19 Nov, 2002 23 commits
    • hyatt's avatar
      I screwed up the line breaking for inline replaced elements. · 35652234
      hyatt authored
              * khtml/rendering/render_flow.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2774 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cblu's avatar
      Fixed: 3106061 - REGRESSION: Copy in text view copies all text not just selection · 704bb20b
      cblu authored
              * Misc.subproj/WebSearchableTextView.m:
              (-[WebSearchableTextView copy:]):
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2773 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - a few more globals for often-used property names · 55be9897
      darin authored
      	- conversion to Identifier from UString must now be explicit
              * kjs/error_object.cpp:
              * kjs/function.cpp:
              * kjs/function_object.cpp:
              * kjs/identifier.cpp:
              * kjs/identifier.h:
              * kjs/lexer.cpp:
              * kjs/nodes.cpp:
              * kjs/number_object.cpp:
              * kjs/object.cpp:
              * kjs/object.h:
              * kjs/string_object.cpp:
              * kjs/testkjs.cpp:
              * kjs/ustring.cpp:
              * kjs/ustring.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2772 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - another atomic identifier scrub pass; make the conversion to Identifier explicit · dd4cc915
      darin authored
              * khtml/ecma/kjs_html.cpp:
              (KJS::HTMLCollection::tryCall): Add explicit Identifier() conversion.
              (KJS::HTMLCollectionProtoFunc::tryCall): Ditto.
              * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): And again.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2771 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hyatt's avatar
      Fix for 3049663. Table cells don't grow to accommodate block · a70560aa
      hyatt authored
              * khtml/rendering/bidi.cpp:
              * khtml/rendering/render_flow.cpp:
              * khtml/rendering/render_flow.h:
              * khtml/rendering/render_object.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2770 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - another step towards atomic identifiers; storing hash in the string rep. gives about · 5721aa9d
      darin authored
      	a 1.5% speedup in the JavaScript iBench
              * kjs/ustring.h: Add a hash field to UString::Rep.
              * kjs/ustring.cpp:
              (UString::Rep::create): Set hash to uninitialized value.
              (UString::Rep::destroy): Do the deleting in her, and call Identifier if needed.
              (UString::Rep::computeHash): Added.
              (UString::append): Set hash to 0 when modifying the string in place.
              (UString::operator=): Ditto.
              * kjs/property_map.cpp: Use the hash from UString.
              * kjs/identifier.h: Added aboutToDestroyUStringRep.
              * kjs/identifier.cpp: (Identifier::aboutToDestroyUStringRep): Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2769 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cblu's avatar
      Fixed: 3092588 - redraw errors in QT controller if window is in background · 634e3f1b
      cblu authored
      	We need to send update events after we activate/deactivate after all.
              * Plugins.subproj/WebBaseNetscapePluginView.m:
              (-[WebBaseNetscapePluginView windowBecameKey:]):
              (-[WebBaseNetscapePluginView windowResignedKey:]):
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2768 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cblu's avatar
      Fixed: 3020720 - dropping a folder in the page address makes the folder open... · 9332bfeb
      cblu authored
      	Fixed: 3020720 - dropping a folder in the page address makes the folder open in Finder, empties the field
              * Misc.subproj/WebNSPasteboardExtras.m:
              (-[NSPasteboard _web_bestURL]): Don't accept directories.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2767 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      JavaScriptCore: · d0ba328e
      darin authored
      	- next step towards atomic identifiers; Identifier is no longer derived from UString
              * kjs/identifier.h: Remove base class and add _ustring member.
              * kjs/identifier.cpp: Add null and an == that works with const char *.
              * kjs/property_map.cpp: Get rep through _ustring.
              * kjs/function.cpp: (FunctionImp::parameterString): Call ustring().
              * kjs/function_object.cpp: (FunctionProtoFuncImp::call): Ditto.
              * kjs/nodes.cpp:
              (PropertyNode::evaluate): Ditto.
              (VarDeclNode::evaluate): Ditto.
              (ForInNode::execute): Ditto.
              * kjs/nodes2string.cpp: (SourceStream::operator<<): Add overload for Identifier.
              * kjs/reference.cpp: (Reference::getValue): Call ustring().
              * kjs/regexp_object.cpp: (RegExpObjectImp::get): Call ustring().
      	- next step towards atomic identifiers; Identifier is no longer derived from UString
              * khtml/ecma/kjs_binding.cpp:
              (Identifier::string): Added.
              (Identifier::qstring): Added.
              * khtml/ecma/kjs_binding.h:
              * khtml/ecma/kjs_css.cpp:
              * khtml/ecma/kjs_dom.cpp:
              * khtml/ecma/kjs_html.cpp:
              * khtml/ecma/kjs_navigator.cpp:
              * khtml/ecma/kjs_window.cpp:
      	Use lengthPropertyName instead of "length" for better speed.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cblu's avatar
      Fixed: 3068112 - extra line breaks when copying from source window · fbd4b010
      cblu authored
              * Misc.subproj/WebSearchableTextView.m:
              (-[WebSearchableTextView copy:]): Convert CRLF to LF
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2765 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hyatt's avatar
      Make sure that if the scrollers are shown/hidden that we · 83212c1f
      hyatt authored
      	force an immediate layout, since if we don't, an intervening
      	display can cause us to show scrollbars when they really
      	shouldn't be there.
              * WebView.subproj/WebDynamicScrollBarsView.m:
              (-[WebDynamicScrollBarsView updateScrollers]):
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hyatt's avatar
      Fix backgrounds not painting in deployment builds. · 8b4a5460
      hyatt authored
              * khtml/rendering/render_box.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - fixed memory trasher · ff56afa0
      darin authored
              * kjs/ustring.cpp: (UString::from): Fix "end of buffer" computation.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2762 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      JavaScriptCore: · 880105d6
      darin authored
      	- a first step towards atomic identifiers in JavaScript
      	Most places that work with identifiers now use Identifier
      	instead of UString.
              * kjs/identifier.cpp: Added.
              * kjs/identifier.h: Added.
              * JavaScriptCore.pbproj/project.pbxproj: Added files.
              * kjs/array_object.cpp:
              * kjs/array_object.h:
              * kjs/completion.cpp:
              * kjs/completion.h:
              * kjs/date_object.cpp:
              * kjs/date_object.h:
              * kjs/function.cpp:
              * kjs/function.h:
              * kjs/function_object.cpp:
              * kjs/grammar.cpp:
              * kjs/grammar.cpp.h:
              * kjs/grammar.h:
              * kjs/grammar.y:
              * kjs/internal.cpp:
              * kjs/internal.h:
              * kjs/lexer.cpp:
              * kjs/lookup.cpp:
              * kjs/lookup.h:
              * kjs/math_object.cpp:
              * kjs/math_object.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/number_object.cpp:
              * kjs/number_object.h:
              * kjs/object.cpp:
              * kjs/object.h:
              * kjs/property_map.cpp:
              * kjs/property_map.h:
              * kjs/reference.cpp:
              * kjs/reference.h:
              * kjs/regexp_object.cpp:
              * kjs/regexp_object.h:
              * kjs/string_object.cpp:
              * kjs/string_object.h:
      	- a first step towards atomic identifiers in JavaScript
      	Most places that work with identifiers now use Identifier
      	instead of UString.
              * khtml/ecma/kjs_binding.cpp:
              * khtml/ecma/kjs_binding.h:
              * khtml/ecma/kjs_css.cpp:
              * khtml/ecma/kjs_css.h:
              * khtml/ecma/kjs_dom.cpp:
              * khtml/ecma/kjs_dom.h:
              * khtml/ecma/kjs_events.cpp:
              * khtml/ecma/kjs_events.h:
              * khtml/ecma/kjs_html.cpp:
              * khtml/ecma/kjs_html.h:
              * khtml/ecma/kjs_navigator.cpp:
              * khtml/ecma/kjs_navigator.h:
              * khtml/ecma/kjs_range.cpp:
              * khtml/ecma/kjs_range.h:
              * khtml/ecma/kjs_traversal.cpp:
              * khtml/ecma/kjs_traversal.h:
              * khtml/ecma/kjs_views.cpp:
              * khtml/ecma/kjs_views.h:
              * khtml/ecma/kjs_window.cpp:
              * khtml/ecma/kjs_window.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cblu's avatar
      Fixed: 3100597 - repro NSArray exception using contextual menu · 914b6e5d
      cblu authored
              * Misc.subproj/WebNSPasteboardExtras.m:
              (-[NSPasteboard _web_writeURL:andTitle:withOwner:]): more error checking
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2759 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - fix hash function and key comparison for the other kind of hash table; yields 3% · 091be39c
      darin authored
              * kjs/lookup.cpp:
              (keysMatch): Added.
              (Lookup::findEntry): Don't allocate and convert to ASCII just to search.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - another hash table fix; yields a 2% improvement on iBench JavaScript · 8091bedc
      darin authored
              * kjs/property_map.cpp: A few more places where we use & instead of %.
      	- some List changes that don't affect speed yet
              * kjs/types.cpp:
              (List::prependList): Tighten up a tiny bit.
              (List::copy): Use prependList.
              * kjs/types.h: Remove appendList and globalClear.
              * kjs/interpreter.cpp: (Interpreter::finalCheck): Remove List::globalClear().
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2757 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - fixed 3105026 -- REGRESSION: DHTML menus are broken all over the place · 8943db9c
      darin authored
              * kjs/types.cpp: (List::prepend): Fix backwards links in new node.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • trey's avatar
      WebKit: · f1e3a112
      trey authored
      	Just a tweak to the description printout.
              * History.subproj/WebHistoryItem.m:
              (-[WebHistoryItem description]):
      	Implementation of the UI for auto-complete.  The back end is simplistic at this
      	stage, as it just searches for http://www.WhatYouTyped.
              * ABHomePagesController.m:
              (-[ABHomePagesController refreshContents]):  Added notes for a future fix.
              * BrowserWindowController.h:  Added BrowserWindowWillResize notification.
              * BrowserWindowController.m:
              (-[BrowserWindowController windowDidLoad]):  Create CompletionController.
              (-[BrowserWindowController windowWillResize:toSize:]):  Post resize notification.
              (-[BrowserWindowController dealloc]):  Free CompletionController.
              (-[BrowserWindowController controlTextDidChange:]):  Forward to CompletionController.
              (-[BrowserWindowController controlTextDidEndEditing:]):  Forward to CompletionController.
              (-[BrowserWindowController control:textView:doCommandBySelector:]):  Forward to CompletionController.
              * CompletionController.h: Added.
              * CompletionController.m: Added.
              (-[CompletionController initWithSourceField:]):   Hook up to a field to operate on.
              (-[CompletionController dealloc]):
              (-[CompletionController _executeQuery]):  Get a result set.
              (-[CompletionController _matchingPrefixOfString:]):  Determine piece of a result
      	that matched.
              (-[CompletionController _buildUI]):  Build completion window and table view.
              (placementViewForControl):  Utility function.
              (-[CompletionController _positionWindow]):  Position the window wrt location field.
              (-[CompletionController _showMatchesWindow]):  Show it,
              (-[CompletionController _hideMatchesWindow]):  hide it.
              (-[CompletionController _sourceWindowWillMoveOrResize:]):
              (-[CompletionController _sourceWindowWillMiniaturize:]):
              (-[CompletionController _sourceWindowWillClose:]):
      		Hide UI on various source window changes.
              (-[CompletionController _abortCompletion:]):  wrapper for performAfterDelay.
              (-[CompletionController abortCompletion]):  Bail out of completion operation.
              (-[CompletionController completeString:]):  Do a query, bring up the UI.
              (-[CompletionController _reflectSelectedRow]):  Update location field when a
      	completion is selected in the TableView
              (-[CompletionController controlTextDidChange:]):  Drive completion on new text.
              (-[CompletionController control:textView:doCommandBySelector:]):
      	Drive completion on arrows, backspace, escape, return.
              (-[CompletionController goToItemAtRow:]):  Double click sends performClick to location field.
              (-[CompletionController tableViewSelectionDidChange:]):  Drive UI when row selected.
              (-[CompletionController numberOfRowsInTableView:]):  Supply tableView data.
              (-[CompletionController tableView:objectValueForTableColumn:row:]):  Supply tableView data.
              * TitleBarButton.m:
              (-[TitleBarButton hitTest:]):  Bug fix to allow superview to process mouse events
      	that we don't handle.  Allows proper sending of WindowWillMove.
              * WebBrowser.pbproj/project.pbxproj:  New class added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - a fix that gives another 1.5% on the iBench JavaScript test · 451d435e
      darin authored
              * kjs/ustring.cpp: (UString::from): Stop using sprintf to format integers.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2754 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      JavaScriptCore: · 66092a36
      darin authored
      	- reduced the creation of Value objects and hoisted the property map
              into Object for another gain of about 6%
              * JavaScriptCore.pbproj/project.pbxproj: Made property_map.h public.
              * kjs/array_object.cpp:
              (compareWithCompareFunctionForQSort): Don't wrap the ValueImp * in a Value
      	just to add it to a list.
              (ArrayProtoFuncImp::call): Pass the globalObject directly so we don't have
      	to ref/deref.
              * kjs/function.cpp:
              (FunctionImp::call): Use a reference for the global object to avoid ref/deref.
              (GlobalFuncImp::call): Ditto.
              * kjs/internal.cpp:
              (BooleanImp::toObject): Put the object directly into the list, don't create a Value.
              (StringImp::toObject): Ditto.
              (NumberImp::toObject): Ditto.
              (InterpreterImp::evaluate): Use a reference for the global object.
              * kjs/internal.h: Return a reference for the global object.
              * kjs/interpreter.cpp: (Interpreter::globalObject): Ditto.
              * kjs/interpreter.h: Ditto.
              * kjs/object.cpp: Use _prop directly in the object, not a separate pointer.
              * kjs/object.h: Ditto.
              * kjs/types.cpp: Added List methods that work directly with ValueImp.
              (List::append): Added a ValueImp version.
              (List::prepend): Ditto.
              (List::appendList): Work directly with the ValueImp's.
              (List::prependList): Ditto.
              (List::copy): Use appendList.
              (List::empty): Use a shared global List.
              * kjs/types.h: Update for above changes.
              * force-js-clean-timestamp: Another Object change.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2753 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hyatt's avatar
      Implement phased painting to correct the paint order of blocks, · c12f0487
      hyatt authored
      	floats, and inlines.
              * khtml/rendering/render_body.cpp:
              * khtml/rendering/render_body.h:
              * khtml/rendering/render_box.cpp:
              * khtml/rendering/render_box.h:
              * khtml/rendering/render_br.h:
              * khtml/rendering/render_flow.cpp:
              * khtml/rendering/render_flow.h:
              * khtml/rendering/render_html.cpp:
              * khtml/rendering/render_html.h:
              * khtml/rendering/render_image.cpp:
              * khtml/rendering/render_image.h:
              * khtml/rendering/render_layer.cpp:
              * khtml/rendering/render_list.cpp:
              * khtml/rendering/render_list.h:
              * khtml/rendering/render_object.cpp:
              * khtml/rendering/render_object.h:
              * khtml/rendering/render_replaced.cpp:
              * khtml/rendering/render_replaced.h:
              * khtml/rendering/render_root.cpp:
              * khtml/rendering/render_root.h:
              * khtml/rendering/render_table.cpp:
              * khtml/rendering/render_table.h:
              * khtml/rendering/render_text.cpp:
              * khtml/rendering/render_text.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2752 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      * kjs/property_map.cpp: Oops, copyright goes to Apple, not me. · f1fce4bd
      darin authored
              * kjs/property_map.h: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  3. 18 Nov, 2002 2 commits
    • darin's avatar
      * force-js-clean-timestamp: I changed the size of ObjectImp. · 05e5f357
      darin authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2750 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      - property and string improvements giving a 7% or so improvement in JavaScript iBench · a6cae2cc
      darin authored
              * kjs/property_map.h: Rewrite to use a hash table.
              * kjs/property_map.cpp: Ditto.
              * kjs/string_object.h:
              * kjs/string_object.cpp:
              (StringInstanceImp::StringInstanceImp): Construct a string with the right value
      	instead of putting the string in later.
              (StringInstanceImp::get): Get the length from the string, not a separate property.
              (StringInstanceImp::put): Ignore attempts to set length, since we don't put it in
      	the property map.
              (StringInstanceImp::hasProperty): Return true for length.
              (StringInstanceImp::deleteProperty): Return false for length.
              (StringObjectImp::construct): Call new StringInstanceImp constructor. Don't try
      	to set a length property.
              * kjs/ustring.h: Make the rep deref know how to deallocate the rep.
              * kjs/ustring.cpp:
              (UString::release): Move the real work to the rep's deref, since the hash table
      	now uses the rep directly.
              * kjs/object.h: Remove unused field.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2749 268f45cc-cd09-0410-ab3c-d52691b4dbfc