*SVN* * String.prototype.truncate now explicitly converts its return value into a string if no truncation takes place. This prevents possible issues with methods expecting input data that is typeof == 'string'. [Thomas Fuchs, Tobie Langel, Sam Stephenson] * Event.findElement behaves as expected when the element passed matches the given selector. Closes #8395. [Mislav Marohnić, Tobie Langel] * Element.setOpacity now calls removeAttribute on the filter style on IE if no more filters remain, which makes Cleartype work properly. Closes #8376. [alexdemi, Thomas Fuchs] * Event.findElement now uses Element#up (and as a result can take a CSS selector instead of just a tag name). [Tobie Langel] * Minor cleanup of the position methods [sam] * Fix Element#clonePosition to call viewportOffset. Closes #8372. [graemenelson, Christophe Porteneuve] * Prevent an error being thrown by $$ when #id does not exist in $$("div #id"). Closes #8325. [Tobie Langel, ecke] * Make Prototype.ScriptFragment behave when including Prototype inline. [Christophe Porteneuve] * Deprecate Position (kept for backwards compatibility). Add Element#cumulativeOffset, Element#positionedOffset, Element#absolutize, Element#relativize, Element#cumulativeScrollOffset, Element#getOffsetParent, Element#viewportOffset and Element#clonePosition. [Christophe Porteneuve] * Make Element#update and Element#insert work for SELECT tags in IE and Opera. [Tobie Langel] * Make Element#insert and Element#update better handle TABLE related elements in IE and Opera. Closes #7776, #8040, #7550, #7776, #7938. [Tobie Langel] * Make Element#readAttribute('title') work in Opera. [Tobie Langel] * Make Element#replace work with form elements in Firefox and Safari. Closes #8010, #7989. [dsl239, Tobie Langel] * Add Element#wrap which wraps the element inside a new one. Closes #5732. [P. Vande, Tobie Langel] * Make Element into a constructor: new Element(tagName, attributes). Add Element#writeAttribute which accepts a hash of attributes or a name/value pair. Closes #7476. [Mislav Marohnić, haraldmartin, Tobie Langel] * Insertion overhaul: Add Element.insert(content[, position = 'bottom']). Deprecate Insertion (kept for backwards compatibility). Make Ajax.Updater option.insertion accept both Insertion.Top or the now preferred 'top'. Closes #7907. [Tobie Langel] * Refactor Element.extend and eliminate Element.extend.cache. [sam] * Add Function#curry, Function#delay, Function#defer, and Function#wrap. Closes #8134. [Andrew Dupont, Tobie Langel, sam] *1.5.1* (May 1, 2007) * Don't duplicate the event argument in Function#bindAsEventListener. Closes #6497. [wiktor] * Fix Selector :not-clause chaining. [Andrew Dupont] *1.5.1_rc4* (April 27, 2007) * Fix $F breakage from [6598]. [sam] * Set window.$continue to an Error with a helpful message for anyone who may still be using "throw $continue". [sam] * Fix jstest.rb IE support so you don't have to close the IE window after each test (yay!). Closes #8207. [Ryan Schuft] * Fix jstest.rb Konqueror support. Closes #7140. [Christophe Porteneuve] * Fix regression in which no-argument calls to Element.addMethods() would not add the methods defined in Form.Methods and Form.Element.Methods. Closes #8206. [Tobie Langel, fwittekind] * Fix Element#readAttribute to work with the 'type' attribute in IE. Closes #8160. [Tobie Langel, Wiktor Ihárosi] *1.5.1_rc3* (April 24, 2007) * Add Element#childElements as an alias for Element#immediateDescendants. [Tobie Langel] * Optimize DOM navigation methods (Element#up, Element#down, Element#previous, Element#next) for no-argument calls. Closes #7848. [haraldmartin, sam] * Add Element#firstDescendant to retrieve the first non-text child node of an element. [sam] * Element.addMethods should add methods to Element as well as Element.Methods. Closes #7888. [Andrew Dupont] * Add support for per-request onCreate callbacks to Ajax.Request. Closes #8011. [Andrew Dupont] * Don't call evalResponse() when an Ajax response has no Content-type header. Closes #7827. [Tobie Langel] * Automatically strip security delimiter comments from JSON strings before evaling them. The default delimiter is '/*-secure- ... */' or you can specify your own with the Prototype.JSONFilter regular expression. If you wrap your JSON response bodies in this delimiter on the server side, rogue external sites can't hijack potentially sensitive data via