Commit graph

329 commits

Author SHA1 Message Date
jeresig 9584e908a2 Added in Ben Alman's proposed event.namespace property (the property holds the namespaces specified in a call to trigger). Additionally fixes namespaces with .live(). Fixes #6208 and #6209. 2010-03-02 17:34:12 -05:00
jeresig dcf0fa5048 More changes to get jQuery in line with JSLint. 2010-03-01 21:24:49 -05:00
jeresig a4043cdcbf Land some additional tweaks related to running through JSLint. 2010-03-01 18:19:29 -05:00
jeresig a18f682012 Made some code tweaks related to running jQuery through JSLint (thanks to Lorin Larson for the JSLint run). 2010-03-01 12:44:56 -05:00
jeresig 36faab439a No reason to double-bind the beforeunload event. Fixes #6113. 2010-02-27 10:03:43 -05:00
jeresig 42568db4c4 Merge branch 'master' of github.com:jquery/jquery 2010-02-27 09:02:18 -05:00
jeresig a45372a4c5 Adding in .bind(name, false), .unbind(name, false) support - an easy way to just stop bubbling and the default action on an element. Fixes #6188. 2010-02-27 09:02:13 -05:00
brandonaaron 7d5da0ee03 Make sure events exist before trying to access them in jQuery.event.handle and removed unnecessary var statement. Fixes #6163. 2010-02-27 01:31:33 -06:00
jeresig ba7195e3f9 Make it so that you can pass in event data to .click(), et. al. Fixes #6187. 2010-02-26 20:01:19 -05:00
jeresig 7f5179b654 Make sure that unbinding on a plain javascript object works correctly. Fixes #6184. 2010-02-26 11:32:12 -05:00
jeresig 28b489bfc8 Make sure that the correct type is set for live mouseenter/mouseleave events. Fixes #6169. 2010-02-26 11:23:49 -05:00
jeresig 26b0e913dd Make sure that live events bubble unless explicitly told not to, like a normal event. Fixes #6182. 2010-02-26 09:26:14 -05:00
jeresig da966573c3 Make sure that elements that have been removed also have their special events cleaned up. Fixes #6084. 2010-02-13 06:10:43 -05:00
jeresig 6a82f2ae63 Make sure that mousing over XUL elements results in no trigger of a mouseleave. Fixes #6013. 2010-02-13 05:45:48 -05:00
jeresig dd5c26304a Make sure that live focus and blur events also bind to the regular events, to handle triggered events. Fixes #6055. 2010-02-13 05:37:17 -05:00
jeresig 467063a2e2 When binding a change directly to a file input just passthrough to the normal bind. A temporary fix for #5997, needs more investigation. 2010-02-13 04:40:26 -05:00
jeresig 8404ad6070 Make sure that there are some live events before continuing on. 2010-02-12 19:38:57 -05:00
jeresig 5d36fe3210 Make sure that live mouseenter/mouseleave work properly. Fixes #6077. 2010-02-11 16:50:26 -05:00
John Resig 021b809ace Make sure that the teardown is called after all the handlers of a type are removed. Fixes #6065. 2010-02-11 01:42:51 -05:00
jeresig 35c379075c Simplify the special change/submit event removal logic, per Scott's suggestion in 5267824aa3. 2010-02-10 15:56:53 -05:00
jeresig 5267824aa3 Updated formatting for the change/submit special event logic. Also switched the function declarations to statements. Thanks to Garrett for the recommendation. 2010-02-08 23:28:15 -05:00
jeresig 75bb2d6e51 Fix in logic for handling exclusive namespace testing. Fixes #6048. 2010-02-08 11:31:01 -05:00
jeresig 43b3ed086d Update special events to work with the internal event system changes. Also fixes #5967. 2010-02-05 11:02:56 -05:00
jeresig be2407e233 Rewrote the live event handling to use the new event logic. Also added in support for live namespaced events. Fixes #5945. 2010-02-04 21:36:32 -05:00
jeresig e7912805d6 A large refactor of the event handling logic. Data and namespace information is maintained in a separate object now, no longer on the event handler. Proxy functions are no longer needed, as a result. Additionally execution order of the handlers is maintained, fixing #4261, and the execution of handlers is maintained even while they're being removed. Live events will be refactored separately. 2010-02-04 00:20:52 -05:00
jeresig 31432e048f Add .delegate() and .undelegate(). An alternative to using .live() which goes from a single root and filters by the specified selectors. Should be used like do: .delegate(td, hover, someFn);. Fixes #6005. 2010-02-01 18:06:03 -05:00
jeresig 98c7248518 Further optimize the empty/remove/cleanData logic. 2010-01-28 15:25:52 -05:00
jeresig 0252b78201 Provide a way to simulate default browser actions. Fixes #5973. 2010-01-28 14:34:09 -05:00
jeresig e9092e9954 Make sure namespaces is always an array, when passed to the remove special. Follow-up to eed69eccc5. 2010-01-28 14:16:52 -05:00
jeresig eed69eccc5 Make sure that jQuery.data( elem ) always returns a data object, fixes #5971. Improve the performance of .bind() and .unbind(), fixes #5972. 2010-01-28 14:12:44 -05:00
jeresig 942f8f7f75 No reason to limit the initial change data store to just radio elements. Fixes #5851. 2010-01-27 10:06:50 -05:00
jeresig 390186b902 Make sure that special.add actually copies over event namespaces and data. Fixes #5779 and #5834. 2010-01-25 17:01:07 -05:00
jeresig 0474917c9d Make sure multiple bound events have their namespaces and data maintained. Fixes #3549. 2010-01-25 16:45:39 -05:00
jeresig d24443fb55 Make sure that it's possible to preventDefault natively-triggered (submit, focus, blur, click) events. Fixes #5695. 2010-01-25 13:45:07 -05:00
jeresig 3e286440d5 Make sure that .die() with no args works. Fixes #5789. 2010-01-23 16:37:12 -05:00
Matt Curry f6ec9d54d1 Select (with a selected) fired change on first focus in IE. Fixes #5869. 2010-01-23 12:52:32 -05:00
Irae Brasil 01f72026ec Added support for multiple live event handlers, live hover, and live focus/blur (mapped to focusin/focusout). Fixes #5804, #5801, #5852. 2010-01-23 11:56:24 -05:00
Irae Brasil b9ca157998 Make sure that live handlers don't stop inline scripts from executing. Fixes #5835. 2010-01-23 11:14:29 -05:00
Irae Brasil 150e44cdda Make sure non-left-click events don't bubble. Fixes #3861. 2010-01-23 11:12:26 -05:00
jeresig 435772e29b Adding in the change recommended by Alexander Farkas to fix some bugs in the change delegation logic. Fixes #5851. 2010-01-18 17:52:36 -05:00
jeresig 257a4693f4 Fix missing var declaration for the length iterator. 2010-01-18 17:19:44 -05:00
John Resig 199a721103 Expose the proxy object on the object, for the benefit of plugin authors (Thanks to Justin Meyer for the suggestion). 2010-01-15 15:41:09 -05:00
John Resig 4397f0fd41 Removed extraneous thisObject references. Thanks to Matt Dunlap for the heads-up. 2010-01-14 01:42:08 -05:00
jeresig 1960f28c0b Make sure no exception is thrown if no event handler is found (which is the case for applets, objects, and embeds). 2010-01-13 11:24:54 -05:00
jeresig 8e53f7b5d6 Fixed typo in logic, also disabled function setters in this case to allow the functions to passthrough and bind. 2010-01-12 21:54:06 -05:00
jeresig 1d8b3a9af2 Make sure that the focusin and focusout easy-bind methods are exposed. 2010-01-12 17:03:34 -05:00
jeresig 366039a6f0 Revert "Adding in backwards-compatiblity support for jQuery().bind/unbind/trigger - and immediately deprecating it. Please explicitly use jQuery(document) in your code."
This reverts commit e9d5947b4a.
2010-01-11 13:48:40 -05:00
jeresig 5a0ac24e35 Make sure that submit event is still bound for regular form submit events. Thanks to Mark Gibson for the fix suggestion. 2010-01-11 12:26:28 -05:00
jeresig e9d5947b4a Adding in backwards-compatiblity support for jQuery().bind/unbind/trigger - and immediately deprecating it. Please explicitly use jQuery(document) in your code. 2010-01-06 11:32:29 -05:00
jeresig 230614b4df Merging in jQuery.proxy() branch. 2010-01-05 19:18:39 -05:00
jeresig 8db0dd2c64 Added in a holdover jQuery.event.guid for back-compat (two plugins use it: mousewheel and a datepicker). Plugin authors should work to stop using jQuery.event.guid and jQuery.event.proxy ASAP. 2010-01-05 19:17:28 -05:00
jeresig a5dbca4a06 Moved jQuery.proxy() into core. 2009-12-31 15:06:45 -05:00
jeresig 40ce7f9830 Merge branch 'bug-5735' 2009-12-31 14:49:01 -05:00
jeresig 6cb2945837 Rather than declaring empty anonymous functions all around, introduce and use a single empty function. Thanks to Matt Kruse for the suggestion. 2009-12-31 09:50:49 -05:00
jeresig ea5d514008 When .bind('unload') was called it accidentally went recursive, from 1bac61655b. Fixes #5688. 2009-12-31 00:49:53 -05:00
jeresig 66975de2d2 Remove the .bind(name, fn, thisObject) and promote jQuery.event.proxy() to jQuery.proxy() as alternative to handling scoping on callbacks. Fixes #5736. 2009-12-31 00:37:23 -05:00
jeresig 7e69fdbad4 Fixed spelling mistake noted in dc6b7ce3469eaadb37a151d449e8d36571d1894. 2009-12-21 20:19:49 -05:00
jeresig 3776cbe314 Standardize on using double-quotes for string literals. 2009-12-21 20:13:16 -05:00
jeresig 61e37d4149 Made a number of spacing changes to bring the code more-inline with the jQuery Core Style Guideline. 2009-12-21 19:58:13 -05:00
jeresig 36c99dc0c7 Tweaked the syntax of withinElement a bit. 2009-12-21 18:06:23 -05:00
jeresig e083d15fc7 Tweaked a couple cases where == was used instead of ===. 2009-12-21 18:02:02 -05:00
Alexander Farkas 209751fcbd Make sure that the beforeactivate event isn't accidentally prevented. 2009-12-21 16:24:03 -05:00
Jörn Zaefferer 03481a52c7 Stop trying to emulate the focus/blur event in IE, doesn't work as one might expect, anyway. Instead, implement the focusin/focusout events in all other browsers - which creates a much better parity across all browsers. Uses event capturing instead of bubbling to make it happen. Thanks to Alexander for the recommendation and to Joern Zaefferer for the original focus/blur delegation code. 2009-12-21 16:10:21 -05:00
Alexander Farkas 5dc6b7ce34 Used the patch from Alexander as the basis for a rewrite of the IE change event logic. Now has full parity with the regular change event in other browsers: Works with regular bind, works better with multiple selects, works as a regular change event (note test suite changes), works with readonly/disabled inputs, and much more. The original patch had a number of problems, including firing the change event too many times, not bubblinb properly, and not handling clicks on multi-selects properly - that should all be fixed now. Thanks Alexander for the patch pushing in the right direction. 2009-12-21 15:32:32 -05:00
jeresig 1feb92afb4 Make sure that we don't bind the onunload event in Opera. 2009-12-18 22:35:02 -05:00
jeresig 42f8c3add3 No need to use the conditional comment for binding the onunload event in IE. 2009-12-18 20:29:22 -05:00
jeresig 9997620420 Retooled the arguments.callee-related changes in 98ce35d52b to avoid re-declarations where possible. 2009-12-16 16:45:00 -05:00
jeresig fe9333cc79 No need to use jQuery's event system for binding the onunload event in IE. 2009-12-16 15:42:03 -05:00
John Resig 253e73af51 Fixed typo from commit 542099a278. 2009-12-11 12:49:22 -08:00
Karl Swedberg 1bac61655b combined jQuery.bind() and jQuery.one() to make them more DRY 2009-12-10 14:44:30 -08:00
John Resig f25eedf32a Restrict the attr quick setters to only methods that specifically ask for the functionality. Fixes #5612. 2009-12-09 21:28:33 -08:00
John Resig b846ad4ca0 Add a try/catch to handle the exception thrown by unloaded iframes in IE. Fixes #4280. 2009-12-09 16:00:59 -08:00
John Resig 3ec2f1aef6 Make sure that we don't try to trigger non-existant native events on applets, embed, objects, etc. as it'll cause an exception with Java applets. Fixes #2414. 2009-12-09 14:49:31 -08:00
John Resig 1052792bb2 Fixed problems with removing live events. Fixes #4894. 2009-12-09 14:43:53 -08:00
John Resig 86bbf9cf87 We have to access the native event handlers/triggers directly, otherwise they won't execute in most modern browsers. Fixes #5124. 2009-12-09 13:53:07 -08:00
John Resig 98ce35d52b Removed uses of arguments.callee from jQuery. 2009-12-07 16:42:25 -08:00
John Resig 00a0abb751 Moved .ready() to core.js from event.js. 2009-12-07 16:34:55 -08:00
John Resig 97323d192f Oops, missed a closing } from 7d36ccfa8e. 2009-12-07 07:38:16 -08:00
John Resig 7d36ccfa8e Broke out the logic for the bubbling change/submit events so that they aren't bound if they aren't used. 2009-12-06 18:20:08 -08:00
John Resig 542099a278 Make sure that we're doing proper focus bubble testing. Also simplified the logic for the IE focusin/focusout handling. 2009-12-06 18:02:58 -08:00
John Resig aea5b09195 Adding in cross-browser onbeforeunload support. Fixes #4106. 2009-12-06 16:55:08 -08:00
lrbabe 2d27e053a0 Fix inverted 'orig' and 'fix' event in mouseenter/mouseleave special events. 2009-12-06 09:13:57 +08:00
Karl Swedberg 3afc6533e2 added semicolons to end of 2 statements (and fixed a misspelled word in comment) 2009-12-06 08:55:54 +08:00
John Resig 8d1efee316 Retooled the native triggering code, simplifying it. 2009-12-04 23:18:05 -05:00
Justin Meyer d42afd0f65 Adding in support for bubbling submit and change events, thanks to the patch by Justin Meyer. Includes a delegation test suite for manually testing to see if the events work as intended. 2009-12-04 11:28:50 -05:00
jeresig c3b2aa9928 Landed the rest of the liveHandler rewrite that takes advantage of the new closest multi-selector signature (sorry, accidentally committed some of it in the wrong commit: 4daae7a79f). 2009-12-03 11:15:26 -05:00
jeresig 4daae7a79f No need to do the closest match if no selectors are passed in. 2009-12-03 10:51:04 -05:00
Karl Swedberg ddb86f8d5b added curly braces around all if/else statements 2009-11-28 04:09:14 +08:00
Robert Katic 0bb3998a6a Re-adding zeros removed from slice calls in last commit. 2009-11-26 00:58:39 +08:00
Robert Katic 04dbdb7525 Corrected RegExp to match event namespaces. Fixes #5303. 2009-11-26 00:58:39 +08:00
Andrea Giammarchi 3a23a5c17d Changed the === undefined ready event check to == null since frameElement is usually null and was skipping the normal line of checks. 2009-11-17 10:45:01 -05:00
Rich Dougherty bf71575bb4 Land Rich's fix for not using window.top to do frame detection. Fixes #4787. 2009-11-11 13:56:39 -05:00
Mr Speaker 5cb1163469 Making sure that you can bind multiple toggles to a single element without problems. Thanks to 'Mr Speaker' for the original patch. Fixes #5274. 2009-11-11 09:46:24 -05:00
John Resig 262fcf7b7b Require that, at least, document.body exists before firing the ready event. This may stop jQuery from working on pages that don't create a document.body (such as Safari, when no body exists) but considering that we've required a document.body since 1.3 and haven't broken any pages, this doesn't appear to be a pressing issue. Used the test case written by dmethvin to verify the bug and the fix. Fixes #4320. 2009-11-09 13:47:53 +01:00
John Resig 24e18d4cae Backing out commit 81bfd9b870, read the ticket incorrectly - and seeing some of the other earlier tickets it's obvious that a more generic solution is needed. Thanks jdalton for the catch. 2009-11-09 13:30:33 +01:00
John Resig 4fd730dca7 Merge branch 'master' of git@github.com:jquery/jquery 2009-11-09 13:01:10 +01:00
lrbabe d251809912 Making mouseenter and mouseleave work with .live(). 2009-11-09 12:59:54 +01:00
lrbabe 9a69b2cf08 Cleanup bubbling focus and blur events
- Use cached event instead of jQuery.event
- Do not cache event.special if you use it only once
2009-11-09 19:41:43 +08:00
rkatic 3dc5bc5a8b Make liveHandler to use jQuery.lastCloser and speed up internal sorting. 2009-11-08 00:37:05 +08:00
John Resig 81bfd9b870 Make sure that document.body exists, at least, in IE before the ready event is fired. Fixes #5443. 2009-11-07 16:00:43 +01:00
visionmedia 50cf4351a6 Consistant splits using " " instead of ","
This was used in several other areas, and IMO is easier to read
and since nothing is multi-word then we misewell use " "
2009-10-27 08:40:59 +08:00
John Resig 4b5a680f77 Fixed == change in ready. 2009-10-08 18:13:07 +00:00
Yehuda Katz 45dfa3b0fc Probably not the optimal solution, but tests pass. 2009-09-16 08:33:00 +00:00
Ariel Flesler 9ebb2fc654 jquery event: closes #5250. bind(), unbind() and one() support Object Literals (needs some refactor though) 2009-09-16 02:19:18 +00:00
Ariel Flesler 681f4fd3cd jquery event: misc removal 2009-09-14 22:58:20 +00:00
Ariel Flesler bca8225413 jquery event: fixes #4989. blur and focus events now bubble and can be handled using live(). 2009-09-14 22:04:22 +00:00
Brandon Aaron f3474c00cd fix for #5198, event memory leak limited to IE only via conditional compilation 2009-09-14 21:14:15 +00:00
John Resig 0a6c5205d2 Make sure that at least one argument is provided to .slice(), in accordance with the spec. Fixes jQuery bug #4942. 2009-07-23 13:22:55 +00:00
John Resig 6fc57be843 Support dynamically loaded copies of jQuery using document ready. Fixes #4889. 2009-07-22 15:03:23 +00:00
Brandon Aaron ee34b6982a fix for #3533, triggering an event with a colon in the name on a table no longer throws an error in IE 2009-06-17 02:31:45 +00:00
Brandon Aaron b763cc6602 fix regression in removing live events caused by r6324 2009-05-12 15:43:51 +00:00
Ariel Flesler d075072768 jquery event: misc change 2009-05-10 14:38:35 +00:00
Brandon Aaron 09b59038a0 unused, left-over code from r6344 2009-05-07 18:09:17 +00:00
Brandon Aaron 811891785f .bind() now accepts an optional thisObject as the last argument which is used to change the value of this in event callbacks. fixes #3699 2009-05-07 00:50:28 +00:00
Brandon Aaron 8f042d8be3 fix for #4234. hover can take one function to use for both enter and leave. 2009-05-06 02:17:24 +00:00
Brandon Aaron 3a9c827bf8 fix for #3286 2009-05-06 01:24:22 +00:00
Brandon Aaron cbda6c541b fix global event triggering that i broke in r6323 2009-05-01 00:59:27 +00:00
Brandon Aaron 96fd5f18d4 special event refactor left over code 2009-05-01 00:36:21 +00:00
Brandon Aaron c6db93c373 fix for #2620 2009-05-01 00:21:29 +00:00
Brandon Aaron a4b8fed8ad only copy guid from handler to modifiedHandler if it does not already have one 2009-05-01 00:02:51 +00:00
Brandon Aaron aef1989ba7 live event handlers now receive data from trigger, fixes #4532, thanks nbubna 2009-04-30 21:50:15 +00:00
Brandon Aaron 71efbdd3b2 refactor specialAll into add and remove hooks for existing special events, live now accepts optional data param like bind, fixes #4612 and #4613, thanks to Mike Helgeson 2009-04-30 21:44:25 +00:00
Brandon Aaron 287ecdbf67 event clean up 2009-04-30 01:26:09 +00:00
Brandon Aaron 851846aabe .unbind() without any arguments now also unbinds namespaced events. fixes #4609 and #4241 2009-04-29 21:45:58 +00:00
Brandon Aaron f5690995dd fix for #4268. bind now works with iframe windows. thanks tr4nslator 2009-04-22 04:18:53 +00:00
Brandon Aaron 3715d73f79 fix for #2911 2009-04-22 02:31:29 +00:00
Brandon Aaron f8ef75eb91 remove trailing spaces 2009-03-23 01:55:17 +00:00
Brandon Aaron 30e760b63f fix for #4189, live/die now work with contexts other than just document 2009-03-20 03:10:07 +00:00
John Resig dae96f552e Added some more information to the unload event cleanup. 2009-03-19 15:16:02 +00:00
John Resig 985856b823 No longer use arguments.callee or RegExp (use new RegExp, instead) for ES 3.1 and Caja compatibility. Fixes jQuery bug #4251. 2009-02-26 18:00:41 +00:00
Ariel Flesler 48164ee603 jquery event: Fixing event.currentTarget for live(). 2009-02-23 13:27:48 +00:00
Ariel Flesler 0a1b0db347 jquery event: closes #4033. e.currentTarget wasn't being enforced for native events (IE doesn't have it) 2009-02-17 12:38:16 +00:00
John Resig 9aa0c69c43 Fixed bubbling of live events (if an inner element handles an event first - and stops progatation - then the parent event doesn't encounter the event). Thanks to Irae for the patch. Fixes bug #3980. 2009-02-09 23:29:57 +00:00
John Resig ce00f88ae2 Added a fix, suggested by Diego, for IE firing the ready event too late. Fixes bug #3988. 2009-01-28 22:38:00 +00:00
John Resig a78557472c Focused support of .live(). stopPropagation and stopImmediatePropagation are not supported - and do not do what the use would expect. 2009-01-20 17:25:37 +00:00
Ariel Flesler 735d44f6df jquery event: closes #3843. Some events' timeStamp are wrong on Firefox, we don't rely on the native value anymore. timeStamp reflects object creation, not last event triggered. 2009-01-19 22:20:25 +00:00
John Resig c2fad371f1 Made the IE frameElement check more explicit. Fixes #3880. 2009-01-17 22:04:23 +00:00
John Resig b1018cad12 Landed a fix for when a DOM element gets accidentally removed by another live event handler. Thanks to Irae for the patches. Fixed #3820. 2009-01-10 19:57:07 +00:00
John Resig ec7baf230d Didn't get specific enough with the proxy guid, fixes #3787. 2009-01-09 22:14:48 +00:00
John Resig d12e8a34e6 Made it so that you can bind a single function to multiple .live() selectors. Additionally, simplified the proxy code to provide a default proxy function.
Fixes #3787.
2009-01-09 22:10:42 +00:00
Ariel Flesler 6898cd6d2a jquery event: Fixes #3538. unbind on many events was failing. 2009-01-08 22:21:16 +00:00
John Resig 69e86d4f98 The triggered flag was being set too early, which was preventing bubbling form working when a
native event existed.
2009-01-05 20:43:24 +00:00
Ariel Flesler 42c99472cc jquery event: Removed a needless if (old code) 2009-01-05 13:31:21 +00:00
John Resig d1146aa7bf .live("div div") was failing due to the extra space in the selector (which conflicted with multiple event binding in .bind). 2009-01-04 23:58:43 +00:00
Ariel Flesler 9472728bce jquery event: event.stopImmediatePropagation() stops live handlers as well. 2009-01-04 22:32:18 +00:00
Ariel Flesler 303ad32c74 jquery event: Misc, removed a commented line from last commit. 2009-01-02 23:44:06 +00:00
Ariel Flesler b2552e6ea3 jquery event: Now using an internal argument to detect if bubbling on $.event.trigger. The other would fail when it receives an event object with target. Also, the target isn't nulled anymore.
In addition, there was a lot of code running O(n) during bubbling while not needed.
2009-01-02 23:07:16 +00:00
Ariel Flesler 989e3f61f7 jquery event: closes #3772. The extra function on $.event.trigger isn't supported anymore. 2009-01-02 22:23:52 +00:00
Ariel Flesler c7a14f1391 jquery event: event.timeStamp wasn't being created when passing just the type to the constructor.
Misc: Simplified the readyList execution code.
2008-12-31 03:36:51 +00:00
Ariel Flesler c0446c70d5 jquery event:
* event objects have isDefaultPrevented, isPropagationStopped and isImmediatePropagationStopped methods.
* Removed donative and dohandlers from $.trigger
* event.result carries the last returned data from a handler(not undefined).
* $.trigger doesn't keep bubbling if stopPropagation() is called.
* Same event object is used all along for global trigger
* Fixed the bug where target doesn't change when triggering on many elements.
* The data array on $.trigger was accumulating objects as it bubbles.
testrunner: adding more tests
2008-12-31 02:58:13 +00:00