- 14 Dec, 2002 2 commits
-
-
mjs authored
- further corrections to number printing. * kjs/ustring.cpp: (UString::from): Make number printing match the ECMA standard algorithm. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3053 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
- fix toString() conversion for numbers less than 1. Negative exponents are still wrong though (things like 1E-34). * kjs/ustring.cpp: (UString::from): Don't print empty string for numbers less than 1, and remember to add extra 0s after the decimal for negative decimal positions. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3051 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 13 Dec, 2002 1 commit
-
-
sheridan authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3042 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 12 Dec, 2002 3 commits
-
-
sheridan authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
Reviewed by Darin. - fixed 3056449 - can't select state at tucows.com * kjs/array_instance.h: * kjs/array_object.cpp: (ArrayInstanceImp::propList): Add numeric proprties that are in special storage. * kjs/array_object.h: * kjs/object.h: Make propList a virtual method. WebCore: Reviewed by Darin. * force-js-clean-timestamp: Update for JavaScriptCore changes. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3018 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3013 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 11 Dec, 2002 1 commit
-
-
mjs authored
- Add kjsprint global function in Development build for ease of debugging. - Print uncaught JavaScript exceptions to the console in Development. - Improve wording of exception error messages. * kjs/function.cpp: (GlobalFuncImp::call): * kjs/function.h: * kjs/internal.cpp: (InterpreterImp::initGlobalObject): * kjs/interpreter.cpp: (Interpreter::evaluate): * kjs/nodes.cpp: (NewExprNode::evaluate): (FunctionCallNode::evaluate): (RelationalNode::evaluate): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3009 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 10 Dec, 2002 1 commit
-
-
sullivan authored
Fixed more "Alexander"s that were lurking in places I forgot to look before. * Scripts/embed-into-alex: EMBED_HOST="${SYMROOTS}/Safari.app" * Scripts/run-plt: many occurrences * Scripts/set-alex-version: occurred in comment only * Scripts/time-alex-startup: my $alex = $ENV{"SAFARI"} || "$symroots/Safari.app"; if ($alex =~ /Safari\.app$/) { $alex .= "/Contents/MacOS/Safari"; JavaScriptCore: Fixed more "Alexander"s that were lurking in places I forgot to look before. Reviewed by Darin * Makefile.am: "rm -rf $(SYMROOTS)/Safari.app/Frameworks/JavaScriptCore.framework" WebFoundation: Fixed more "Alexander"s that were lurking in places I forgot to look before. Reviewed by Darin * Makefile.am: "rm -rf $(SYMROOTS)/Safari.app/Frameworks/WebFoundation.framework" WebCore: Fixed more "Alexander"s that were lurking in places I forgot to look before. Reviewed by Darin * Makefile.am: "rm -rf $(SYMROOTS)/Safari.app/Frameworks/WebCore.framework" WebKit: Fixed more "Alexander"s that were lurking in places I forgot to look before. Reviewed by Darin * Makefile.am: "rm -rf $(SYMROOTS)/Safari.app/Frameworks/WebKit.framework" WebBrowser: Fixed more "Alexander"s that were lurking in places I forgot to look before. Reviewed by Darin * Makefile.am: "rm -rf $(SYMROOTS)/Safari.app" in make clean * Preferences.subproj/English.lproj/GeneralPreferences.nib: "When Safari Quits" * Scripting.subproj/Safari.scriptSuite: value for Name key * copy-frameworks-to-dstroot.sh: app_name * embed-frameworks.sh: app_name git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2995 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 09 Dec, 2002 2 commits
-
-
darin authored
Reviewed by Maciej. * Scripts/set-alex-version: Make it bump the source version and marketing version of all our subprojects, because that's what we need up until Alex 1.0. JavaScriptCore: Reviewed by Maciej. * JavaScriptCore.pbproj/project.pbxproj: Bump versions to 0.8 and 35u. * English.lproj/InfoPlist.strings: In here too. WebFoundation: Reviewed by Maciej. - fixed problems I noticed in my review of Chris's change (which came in too late) * CacheLoader.subproj/WebResourceLoad.m: (_guessMIMEType): Fix && vs. || confusion that will make CR, LF, and tab not qualify as text characters. Also take end of loop check out of the loop. - added a method for use in user-agent computations * Misc.subproj/WebNSUserDefaultsExtras.h: Added _web_preferredLanguageCode. * Misc.subproj/WebNSUserDefaultsExtras.m: (+[NSUserDefaults _web_preferredLanguageCode]): Use _web_HTTPStyleLanguageCode on the first element of the AppleLanguages array. * WebFoundation.pbproj/project.pbxproj: Bump versions to 0.8 and 35u. Make WebNSUserDefaultsExtras.h SPI so we can use it in WebKit. Re-sort things a bit. * English.lproj/InfoPlist.strings: Bump versions in here too. * English.lproj/StringsNotToBeLocalized.txt: Updated for these and other recent changes. WebCore: Reviewed by Maciej. * WebCore.pbproj/project.pbxproj: Bump versions to 0.8 and 35u. WebKit: Reviewed by Maciej. - fixed 3028664 -- change user agent string to include application name and version * WebView.subproj/WebController.m: (-[WebController setApplicationNameForUserAgent:]): Remove locking, unneeded since we changed how WebFoundation handles user agent. (-[WebController setCustomUserAgent:]): Ditto. (-[WebController resetUserAgent]): Ditto. (-[WebController userAgentForURL:]): Remove locking. Also add new algorithm for computing the user agent which takes the preferred language into account, and incorporates the WebKit version and the application name. * WebView.subproj/WebControllerPrivate.h: No need for a lock. * WebView.subproj/WebControllerPrivate.m: (-[WebControllerPrivate init]): Don't create a lock. (-[WebControllerPrivate dealloc]): Don't release a lock. * WebKit.pbproj/project.pbxproj: Bump versions to 0.8 and 35u. * English.lproj/InfoPlist.strings: In here too. * English.lproj/StringsNotToBeLocalized.txt: Updated for these and other recent changes. WebBrowser: Reviewed by Maciej. - pass properly-formatted application name string to WebKit so it can make a good user-agent * BrowserWebController.m: (-[BrowserWebController initWithBrowserDocument:]): Instead of passing "Mr. Poopypants", pass Sherlock, augmented with version strings, to setApplicationNameForUserAgent:. Later we will pass Safari instead. * WebBrowser.pbproj/project.pbxproj: Bump version to 35u (we won't use " unofficial" any more). * English.lproj/StringsNotToBeLocalized.txt: Updated for these changes. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
- fixed 3059637 - all articles missing at excite.com sports page - fixed 3065903 - most of content missing at excite.com news page These bugs both came up because a JavaScript function has a var declaration that collides with a function parameter name. * kjs/nodes.cpp: (VarDeclNode::processVarDecls): Don't set the property to undefined if a property with that name is already set on the global object. Otherwise we may clobber function parameters with undefined even before hitting a possible var initializer. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 06 Dec, 2002 1 commit
-
-
mjs authored
Reviewed by: Darin Adler - made framework embedding work correctly with buildit * JavaScriptCore.pbproj/project.pbxproj: Give framework a relative install path, don't install it the normal way, and copy it manually to /AppleInternal/Library/Frameworks if installing. WebFoundation: Reviewed by: Darin Adler - made framework embedding work correctly with buildit * WebFoundation.pbproj/project.pbxproj: Give framework a relative install path, don't install it the normal way, and copy it manually to /AppleInternal/Library/Frameworks if installing. WebCore: Reviewed by: Darin Adler - made framework embedding work correctly with buildit * WebCore.pbproj/project.pbxproj: Give framework a relative install path, don't install it the normal way, and copy it manually to /AppleInternal/Library/Frameworks if installing. Also look for other frameworks in ${DSTROOT}/AppleInternal/Library/Frameworks. WebKit: Reviewed by: Darin Adler - made framework embedding work correctly with buildit * WebKit.pbproj/project.pbxproj: Give framework a relative install path, don't install it the normal way, and copy it manually to /AppleInternal/Library/Frameworks if installing. Also look for other frameworks in ${DSTROOT}/AppleInternal/Library/Frameworks. WebBrowser: Reviewed by: Darin Adler - made framework embedding work correctly with buildit * copy-frameworks-to-dstroot.sh: Copy frameworks from /AppleInternal/Library/Frameworks * embed-frameworks.sh: Fixed typo. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2958 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 05 Dec, 2002 1 commit
-
-
sheridan authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 04 Dec, 2002 5 commits
-
-
mjs authored
Added explicit lock/unlock methods so Sherlock can grab the interpreter lock as needed. - partially addressed 3084320 - JavaScriptCore crash * kjs/internal.cpp: (InterpreterImp::InterpreterImp): (InterpreterImp::lock): (InterpreterImp::unlock): * kjs/internal.h: * kjs/interpreter.cpp: (Interpreter::lock): (Interpreter::unlock): * kjs/interpreter.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2935 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2934 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
Set things up so JavaScriptCore builds in PCRE and uses it for regular expressions. This fixes many form validation bugs: - fixed 3103197 - javascript at fidelity.com rejects valid input - fixed 2942552 - form validation at weather.com fails - fixed 3079752 - js always reports textarea is empty - fixed 3079719 - covad.com "check availalbility" fails * Makefile.am: Add pcre subdir. * kjs/config.h: define HAVE_PCREPOSIX to true. * kjs/regexp.h: Don't include pcreposix.h since nothing from there is used. * pcre/.cvsignore: Added. * pcre/ChangeLog: Removed. * pcre/INSTALL: Removed. * pcre/Makefile.am: Added. * pcre/Makefile.in: Removed. * pcre/NEWS: Removed. * pcre/NON-UNIX-USE: Removed. * pcre/README: Removed. * pcre/chartables.c: Added. * pcre/config.guess: Removed. * pcre/config.in: Removed. * pcre/config.sub: Removed. * pcre/configure: Removed. * pcre/configure.in: Removed. * pcre/dll.mk: Removed. * pcre/doc/Tech.Notes: Removed. * pcre/doc/pcre.3: Removed. * pcre/doc/pcre.html: Removed. * pcre/doc/pcre.txt: Removed. * pcre/doc/pcregrep.1: Removed. * pcre/doc/pcregrep.html: Removed. * pcre/doc/pcregrep.txt: Removed. * pcre/doc/pcreposix.3: Removed. * pcre/doc/pcreposix.html: Removed. * pcre/doc/pcreposix.txt: Removed. * pcre/doc/pcretest.1: Removed. * pcre/doc/pcretest.html: Removed. * pcre/doc/pcretest.txt: Removed. * pcre/doc/perltest.txt: Removed. * pcre/install-sh: Removed. * pcre/ltmain.sh: Removed. * pcre/pcre-config.h: Added. * pcre/pcre-config.in: Removed. * pcre/internal.h: Include pcre-config.h instead of config.h * pcre/pcre.c: (ord2utf8): Fix warnings. (pcre_compile): Fix warnings. * pcre/pcre.def: Removed. * pcre/pcre.h: Added. * pcre/pcre.in: Removed. * JavaScriptCore.pbproj/project.pbxproj: Added pcre files to build. * JavaScriptCorePrefix.h: Guard c++ headers with #ifdef __cplusplus. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
Reviewed by: Richard Williamson * pcre/doc/*: Added. * pcre/testdata/*: Added. pcre: (i) Added long-form option names like gnu grep. (ii) Added --help to list all options with an explanatory phrase. (iii) Added -r, --recursive to recurse into sub-directories. (iv) Added -f, --file to read patterns from a file. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2927 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
- imported PCRE 3.9 into the tree; this isn't actually compiled or used yet. * pcre/*: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2926 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 03 Dec, 2002 3 commits
-
-
mjs authored
of speeding up checkouts and checkins. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2924 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
- fixed Deployment build. * kjs/dtoa.cpp: Work around warnings. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2913 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
because floating point numbers format wide Reviewed by: David Hyatt * kjs/dtoa.cpp: Imported float <--> string conversion routines from David M. Gay. I changed this to fix warnings and avoid colliding with names of standard library functions. * kjs/dtoa.h: Added a header I made up for dtoa.cpp * kjs/ustring.cpp: (UString::from): Use new double to string routine (kjs_strtod). (UString::toDouble): Use new string to double routine (kjs_dtoa). * JavaScriptCore.pbproj/project.pbxproj: Added new files git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2912 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 27 Nov, 2002 1 commit
-
-
sullivan authored
removed puts("COLLECT") leftover debugging spam that was buggin' gramps git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2894 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 26 Nov, 2002 5 commits
-
-
sheridan authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2884 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
again instead of on the stack. This fixes the following four regressions but sadly it causes a 6% performance hit. It's probably possibly to reduce the hit a bit by being smarter about inlining and the way the marking list variant is implemented, but I'll look into that later. - fixed 3111500 - REGRESSION: crash in "KJS::ScopeChain::mark()" on www.posci.com - fixed 3111145 - REGRESSION: reproducible crash in KJS hashtable lookup at time.com - fixed 3110897 - REGRESSION: javascript crasher on http://bmwgallery.tripod.com/ - fixed 3109987 - REGRESSION: Reproducible crash in KJS ObjectImp at live365.com Also: - improved DEBUG_COLLECTOR mode a bit by never giving memory back to the system. * kjs/collector.cpp: * kjs/context.h: * kjs/function.cpp: (ActivationImp::ActivationImp): (ActivationImp::mark): (ActivationImp::createArgumentsObject): * kjs/function.h: * kjs/internal.cpp: (ContextImp::ContextImp): (ContextImp::mark): * kjs/list.cpp: * kjs/list.h: * kjs/value.cpp: (Value::Value): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2883 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin authored
(PropertyMap::save): Look at the attributes the same way in the single hash entry case as in the actual hash table case. Change the rule for which attributes to save to "attributes that don't have the ReadOnly, DontEnum, or Function bit set". Also fix bug where saving an empty property map would leave the count set to the old value. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2882 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
rjw authored
Remove debugging code. Could be cause of performance regresssion. * kjs/nodes.cpp: (FunctionCallNode::evaluate): Restire attributes correctly. * kjs/property_map.cpp: WebKit Only cache page if the load has completed. * WebView.subproj/WebFramePrivate.m: (-[WebFrame _setState:]): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
rjw authored
Use delete[] (not delete) operator to delete array. * kjs/property_map.cpp: WebBrowser Use cleaned up API to enable/disable page cache. * Debug/DebugUtilities.m: (-[BrowserDocument toggleBackForwardEnabled:]): WebCore Cleanup up leaking objects in page cache. * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURLFromPageCache): * kwq/WebCoreBridge.mm: (-[KWQPageState initWithDocument:DOM::URL:windowProperties:KJS::locationProperties:KJS::]): (-[KWQPageState dealloc]): WebKit Cleanup leaking objects in page cache. Cleaned up API a bit. * History.subproj/WebBackForwardList.h: * History.subproj/WebBackForwardList.m: (-[WebBackForwardList dealloc]): (+[WebBackForwardList setUsesPageCache:]): (+[WebBackForwardList usesPageCache]): (+[WebBackForwardList setPageCacheSize:]): (+[WebBackForwardList pageCacheSize]): * History.subproj/WebHistoryItem.h: * History.subproj/WebHistoryItem.m: (-[WebHistoryItem setHasPageCache:]): * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge saveDocumentToPageCache:]): * WebKit.exp: * WebView.subproj/WebFramePrivate.m: (-[WebFrame _canCachePage]): (-[WebFrame _purgePageCache]): (-[WebFrame _setState:]): (-[WebFrame _continueLoadRequestAfterNavigationPolicy:request:]): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2874 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 25 Nov, 2002 3 commits
-
-
rjw authored
Off by default. Use with discretion. Still leaks like a sieve. Useful to provide a sense of potential speed up. * Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): (-[BrowserDocument validate_showDOMTree:]): (-[BrowserDocument toggleBackForwardEnabled:]): Changes fro back/forward cache. * History.subproj/WebHistoryItem.h: * History.subproj/WebHistoryItem.m: (+[WebHistoryItem setUsePageCache:]): (+[WebHistoryItem usePageCache]): * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge saveDocumentToPageCache:]): * WebView.subproj/WebFramePrivate.h: * WebView.subproj/WebFramePrivate.m: (-[WebFrame _detachFromParent]): (-[WebFrame _canCachePage]): (-[WebFrame _setState:]): Tweaked some debugging info. * khtml/xml/dom_docimpl.cpp: (DocumentImpl::~DocumentImpl): (DocumentImpl::detach): Added debugging info. Fixed property map save function. * kjs/nodes.cpp: (FunctionCallNode::evaluate): * kjs/property_map.cpp: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2871 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
rjw authored
* History.subproj/WebHistoryItem.h: * History.subproj/WebHistoryItem.m: (-[WebHistoryItem dealloc]): (-[WebHistoryItem setPageCacheEnabled:]): (-[WebHistoryItem pageCache]): * Misc.subproj/WebKitLogging.h: * Misc.subproj/WebKitLogging.m: * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge saveDocumentToPageCache:]): * WebView.subproj/WebDataSource.m: (-[WebDataSource startLoading]): * WebView.subproj/WebDataSourcePrivate.h: * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _startLoading:]): (-[WebDataSource _startLoading]): (-[WebDataSource _commitIfReady:]): (-[WebDataSource _commitIfReady]): (-[WebDataSource _setStoredInPageCache:]): (-[WebDataSource _storedInPageCache]): * WebView.subproj/WebFramePrivate.h: * WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted:]): (-[WebFrame _canCachePage]): (-[WebFrame _purgePageCache]): (-[WebFrame _setState:]): (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]): (-[WebFrame _continueLoadRequestAfterNavigationPolicy:request:]): Changes for back/forward. Currently disabled. * ForwardingHeaders/kjs/property_map.h: Added. * khtml/ecma/kjs_window.cpp: (Window::hasTimeouts): (WindowQObject::hasTimeouts): * khtml/ecma/kjs_window.h: * khtml/khtmlpart_p.h: * khtml/xml/dom_docimpl.cpp: (DocumentImpl::DocumentImpl): (DocumentImpl::detach): (DocumentImpl::inPageCache): (DocumentImpl::setInPageCache): * khtml/xml/dom_docimpl.h: * kwq/KWQKHTMLPart.h: * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::setView): (KWQKHTMLPart::userAgent): (KWQKHTMLPart::nextKeyViewForWidget): (KWQKHTMLPart::canCachePage): (KWQKHTMLPart::saveWindowProperties): (KWQKHTMLPart::saveLocationProperties): (KWQKHTMLPart::restoreWindowProperties): (KWQKHTMLPart::restoreLocationProperties): (KWQKHTMLPart::openURLFromPageCache): * kwq/WebCoreBridge.h: * kwq/WebCoreBridge.mm: (-[WebCoreBridge openURL:reload:headers:lastModified:pageCache:]): (-[WebCoreBridge saveDocumentToPageCache]): (-[WebCoreBridge canCachePage]): (attributedString): (-[KWQPageState initWithDocument:DOM::URL:windowProperties:KJS::locationProperties:KJS::]): (-[KWQPageState dealloc]): (-[KWQPageState DOM::]): (-[KWQPageState URL]): (-[KWQPageState KJS::]): Changes for back/forward. Currently disabled. * kjs/property_map.cpp: * kjs/property_map.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2863 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin authored
* kjs/property_map.cpp: Rearrange code a little bit and tweak indentation. This might provide a tiny speedup because we don't look at the single entry any more in cases where the _table pointer is non-0. WebKit: - fixed a problem I discovered in testing where multiple identical bookmarks confuse us * Bookmarks.subproj/WebBookmarkList.m: (-[WebBookmarkList removeChild:]): Use indexOfObjectIdenticalTo: and removeObjectIdenticalTo: instead of containsObject: and removeObject:. (-[WebBookmarkList insertChild:atIndex:]): Use indexOfObjectIdenticalTo: instead of containsObject: in the assertion. WebBrowser: - fixed 3042781 -- slidey animation sometimes draws partial item behind overflow indicator - fixed 3090845 -- would be nice to be able to drop bookmarks into folders using the bookmark toolbar - fixed 3107422 -- bookmark in toolbar gets stuck highlighted if window is moved by the stacking code - fixed problem where you would get an overflow indicator even if there was room for the last bookmark - fixed problem where the cursor could change to an I-beam during a constrained drag * FavoriteButton.h: Add canAcceptDroppedBookmark, setHighlighted, and acceptDroppedBookmark methods for use when doing a constrained drag that drop items into folders. Also add a category on NSView to be used to pause animation when over a button that will accept a drop. * FavoriteButton.m: (-[FavoriteButton registerForDraggedTypes]): Accept DraggedFavoriteButtonPboardType. (-[FavoriteButton initTrackingRect]): Add an observer so we update the tracking rect when the window moves too. This fixes bug 3107422. (-[FavoriteButton bookmarksFromPasteboard:]): Added. Helper method that accepts drag from DraggedFavoriteButtonPboardType as well as the other bookmark pasteboard types, but only within the same superview. (-[FavoriteButton determineDragOperation:]): Call [self bookmarksFromPasteboard:] instead of [WebBookmark bookmarksFromPasteboard]. (-[FavoriteButton draggingEntered:]): Pause animation when we enter a button that can accept a dropped bookmark. This makes sure that the button doesn't slide out from under the mouse. (-[FavoriteButton draggingUpdated:]): Don't do any highlighting here because it's not necessary. (-[FavoriteButton draggingExited:]): Resume the animation in case we paused it. (-[FavoriteButton performDragOperation:]): Call [self bookmarksFromPasteboard:] instead of [WebBookmark bookmarksFromPasteboard]. Also resume the animation in case we paused it. (-[FavoriteButton canAcceptDroppedBookmark]): Added. Returns YES if the bookmark's type is WebBookmarkTypeList. (-[FavoriteButton setHighlighted:]): Added. Calls setHighlighted: on the button's cell. (-[FavoriteButton acceptDroppedBookmark:]): Added. Does the same work that performDragOperation does for the case of moving a button within the same bar. (-[FavoriteButton _hitTest:dragTypes:]): Don't accept drags at the edges of the button. This makes space between buttons so there's room to put new buttons between two old ones, even if the old ones are both for folders. (-[NSView pauseAnimation]): Added. Passes the call up the superview chain. (-[NSView resumeAnimation]): Added. Passes the call up the superview chain. * FavoritesBar.m: (-[FavoritesBar maxButtonXWithoutClipIndicator]): Added. Leaves a margin, currently 3 pixels. (-[FavoritesBar maxButtonXWithClipIndicator]): Added. Leaves a margin, currently 3 pixels. (-[FavoritesBar maxButtonX]): Modified to call either maxButtonXWithoutClipIndicator or maxButtonXWithClipIndicator depending on whether the clip indicator is showing. (-[FavoritesBar slideButtonsIntoPlace]): Slide buttons off the right side of the bar if they are going to be clipped out. Allow the last button to go all the way to the right, using the space that would otherwise be used by the clip indicator. Make the clip indicator disappear if buttons are going to slide past it to the left or the right. (-[FavoritesBar _layOutButtons]): Include the smarts about leaving space for the item to be dropped and about leaving out the currently dragged item that was formerly only in slideButtonsIntoPlace. Also include the smarts about positioning mentioned above, and do positioning here, rather than in _refreshButtons. To allow calling this during constrained dragging, add the dragged item after adding all the other items. (-[FavoritesBar finishedSlidingAnimation:]): Added. Calls _layOutButtons. This is used to make the clip indicator reappear in case slideButtonsIntoPlace made it disappear. (-[FavoritesBar addButtonForBookmark:]): Removed left edge parameter. This no method longer tries to position bookmarks at all. (-[FavoritesBar _refreshButtons]): Get rid of code that attempts to position the buttons. We now do that in _layOutButtons. (-[FavoritesBar initWithView:]): Initialize _dragSourceIndexIfMoving to NSNotFound. Make us the animation's delegate so we get a finishedSlidingAnimation:. (-[FavoritesBar performDragOperation:]): Check for drags within the favorites bar by checking _dragSourceIndexIfMoving rather than looking for DraggedFavoriteButtonPboardType. Also reset _dropIndex since _layOutButtons now looks at it. (-[FavoritesBar draggingEnded:]): Reset _dragSourceIndexIfMoving since _layOutButtons now looks at it. (-[FavoritesBar reorderFavoriteButton:fromMouseDownEvent:]): Disable cursor rectangles and set the cursor to the arrow cursor during the reorder process. Add hit testing so that the constrained dragging can drop items in FavoriteButtons that are folders. Pause animation when over such a FavoriteButton, and resume it when not over it. (-[FavoritesBar pauseAnimation]): Added. (-[FavoritesBar resumeAnimation]): Added. * FavoritesBarView.h: Add pauseAnimation and resumeAnimation methods to the delegate. * FavoritesBarView.m: (-[FavoritesBarView pauseAnimation]): Pass call on to the delegate. (-[FavoritesBarView resumeAnimation]): Ditto. * SlidingAnimation.h: Add delegate, setDelegate method, pause and resume methods, and finishedSlidingAnimation: method for the delegate. * SlidingAnimation.m: (-[SlidingAnimation updateTimer]): Take the paused state into account, and also call the finishedSlidingAnimation: method when the animation completes. (-[SlidingAnimation showNextFrame]): Simplify by using a call to updateTimer to do most of the work. (-[SlidingAnimation setDelegate:]): Added. Just sets the delegate field. (-[SlidingAnimation pause]): Added. Just sets the paused state and calls updateTimer. (-[SlidingAnimation resume]): Added. Just sets the paused state and calls updateTimer. - fixed a problem I discovered in testing where multiple identical bookmarks confuse us * BookmarksViewController.m: ([BookmarksViewController anyAncestorOfBookmark:inArray:]): Use indexOfObjectIdenticalTo: instead of containsObject:, because we want to use identity on bookmarks, not equality comparison. ([BookmarksViewController bookmarkOrAnyAncestor:inArray:]): Ditto. ([BookmarksViewController newContentItemWithTitle:URLString:type:positionIgnoresSelection:]): Ditto. ([BookmarksViewController sourceRowForBookmark:]): Ditto. ([BookmarksViewController outlineView:validateDrop:proposedItem:proposedChildIndex:]): Ditto. ([BookmarksViewController paste:]): Ditto. ([UndoRemoveInfo initWithBookmark:]): Ditto. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 24 Nov, 2002 4 commits
-
-
darin authored
- changed ScopeChain to not ref each item in the chain, and use marking instead; gains 1% on JavaScript iBench * kjs/context.h: Return chain by reference. * kjs/internal.cpp: (ContextImp::mark): Mark the scope chain. * kjs/interpreter.cpp: (Context::scopeChain): Return chain by reference. * kjs/interpreter.h: Make some Context methods inline. * kjs/nodes.cpp: (ThisNode::evaluate): Get at ContextImp directly. (ResolveNode::evaluateReference): Ditto. (VarDeclNode::evaluate): Ditto. (VarDeclNode::processVarDecls): Ditto. (FuncDeclNode::processFuncDecl): Pass ScopeChain directly to avoid copying. (FuncExprNode::evaluate): Ditto. * kjs/object.cpp: Make scope and setScope inline. * kjs/object.h: Make scope return a chain by reference. Make scope and setScope both be inline. Use a normal ScopeChain instead of NoRefScopeChain since they are now one and the same. * kjs/scope_chain.cpp: Remove all the code to ref and deref objects. Merge NoRefScopeChain in with ScopeChain since they both work this way now. * kjs/scope_chain.h: Remove NoRefScopeChain and simplify the ref counts. Make more functions inline. WebCore: * force-js-clean-timestamp: Touch for ScopeChain change. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2851 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
* kjs/string_object.cpp: (StringProtoFuncImp::call): When doing a regexp replacement that results in an empty match, always move on to the next character after doing the replacement. The previous code would hit an infinite loop if an initial empty match was replaced with the empty string. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2849 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
* kjs/grammar.y: Don't try to construct the argument list in the right order, since that blows out the parser stack. * kjs/nodes.cpp: (ArgumentsNode::ArgumentsNode): Instead reverse the argument list here. * kjs/nodes.h: Make ArgumentsNode a friend of ArgumentListNode. * kjs/grammar.cpp: Updated from grammar.y. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
increases when accessing very high index value in array The two missing pieces were handling sparse properties when shrinking the array, and when sorting. Thse are now both taken care of. * kjs/array_instance.h: * kjs/array_object.cpp: (ArrayInstanceImp::put): (ArrayInstanceImp::deleteProperty): (ArrayInstanceImp::resizeStorage): (ArrayInstanceImp::setLength): (ArrayInstanceImp::sort): (ArrayInstanceImp::pushUndefinedObjectsToEnd): * kjs/identifier.h: * kjs/object.h: * kjs/property_map.cpp: * kjs/property_map.h: * kjs/reference_list.cpp: (ReferenceList::append): (ReferenceList::length): * kjs/reference_list.h: * kjs/ustring.cpp: (UString::toUInt32): * kjs/ustring.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 23 Nov, 2002 2 commits
-
-
mjs authored
- Replaced per-block bitmap with free list. - Increased number of empty blocks kept around to 2. - Doubled block size. - When scanning heap in collector, skip scanning the rest of a block as soon as we see as many live cells as the the number of used cells it had originally. Also the following collector changes unrelated to performance: - Made constants `const int' instead of `static const int'. - Miscellaneous code cleanup. * kjs/collector.cpp: - Added debugging mode enabled by defining DEBUG_GC which asserts when a destroyed ValueImp * kjs/internal.cpp: (ContextImp::mark): * kjs/value.cpp: (Value::Value): * kjs/value.h: * kjs/config.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin authored
- replaced List class with a vector rather than a linked list, changed it to use a pool of instances instead of all the nodes allocated off of the heap; gives 10% gain on iBench * kjs/list.h: Complete rewrite. * kjs/list.cpp: Ditto. * kjs/array_object.cpp: (compareWithCompareFunctionForQSort): Go back to doing a clear and two appends here. Fast with the new list implementation. * kjs/collector.h: Remove _COLLECTOR hack and just make rootObjectClasses return a const void *. * kjs/collector.cpp: Remove _COLLECTOR hack, and various other minor tweaks. WebCore: * khtml/ecma/kjs_window.cpp: Remove _COLLECTOR hack. * kwq/WebCoreJavaScript.h: * kwq/WebCoreJavaScript.mm: (+[WebCoreJavaScript rootObjectClasses]): Update for name change -- root object classes, not all live object classes. * force-js-clean-timestamp: Make sure we don't have more build problems. WebKit: * Misc.subproj/WebCoreStatistics.h: * Misc.subproj/WebCoreStatistics.m: (+[WebCoreStatistics javaScriptRootObjectClasses]): Update for name change -- root object classes, not all live object classes. WebBrowser: * Debug/CacheController.m: (-[CacheController refreshJavaScriptStatisticsMatrix]): Update for name change -- root object classes, not all live object classes. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2843 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 22 Nov, 2002 4 commits
-
-
darin authored
* kjs/function_object.cpp: (FunctionProtoFuncImp::call): Use new copyTail() function rather than copy() and removeFirst(). * kjs/identifier.cpp: Add statistics, off by default. * kjs/property_map.cpp: Add statistics, off by default. * kjs/list.cpp: Added. Moved code here. To be rewritten. * kjs/list.h: Added. Moved interface here. To be rewritten. * kjs/types.cpp: Removed. * kjs/types.h: Now just an empty header that includes other headers. * JavaScriptCore.pbproj/project.pbxproj: Add new files, rearrange. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
objects fit in that size. .5% speed gain and probably some footprint gain. * kjs/collector.cpp: Change CELL_SIZE from 64 to 56. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin authored
- change ScopeChain to be a singly linked list shares tails, gives 11% gain on iBench * kjs/context.h: (ContextImp::pushScope): Make inline, use push instead of prepend, and pass imp pointer. (ContextImp::popScope): Make inline, use pop instead of removeFirst. * kjs/function.cpp: (DeclaredFunctionImp::DeclaredFunctionImp): No need to copy. * kjs/function_object.cpp: (FunctionObjectImp::construct): Use push instead of prepend, and pass imp pointer. * kjs/internal.cpp: (ContextImp::ContextImp): Use clear, push instead of prepend, and pass imp pointers. * kjs/nodes.cpp: (ResolveNode::evaluateReference): Use isEmpty, pop, and top instead of ScopeChainIterator. * kjs/object.h: Change _scope to be a NoRefScopeChain. * kjs/object.cpp: No need to initialize _scope any more, since it's not a NoRefScopeChain. * kjs/scope_chain.h: Rewrite, different implementation and interface. * kjs/scope_chain.cpp: More of the same. WebCore: * khtml/ecma/kjs_dom.cpp: (DOMNode::pushEventHandlerScope): Change to push handlers on an existing scope chain rather than returning one. Name change too. * khtml/ecma/kjs_dom.h: More of the same. * khtml/ecma/kjs_html.cpp: (KJS::HTMLElement::pushEventHandlerScope): And here. * khtml/ecma/kjs_html.h: And here. * khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): Use the pushEventHandlerScope function, and also don't worry about optimizing the "no change" case, because that already works pretty efficiently. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
all objects at the start of collection, instead unmark as part of the sweep phase * kjs/collector.cpp: (Collector::collect): Remove separate unmarking pass and instead unmark the objects that don't get collected during the sweep phase. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 21 Nov, 2002 1 commit
-
-
darin authored
* 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. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-