Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

root/spinoffs/prototype/trunk/CHANGELOG

Revision 6381, 22.4 kB (checked in by madrobby, 3 years ago)

Prevent a crash in Safari when using $A() on NodeList objects that contain text nodes. [Thomas Fuchs]

Line 
1 *SVN*
2
3 * Prevent a crash in Safari when using $A() on NodeList objects that contain text nodes.  [Thomas Fuchs]
4
5 * Fix Element.Methods.descendants() to properly extend elements on IE.  [Thomas Fuchs]
6
7 *1.5.1_rc1* (March 9, 2007)
8
9 * Fix readAttribute for IE7. [Andrew Dupont]
10
11 *1.5.1_rc0* (March 8, 2007)
12
13 * Merge the selector branch into trunk, bringing vast performance improvements, bug fixes, and near-complete CSS3 compliance to $$ and Selector.  Closes #7568.  [Andrew Dupont]
14   Selector speed test: http://andrewdupont.net/test/double-dollar/
15
16 * Add support for JSON encoding and decoding.  Closes #7427.  [Tobie Langel]
17
18 * Fix double escaping of query parameters in Hash.prototype.toQueryString, and prevent Safari from iterating over shadowed properties when creating hashes.  Closes #7421.  [Tobie Langel, Mislav Marohnić]
19
20 * Fix simulated attribute reading for IE for "href", "src" and boolean attributes.  [Mislav Marohnić, Thomas Fuchs]
21
22 * Form.Element.disable() will now call blur(), removed blur() call from Form.Element.enable().  Closes #6034.  [tdd]
23
24 * Optimize document.getElementsByClassName and finalize DOM performance optimization refactoring.  Closes #6696.  [Mislav Marohnić]
25
26 * Fix an issue with serializing empty array inputs.  Closes #7516.  [stakadush, Mislav Marohnić]
27
28 * Add optional third parameter "camelized" to Element.setStyle, for optimized performance if style names are known to be camelCased.  [Thomas Fuchs]
29
30 * Fix a bug in the simulated hasAttribute for IE due to getAttributeNode sometimes returning null.  [sam]
31
32 * Optimize Element.getStyle and add new Element.getOpacity method. Special case IE and Opera getStyle methods.  Closes #7648.  [Tobie Langel, Thomas Fuchs]
33
34 * Optimize Element.setStyle and add new Element.setOpacity method, special case IE and Gecko opacity methods.  Closes #7585.  [savetheclocktower]
35
36 * Add unified Browser detection by providing Prototype.Browser.(IE|Gecko|WebKit|Opera) booleans.  Closes #6800.  [savetheclocktower]
37
38 * Add String.prototype.empty and String.prototype.blank (tests if empty or whitespace-only).  Closes #7016.  [Jonathan Viney, Thomas Fuchs]
39
40 * Update README to reflect new URLs, update LICENSE copyright years.  Closes #7426.  [Tobie Langel]
41
42 * Array.prototype.uniq optimization.  Closes #7417.  [Christophe Porteneuve]
43
44 * String.prototype.endsWith should not fail on multiple occurrences.  Closes #7416.  [Christophe Porteneuve]
45
46 * Add Form.Methods.request as a convenience method for serializing and submitting a form via Ajax.Request to the URL in the form's action attribute.  [sam]
47
48   Options passed to request() are intelligently merged with the underlying Ajax.Request options:
49   - If the form has a method attribute, its value is used for the Ajax.Request method option.  If a method option is passed to request(), it takes precedence over the form's method attribute.  If neither is specified, method defaults to "post".
50   - Key/value pairs specified in the parameters option (either as a query string or as a hash) will be merged with (and take precedence over) the serialized form parameters.
51
52 * Fix $(form).serialize() in Safari and add support for extending specific tags to Element.addMethods.  Closes #7358.  [Andrew Dupont]
53
54 * Add String.prototype.startsWith, String.prototype.endsWith, and String.prototype.include.  Closes #7075.  [Tobie Langel]
55
56 * Improve performance of String.prototype.escapeHTML by using a cached div and text node.  Closes #6937.  [altblue]
57
58 * Make setStyle() with opacity: 0 in Internet Explorer work correctly.  [Thomas Fuchs]
59
60 * Form.Element.activate shouldn't raise an exception when the form or field is hidden.  [sam]
61
62 * Remove support for "throw $continue" in Enumerable.  Use "return" instead.  [sam]
63
64 * Update HEADER to reflect new URL.  [sam]
65
66 *1.5.0* (January 18, 2007)
67
68 * Add test to ensure Content-type header is set for simulated verbs.  [sam]
69
70 * Fix Content-Type header for HTTP methods simulated with POST not defaulting to application/x-www-form-urlencoded.  [Thomas Fuchs]
71
72 * Simplify form serialization and add support for fields with the same name as Hash methods.  Closes #6649.  [Mislav Marohnić]
73
74 * Fix attribute selectors for IE.  Closes #5170.  [Tobie Langel, Andrew Dupont]
75
76 * A slew of dom.js improvements.  Closes #4217, #6589, #7001.  [Tobie]
77   - Fix Element.getDimensions() for hidden elements, make Element.getHeight() use .getDimensions()
78   - Add Element.getWidth()
79   - Make Element.replace() call .toString() on the html argument (alike .update())
80   - Fix an issue with Element.get/setStyle() and Safari with 'float'
81   - Add a bunch of missing unit tests
82
83 * Fix an issue with Element.setStyle({opacity:''}) setting the opacity to 0 instead of removing the set inline opacity style.  [Thomas Fuchs]
84
85 * Ensure Ajax.Request's evalResponse is called before onComplete so that onComplete can reference any elements created during the response.  Closes #6727.  [jonathan]
86
87 * Ensure the WEBrick test runner sets the correct Content-Type for tests and fixtures. [sam]
88
89 * Form.serialize once again works with non-form elements.  This is a temporary change to prevent the Rails link_to_remote regression described in #6898.  Prototype 1.5.1 will introduce an API for working with collections of arbitrary form elements.  References #6887.  Closes #6898.  [sam]
90
91 * Make selectors match forms that have an element with name="id" correctly, fixes #5759 [mislav]
92
93 * Remove support for HTTP authorization in Ajax calls introduced with #6366.  Closes #6638 [jmecham]
94
95 * Add Enumerable.size() to count elements in an enumerable and the corresponding Array.size() method, fixes #6710 [ZenCocoon]
96
97 * Add String.succ() method to allow for String ranges, fixes #6037 [Cory Hudson, mislav]
98   Examples:
99     'abcd'.succ();                                   -> 'abce'
100     $R('a','d').map(function(char){ return char; }); -> ['a','b','c','d']
101
102 * Make Element.scrollTo() correctly consider offsets of parent DOM nodes, fixes #6625 [ohader, savetheclocktower]
103
104 * Fix Enumerable.inGroupsOf() to correctly work with fill values that evaluate to false, fixes #6782 [hawk]
105
106 * Remove/cleanup redundant $() calls in dom.js, fixes #6817 [Tobie]
107
108 * Don't cache files in automatic unit tests, fixes #6218 [voidlock]
109
110 * Add $w() to easily create arrays from strings like Ruby's %w, fixes #5682 [glazedginger, brendon.aaron]
111
112 * Add Element.toggleClassName() to toggle CSS classes on elements, fixes #6759 [Tobie]
113
114 * Make Form.getInputs always return an array for consistency, fixes #6475 [Justin Gehtland, savetheclocktower]
115
116 * Make TimedObserver work correctly for SELECT MULTIPLE elements, fixes #6593 [clemos, tdd]
117
118 * Fix Template.prototype.evaluate to correctly interpret 0 and false values, add String.interpret() for safely interpreting and converting values to strings, fixes #6675 [hawk]
119
120 * Make Element.getStyle() work with camelCased argument, fixes #6686 [Tobie]
121
122 * Fix a redundant check in Array.prototype.compact, fixes #4739 [wlodarcz, mislav]
123
124 * Fix $() to correctly pass back the results of document.getElementById(), notably returning "null" on elements not found, fixes #6582 [adsmart]
125
126 * Change/add assertNull, assertUndefined, assertNullOrUndefined and not-* variants in unittest.js, fixes #6582 [adsmart]
127
128 * Cleanup String.prototype.camelize, fix an issue with String.prototype.underscore, fixes #4714, #6685 [Tobie, Thomas Fuchs]
129
130 * Add String.prototype.capitalize, which returns a string with the first character in upper case, fixes #6666 [Tobie]
131
132 * Make Element.getStyle() and Element.setStyle() handle the CSS 'opacity' property transparently in IE, fixes #6093 [brandon.aaron, Tobie]
133
134 * Fix handling of CSS 'float' property for Element.getStyle() and Element.setStyle(), fixes #4160 [Thomas Fuchs, ericf]
135
136 * Fix that onComplete would be called twice with synchronous Ajax requests on Safari (provides units tests for #5756) [Thomas Fuchs]
137
138 * Fix Form.Field.activate to not select text on buttons in IE, fixes #2653 [sutch, mislav, Thomas Fuchs]
139
140 * Fix String.unescapeHTML() on Firefox for strings that are longer than 2048 bytes, fixes #5789 [Paul Moers, Thomas Fuchs]
141
142 * Redefine Array.prototype.concat for Opera, as the native implemenation doesn't work correctly [Thomas Fuchs]
143
144 * Add unit tests for Function.prototype.bind() [Thomas Fuchs]
145
146 * Add String.prototype.underscore and String.prototype.dasherize [Thomas Fuchs]
147   Examples:
148     'Hello_World'.dasherize()                    -> 'Hello-World'
149     'borderBottomWidth'.underscore()             -> 'border_bottom_width'
150     'borderBottomWidth'.underscore().dasherize() -> 'border-bottom-width'
151
152 *1.5.0_rc2* (November 11, 2006)
153
154 * Ensure that existing DOM properties take precedence over extended element methods in all browsers.  Closes #5115.  [Sean Kleinjung, sam]
155
156 * Add Element.Methods.readAttribute as a simple wrapper around getAttribute (which isn't a "real" function and doesn't have .apply or .call in Safari and IE).  Useful in conjunction with Enumerable.invoke for extracting the values of a custom attribute from a collection of elements.  [sam]
157   Example:
158     <div id="widgets">
159       <div class="widget" widget_id="7">...</div>
160       <div class="widget" widget_id="8">...</div>
161       <div class="widget" widget_id="9">...</div>
162     </div>
163    
164     $$('div.widget').invoke('readAttribute', 'widget_id')
165     // ["7", "8", "9"]
166
167 * Add Element.Methods.immediateDescendants, like $A($(element).childNodes) but without text nodes.  [sam]
168
169 * More consistency.  Closes #6573.  [Bob Silva]
170
171 * String.prototype.toQueryParams and Hash.prototype.toQueryString now properly serialize arrays as multiple values.  Closes #4436.  [mislav, altblue, L`OcuS]
172
173 * Fix Form.serialize for options with empty values.  Closes #5033. [tdd, Thomas Fuchs, sam]
174
175 * Add Element.Methods.Simulated for simulating HTMLElement methods in lesser browsers.  Add hasAttribute as the first simulated method.  [tdd, Thomas Fuchs, sam]
176
177 * Add a "retry with throw" button for test error messages. [sam]
178
179 * rake test now runs test/unit/*.html by default.  Additionally, you can specify individual tests to run with the TESTS environment variable, and you can restrict the tests to particular browsers using the BROWSERS environment variable. [sam]
180
181   Examples:
182     % BROWSERS=safari,firefox rake test
183     % TESTS=dom rake test
184
185 * Element.hasClassName now bypasses the Element.ClassNames API for performance.  [sam]
186
187 * Pick some low-hanging performance and DRYness fruit.  [sam]
188   - Inline length property accesses in for loops
189   - Enumerable-ize for loops where it makes sense
190   - Make better use of Element.Methods and Form.Methods/Form.Element.Methods
191
192 * A slew of Ajax improvements.  Closes #6366.  [mislav, sam]
193  
194   Public-facing changes include:
195   - HTTP method can be specified in either lowercase or uppercase, and uppercase is always used when opening the XHR connection
196   - Added 'encoding' option (for POST) with a default of 'UTF-8'
197   - Ajax.Request now recognizes all the JavaScript MIME types we're aware of
198   - PUT body support with the 'postBody' option
199   - HTTP authentication support with the 'username' and 'password' options
200   - Query parameters can be passed as a string or as a hash
201   - Fixed both String.toQueryParams and Hash.toQueryString when handling empty values
202   - Request headers can now be specified as a hash with the 'requestHeaders' option
203
204 * Improve performance of the common case where $ is called with a single argument. Closes #6347. [sam, rvermillion, mislav]
205
206 * Fix Object.inspect to correctly distinguish between null and undefined, fixes #5941 [tdd, mislav]
207
208 * Don't serialize disabled form elements, fixes #4586 [tdd]
209
210 * Make HTML element classes extension mechanism for Safari not throw errors on WebKit beta versions [Thomas Fuchs]
211
212 * Add support for using Element.update() with no or a non-string parameter [Thomas Fuchs]
213
214   Example:
215     $('empty_me').update()          -> clears the element
216     $('easy_as').update(123)        -> set element content to '123'
217
218 * Add unit tests for hashes, fixes #6344 [Tobie Langel]
219
220 * Add clone() method to arrays, fixes #6338 [Tobie Langel]
221
222 * Backing out of [5194] (Element.clear) because of issues with IE on certain elements, #6051
223
224 * Add Element.clear for easily emptying out elements, fixes #6051 [brandon.aaron@gmail.com]
225
226 * Enumerable.each now returns the enumerable to allow for method chaining, fixes #6250 [eventualbuddha]
227
228 * Make makeClipping and undoClipping always return their element to stay chainable
229
230 * Fix an issue with certain Element chain calls not correctly extending elements with Prototype element methods on IE [Thomas Fuchs]
231
232 * Add Enumerable.eachSlice and Enumerable.inGroupsOf, fixes #6046 [rails@tddsworld.com, Thomas Fuchs]
233
234   Example:
235     [1,2,3,4,5].inGroupsOf(3)       -> [[1,2,3],[4,5,null]]
236     [1,2,3].inGroupsOf(4,'x')       -> [[1,2,3,'x']]
237
238 * Complete unit tests for array.js and string.js [Thomas Fuchs]
239
240 * Performance improvements for document.getElementsByClassName, including querying with XPath in supported browsers. [Andrew Dupont]
241
242 * Make Form.getElements() return elements in the correct order, fix broken Form.serialize return, fixes #4249, #6172 [lars@pinds.com, Thomas Fuchs, john]
243
244 * Add various DOM unit tests, fixes #6176, #6177 [tdd]
245
246 * Split Form.serialize into Form.serialize and Form.serializeElements. The latter can be used stand-alone to serialize an array of elements you pass in, instead of the entire form [DHH]
247
248 * Form.Element.disable() and .enable() will now work correctly, fixes #6034 [dresselm@businesslogic.com]
249
250 * Fix IE and Safari issues with Position.positionedOffset, add position.html unit tests, fixes #5621 [renggli@iam.unibe.ch]
251
252 * Fix an issue with Element.undoClipping and IE [Thomas Fuchs]
253
254 * Element.cleanWhitespace now correctly removes consecutive empty text nodes, fixes #3209 [livier.duroselle@gmail.com]
255
256 * Element.extend now does not try to extend text nodes, fixes #4642 [siegfried.puchbauer@gmail.com]
257
258 *1.5.0_rc1* (September 4, 2006)
259
260 * bindAsEventListener now passes along any provided arguments after the event argument.  Closes #5508.  [todd.fisher@revolution.com]
261
262 * Fix makeClipping and undoClipping with local overflow style values other than visible and hidden, fixes #3672  [Thomas Fuchs]
263
264 * Add Element.up, Element.down, Element.previous, and Element.next for easily traversing the DOM.  (Inspired by Thomas Fuchs' original implementation of Element.up: http://pastie.caboo.se/7702) [sam]
265
266   Examples:
267     <div id="sidebar">                  -> $('nav').up() or $('menu').up('div')
268       <ul id="nav">                     -> $('sidebar').down()  or $('sidebar').down('ul') or $('menu').previous()
269         <li>...</li>                    -> $('sidebar').down(1) or $('sidebar').down('li')
270         <li>...</li>                    -> $('sidebar').down(2) or $('sidebar').down('li', 2) or $('sidebar').down('li').next('li')
271         <li class="selected">...</li>   -> $('sidebar').down('li.selected')
272       </ul>                             
273       <ul id="menu">                    -> $('sidebar').down('ul').next()
274         ...
275
276 * Refactor $$ and Element.getElementsBySelector into Selector.findChildElements. [sam]
277
278 * Add Element.match, which takes a single CSS selector expression and returns true if it matches the element. [sam]
279
280 * Add Element.ancestors, Element.descendants, Element.previousSiblings, Element.nextSiblings, and Element.siblings. [sam]
281
282 * Add Element.inspect for better DOM debugging. [sam]
283
284 * Add an optional boolean argument to String.prototype.inspect which, when true, makes the string double-quoted instead of single-quoted. [sam]
285
286 * Add the uniq() method to Arrays, which returns a new Array with duplicates removed, fixes #3810 [secondlife]
287
288 * Add stop() method to PeriodicalExecutor, fixes #4801 [Jon Evans]
289
290 * Fix issues with Enumerable.any, ObjectRange.toArray, added unit tests, fixes #4419 [miyamuko, Thomas Fuchs]
291
292 * Fix two instances of unneccesarily redeclared variables, fixes #5229 [Thomas Fuchs]
293
294 * Fix a loop in Element.extend to properly use local variable, fixes #5128 [arrix]
295
296 * Add constants for additional keys in Event, fixes #5411, #5795 [simone_b]
297
298 * Workaround a DOM API bug in Opera in Position.page(), fixes #2407, #5848 [Thomas Fuchs]
299
300 * Remove duplicate definition of Position.clone(), fixes #3765 [Thomas Fuchs]
301
302 * Make destructive Element, Form, and Form.Element methods return their first argument, so that multiple calls can be chained together. [sam]
303
304   ex. $("sidebar").addClassName("selected").show();
305
306   The following methods now return their first argument: Element.toggle, Element.hide, Element.show, Element.remove, Element.update, Element.replace, Element.addClassName, Element.removeClassName, Element.observe, Element.stopObserving, Element.cleanWhitespace, Element.scrollTo, Element.setStyle, Element.makePositioned, Element.undoPositioned, Element.makeClipping, Element.undoClipping, Form.reset, Form.disable, Form.enable, Form.focusFirstElement, Form.Element.focus, Form.Element.select, Form.Element.clear, Form.Element.activate, Form.Element.disable, Form.Element.enable.
307
308 * For consistency, Element.toggle, Element.show, Element.hide, Field.clear, and Field.present no longer take an arbitrary number of arguments. [sam]
309  
310   !! BACKWARDS COMPATIBILITY CHANGE !!
311  
312   If you have code that looks like this:
313     Element.show('page', 'sidebar', 'content');
314   You need to replace it with code like this:
315     ['page', 'sidebar', 'content'].each(Element.show);
316
317 * Mix in Form and Form.Element methods to forms and form field elements with $() and $$(). Closes #4448. [Dan Webb, sam]
318
319 * Add Object.clone [sam]
320
321 * Add Form.Element.disable and Form.Element.enable. Closes #4943. [jan@prima.de]
322
323 * Field is now simply an alias for Form.Element. [sam]
324
325 * Add Element.Methods.getElementsByClassName and Element.Methods.getElementsBySelector. Closes #4669. [Andrew Dupont, DHH, sam]
326
327 * Avoid race condition when stopping an Ajax.PeriodicalUpdater. Closes #4809. [e98cuenc@gmail.com]
328
329 * Improve support for synchronous requests. Closes #5916. [sam, jthrom@gmail.com]
330
331 * Add serialization and observation support for input type=search. Closes #4096. [rpnielsen@gmail.com]
332
333 * Properly decode query components in String.prototype.toQueryParams. Closes #3487. [sam]
334
335 * Add Array.prototype.reduce [sam]:
336   [1, 2].reduce()   // [1, 2]
337   [1].reduce()      // 1
338   [].reduce()       // undefined
339
340 * Add Object.keys and Object.values [sam]
341
342 * Simulate non-GET/POST requests by POSTing with a _method parameter set to the actual verb [DHH]
343
344 * Make Element.update() handle TABLE-related elements with the DOM API because of IE's missing .innerHTML property on them [Thomas Fuchs, thx to Rick Olson]
345
346 * Sync to script.aculo.us unittest.js library as of 2006/08/29 [Thomas Fuchs]
347
348 * Add additional unit tests to test/unit/dom.html for testing Element.update and $().update in various enviroments [Thomas Fuchs]
349
350 * Prevent possible exceptions on unloading the page in IE [Thomas Fuchs]
351
352 *1.5.0_rc0* (April 5, 2006)
353
354 * Modify HTMLElement.prototype and short-circuit Element.extend where possible. Closes #4477. [Thomas Fuchs]
355
356 * Only observe window.onunload in IE for Mozilla bfcache support. Closes #3726. [Mike A. Owens]
357
358 * Don't redefine Array.prototype.shift. Closes #4138. [leeo]
359
360 * Prevent redefining Array.prototype.reverse more than once. Closes #3951. [brettdgibson@gmail.com]
361
362 * Fix Enumerable.min/Enumerable.max to recognize the value 0. Closes #3847, #4190. [rubyonrails@brainsick.com, Martin Bialasinski]
363
364 * Change Ajax.getTransport to prefer XMLHttpRequest in anticipation of IE 7. Closes #3688. [jschrab@malicstower.org, sam]
365
366 * Make Array.prototype.flatten more robust. Closes #3453. [Martin Bialasinski, sam]
367
368 * Fix evalScripts from crashing Firefox if script includes 'var'. Closes #3288, #4165. [rahul@ntag.com, sam]
369
370 * Scope iterators locally. Closes #4589. [sam]
371
372 * Support Insertion.Before/Insertion.After for <tr> elements in IE. Closes #3925. [rails-venkatp@sneakemail.com]
373
374 * Add a contentType option for overriding application/x-www-form-urlencoded in Ajax.Request. Closes #3564. [avif@arc90.com, sam]
375
376 * Surround values in the X-JSON header in parenthesis for better compatibility with Firefox. Closes #4118. [bigsmoke@gmail.com]
377
378 * Fix Form.serialize to properly encode option values in multiple selects in IE. Closes #3291. [rubyonrails@brainsick.com]
379
380 * Cache methods added to DOM elements with Element.extend to prevent memory leaks in IE. Closes #4465. [jaen@laborint.com, sam]
381
382 * 1.5.0_pre1* (March 26, 2006)
383
384 * Add attribute selector support for Selector (and $$). Closes #4368. [devslashnull@gmail.com]
385   Example:
386     $$('form#foo input[type=text]').each(function(input) {
387       input.setStyle({color: 'red'});
388     });
389  
390 * Send Accept header containing 'text/javascript, text/html, application/xml, text/xml */*'' to inform Rails that we prefer RJS, but we'll take HTML or XML or whatever if you can't deliver the goods [DHH]
391
392 * Make $$ work in IE. Closes #3715. [rubyonrails@brainsick.com]
393
394 * Add test/browser.html, which provides a simple object browser for the Prototype source (Firefox/Safari only). [sam]
395
396 * Add Element.extend, which mixes Element methods into a single HTML element.  This means you can now write $('foo').show() instead of Element.show('foo').  $, $$ and document.getElementsByClassName automatically call Element.extend on any returned elements. [sam]
397
398 * Add Element.replace as a cross-browser implementation of the "outerHTML" property. References #3246. [tom@craz8.com]
399
400 * Fix Enumerable.zip iterator behavior. [Marcin Kaszynski, sam]
401
402 *1.5.0_pre0* (January 18, 2006)
403
404 * Add String.prototype.truncate to complement the Action View truncate helper. [sam]
405
406 * Add String.prototype.gsub, String.prototype.sub, and String.prototype.scan, all of which take a pattern and an iterator (or a pattern and a replacement template string in the case of gsub and sub). [sam]
407
408 * Add a Template class for interpolating named keys from an object in a string. [sam]
409
410 * Add the $$ function for finding DOM elements by simple CSS selector strings. [sam]
411   Example: Find all <img> elements inside <p> elements with class "summary", all inside
412            the <div> with id "page". Hide each matched <img> tag.
413              $$('div#page p.summary img').each(Element.hide)
414      
415 * Add a Selector class for matching elements by single CSS selector tokens. [sam]
416
417 * Add Test.Unit.Assertions.assertEnumEqual for comparing Enumerables in tests. [sam]
418
419 * Add Element.childOf(element, ancestor) which returns true when element is a child of ancestor. [sam]
420
421 * Fix escaping in String.prototype.inspect. [sam]
422
423 * Add String.prototype.strip to remove leading and trailing whitespace from a string. [sam]
424
425 * Move Prototype to Rails SVN. [sam]
426   http://dev.rubyonrails.org/svn/rails/spinoffs/prototype/
427  
428 * Make the console nicer. [sam]
429
430 * Prune the source tree. [sam]
Note: See TracBrowser for help on using the browser.