Prototype 1.6.0.3: A long-awaited bugfix release

by Andrew | September 30th, 2008

Yesterday we released Prototype 1.6.0.3, the result of some much-needed bug fixes, and a stopgap release on the road to 1.6.1.

It’s a backwards-compatible, drop-in replacement recommended for all users of Prototype 1.6. We’ve fixed 30 bugs and made 25 other improvements to our already-rock-solid library.

Developers who follow along in Git might’ve noticed that the repository has seen a lot of disruptive activity in the last few days as we reassessed many of the commits that had gone into the library since April. Rather than try to fit too many fixes into one release, we decided to scale back and release 1.6.0.3 with the set of improvements we were in complete agreement on.

Because of the way we handled this overhaul, those who try to update their Git working copies to the latest trunk will encounter conflicts, even if they hadn’t made local changes.

Here’s how we recommend bringing your working copy up to date:

  1. First, if you’ve made any local changes, please create a new branch so that those changes aren’t lost.
  2. On your local master branch, run:

    git fetch origin master
    git reset --hard 34ee207

    The first line fetches the new commits without trying to apply them to your local copy. The second line resets your master branch to be in sync with the latest revision.

  3. From there, you can cherry-pick from your branch any local commits you made (though you may have to do some manual merging).

Download, report bugs, and get help

As always, thanks to the core team and the many users who contributed bug reports and well-tested patches for this release.

Comments

  1. Alexey Bass #

    I just came to download 1.6.0.2 and that was surprise! Thank you guys, Prototype rocks!

    September 30th, 2008 @ 02:11 PM
  2. Bernd #

    Nice to see some signs of live. In the last weeks jQuery and MooTool were heavily discussed as an alternative.

    September 30th, 2008 @ 07:04 PM
  3. Patrick #

    Thanks for all the hard work guys, Prototype is a joy to use.

    September 30th, 2008 @ 07:26 PM
  4. Sam #

    Thanks for the new release, but any chance of a link to a changelog of what the bug fixes and changes were?

    I can’t seem to find one on the website at all.

    September 30th, 2008 @ 09:16 PM
  5. Jason #

    Thank you guys!

    To be honest, you have been so quite lately that I started considering switching to another lib.

    As a Prototypejs developer I would like to get news more often. I mean simple news to let us know that you are still there! Maybe some blog posts or something.

    Anyway, its a great lib! Thank you very much.

    October 1st, 2008 @ 02:39 AM
  6. Mark B. #

    Serioulsy guys, no matter how great of a job you are doing, don’t forget about the PR. Jquery is really starting to overtake prototype and we are losing ground here.. Prototype appeared dead for months and still does. Other communities are growing and we are losing out here. No matter how great of a library Prototype is, with the current strategy (is there one ?), this fantastic lib will not survive.

    Also very important.. we need components, not a whole lot but atleast a few basic ones like jquery’s tabs, accordion ect..

    Even the presence at the ajax experience is very low-key compared to jquery..

    Please guys, do something about it.. because people are starting to get woried !

    October 1st, 2008 @ 04:14 AM
  7. bugrain #

    @Mark B – check out http://scripteka.com/

    October 1st, 2008 @ 06:25 AM
  8. Leif Högberg #

    Is there a changelog available somewhere?

    October 1st, 2008 @ 06:29 AM
  9. Chris Wheeler #

    Changelog?

    October 1st, 2008 @ 07:58 AM
  10. Nick Stakenburg #

    Good to see things are moving again. I miss the great parts from the trunk but understand the choice to stabilize those in 1.6.0.4, things got out of hand.

    @Leif: http://github.com/sstephenson/prototype/tree/master/CHANGELOG

    @Bernd, Jason, MarkB: Yeah, I’ve been thinking about that as well lately. Hopefully it’ll improve, more focus on the community with a site revamp would really help imo.

    The community itself could also do more to push things forward. If anyone reading this wants to get involved join the mailing lists. There’s a lot of discussion going on there to improve things.

    October 1st, 2008 @ 07:59 AM
  11. Seengee #

    Gotta say I agree entirely with the sentiments of all above. As much as the massive jQuery love-in is becoming very tedious you cannot deny that as a community they are putting some good work together. The prototype community on the other hand is becoming increasingly quiet, has everyone jumped ship already? I know that Thomas is working on a new version of Scripaculous but i cant help thinking already that the fragmented nature of the prototype/scriptaculous combo is part of the problem we have here.

    October 1st, 2008 @ 10:26 AM
  12. benb #

    I brought this up a year and a half ago with Andrew Dupont and a few others. A year and a half later it is still the same.

    Back then it was the lack of centralized documentation, roadmap and central location for plugins. Today the docs are better, but everything else is still sub par.

    Like others, I much prefer Prototype, however the lack of a central official Prototype location for plugins, easy to find code examples, roadmap so people know the project is still alive and moving forward is a severe negative. At the time I even offered to help with it.

    Some simple things like above would make a huge perceptual difference and is frankly, more professional. Mailing lists are fine, but I hate to say, a more central location to find things – like jQuery has – is superior for new developers looking to use it, as well as current ones. It is not unlike when there were no docs available.

    It is disheartening that in the several years I have worked with, followed and asked for this, very little has changed other than docs being added.

    October 1st, 2008 @ 10:51 AM
  13. benb #

    Actually I meant to say Tobie, not Andrew.

    October 1st, 2008 @ 10:52 AM
  14. Laurent #

    I want to say thanks to the Prototype core team for this nice release!

    Also a suggestion: It could be nice to have a reference list of Prototype-related resources(like scripteka.com, script.aculo.us, prototype-ui.com, livepipe.net, ...) on the official Prototype site(prototypejs.org).

    Also, to follow Nick’s suggestion, let’s give our valuable ideas and opinions at the Prototype mailing list: http://groups-beta.google.com/group/prototype-scriptaculous

    October 1st, 2008 @ 04:13 PM
  15. RugWarrior #

    Changelog:

    • Add support for the Chrome browser in jstest.rb. (Andrew Dupont)
    • Workaround a JavaScript exception in Opera. (Thomas Fuchs)
    • Improve NodeList detection for Safari’s $A function. (Garrett Smith, jddalton)
    • Use different tactic to sniff for Opera in order to avoid false positives in IE. (Tobie Langel, jddalton)
    • Rename variable in Form.Element.Serializers.select. (jddalton)
    • Coerce Opera’s version string into a number whenever we need to sniff. (Sam Holman, jddalton)
    • Ensure Object.isElement handles “falsy” values properly. (kangax)
    • Fix exiting test task on INT signal. (Samuel Lebeau)
    • Fix unit test freeze in IE. (Tobie Langel)
    • Ensure Hash does not return keys from the prototype chain (e.g., constructor, valueOf, toString). (kangax)
    • Fix toString/valueOf sharing same method reference via closure in Class#addMethods. Use plain property assignment, since Object.extend fails to enumerate over toString/valueOf. (kangax)
    • Stop Form.Element.disable from stealing focus. (jddalton)
    • Ensure Element.hide and Element.show return an element, even if you pass an element ID. (Andrew Dupont)
    • Fix an issue where Element#getStyle(‘height’) returns null if the height is set to “auto.” (kangax, jddalton)
    • Add unit tests for Element#descendantOf. (jddalton)
    • Form#serializeElements should not serialize file inputs. (kangax, Lonesome Boy)
    • Fix an issue with calling Event.pointer before the DOM is loaded. (kangax, jddalton) [#4 state:resolved]
    • Element#down on an input element should not raise error. (humeniuc, kangax)
    • More unit tests for Object.isHash. (Tobie Langel)
    • Allow Function#argumentNames to handle line breaks between arguments. (Geoff M. Granum, Tobie Langel) [#63 state:resolved]
    • For consistency, add additional optional parameter “context” to Number.prototype.times. (Samuel Lebeau)
    • Replace all instances of foo.proto by foo[‘proto‘] for Caja-compliance. (Tobie Langel)
    • Speed up Function#argumentNames. Avoid Enum dependency. (Samuel Lebeau, Tobie Langel)
    • Fix Event#element accessing inexistent tagName property (e.g. when element is a document). (kangax)
    • Amended failing Element#identify test.
    • Refactor unit tests. Unit tests are now dynamically generated from a JavaScript test file and optional HTML, JS and CSS fixtures. [Tobie Langel]
    • Fix issue where Safari improperly reports an element as a descendant of itself.
    • Greatly simplify IE’s implementation of Element#descendantOf.
    • Prevent exception when using Selector to search for an attribute that is not present. [gryn, Andrew Dupont]
    • Fix issues where Firefox improperly returns the wrong node from a call to Event.element. Also fixes possible exception in Event.element in IE. [jdalton, Andrew Dupont]
    • Fix issue where Safari 3 deletes custom properties from the document object when the page is returned to via the back button. [mzsanford, kangax, Andrew Dupont]
    • Integrate support for the W3C Selectors API into the Selector class. Will now use the API when possible (browser supports the API and recognizes the given selector). Means minor changes to the semantics of :enabled, :disabled, and :empty in order to comply with CSS spec.
    • Avoid re-extending element in Element#getDimensions. [kangax]
    • Prevent Hash#toQueryString from serializing objets. [kangax, Tobie Langel]
    • Fix Event#pointer in IE standard mode. Closes #9920. [kangax, Tobie Langel]
    • Instanciate Test.Unit.Logger on window load. [Tobie Langel]
    • Unit tests clean-up. [Tobie Langel]
    • Refactor String#escapeHTML to avoid using the `with` statement. [Tobie Langel]
    • Remove usage of the `with` statement from unit tests. [Tobie Langel]
    • Complete rewrite of the deprecation helper, now renamed UpdateHelper and useable by third-party libs. [Tobie Langel]
    • Make Element#writeAttribute handle frameborder attribute in IE. Closes #11068. [staaky, Tobie Langel]
    • Minor clean-up of selector.js. Closes #10844. [RQuadling]
    • Make String#unescapeHTML strip tags in IE. Closes #10173. [kangax]
    • Stop form observers in unit tests. Closes #10938. [kangax]
    • Performance improvements for Enumerables. Closes #11264. [Ben, Samuel Lebeau]
    • deprecation extension: mark Hash.toJSON() as removed. [Tobie Langel]
    • deprecation extension: mark Class.create() used without arguments as deprecated. [Tobie Langel]
    • deprecation extension: mark Event.unloadCache as removed rather than deprecated. [Tobie Langel]
    • deprecation extension: log everything but deprecations with console.error. [Tobie Langel]
    • Change deprecation extension to use Firebug’s console.warn and console.error. [Andrew Dupont, Tobie Langel]
    • Make tagName comparisons XHTML-compliant. Closes #11012, #11013, #11014. [cfis, Tobie Langel]
    • Avoid breaking Element.prototype in browsers which support it. Closes #11004. [cfis, Tobie Langel]
    • Prevent Element#cumulativeOffset, Element#getOffsetParent, Element#positionedOffset, Element#viewportOffset and Element#clonePosition from throwing an error in IE when called on a parent-less element. Closes #9416, #10192, #10248. [ronstoney, psiborg, kangax]
    • Prevent Enumerable#eachSlice from entering into an endless loop if passed an argument smaller than 1. Closes #10665. [kangax, Tobie Langel]
    • Allow Selector to correctly detect the presence of namespaced attributes. Closes #10987. [Samuel Lebeau, Tobie Langel]
    • Make Element#absolutize and Element#relativize always return element. Closes #10983. [kangax]
    • Add deprecation extension. [Tobie Langel]
    October 1st, 2008 @ 05:29 PM
  16. sean #

    such a wonderful job! thank you guys!

    October 1st, 2008 @ 10:35 PM
  17. Leif Högberg #

    Thanks for the changelog. Nice release!

    October 2nd, 2008 @ 02:46 AM
  18. Brian #

    I aggree it’s a relief to see something going on with Prototype. I’m back from the AjaxExperience conference, where I was expecting a lot from the Prototype team, and I was quite disapointed. Noy only it’s scaring to see 18 months with barely nothing new in the library, but I have been given absolutely nothing about the future of Prototype at the conference. Nothing… A lot about how to contribute, and I understand it’s necessary, but… A lot of people and I were expecting answers to “where is Prototype going ?” or “What will be Prototype 2 ?”, and I am quite frustrated today to come back from Boston with nothing.

    Prototype is great library, and I don’t intend to switch to another, but be careful to the message you send to your community.

    October 2nd, 2008 @ 11:02 AM
  19. whiteShadow #

    I just came back from the Ajax Experience conf. and after seeing the poor community support, and how few people attended the Prototype Dev Day (especially in comparison to jQuery and Dojo which were both packed full) I’ve spoken to Christophe and Andrew a little, and decided it is time for us, the Prototype community to start doing something about it. True, I can rant like most of us out there, that development is slow, no changes for over a year and so on… but my philosophy in that respect is “If you come, they will build it!”. Prototype is hardly supported financially nor backed up by any huge organization and yet it is the best framework out there period. And at this stage, if we would like to see it grow and expand, it is time that we, it’s users, coders, developers start to .invoke our talents and Extend our support and really show that we mean business. I’ve started charting out a few projects to support this effort, and would love to hear from anyone interested (in any way/form) to support. The Prototype Challenge is on, and your really vote matters!

    October 2nd, 2008 @ 12:33 PM
  20. Joran #

    Viva los Prototype. Absolutely jaw-dropping fucking amazing library. jQuery is good and John Resig’s processing.js looks fantastic and John is no doubt talented but jQuery certainly does not display the same level of texture and data structure awareness and sensitivity to semantics that Prototype does. Sam was an absolute monster to have written something so elegant as Prototype. It’s like the lunar lander or something.

    October 2nd, 2008 @ 02:51 PM
  21. Grant Hutchins #

    Is there a definitive place to download the latest update helper javascript?

    October 2nd, 2008 @ 03:43 PM
  22. Tobie Langel #

    @Grant: as there are no API changes in such a minor update, you can use the 1.6 update helper to update from version < 1.6.

    @whiteShadow: Thanks for your comment. Help is appreciated and much needed. I’d love to have more interviews and blog posts published on theis blog, see more activity on irc or in the mailing lists, etc. If you need any help of have suggestions you want to share, please feel free to start a thread in our mailing list.

    October 2nd, 2008 @ 05:03 PM
  23. JeromeLapointe #

    I have to agree with Mark B Hopefully this conference in Boston will be the jolt that shocks us back in shape. Hopefully Scripty2 shines a little more light. We need people contributing to ajaxian.com

    I’m hoping to see integration for sizzle.js (and/or equivalent native performance) for those of us that rely heavilly on selectors.

    October 3rd, 2008 @ 02:42 PM
  24. davarciforum #

    Thanks for the changelog. Nice release!

    October 5th, 2008 @ 02:32 AM
  25. Jeff Kreska #

    As always, another excellent release.

    Just wondering why there is a document.write on line 4125, it barfs up my deferred loading of the file in IE (I load all of my JavaScript after the document has been closed by inserting the script tags into the head section). I just comment out the document.write and all is well.

    October 6th, 2008 @ 04:52 PM
  26. Nathan #

    I’m going to be working on integrating Prototype and ASP.NET together (I know, some of you are cringing) and it’s good that there is some life still left in Prototype, especially with the recent news of ASP.NET integrating jQuery with the new update of Visual Studio. I was getting worried you guys might not come back.

    Some suggestions. Like some people said before, link up to some affiliates and partners, such as script.aculo.us and scripteka. Not only will it boost your SEO rankings to get you more popular, but it will make it a one-stop shop for people looking to see the power of Prototype.

    October 6th, 2008 @ 07:08 PM
  27. Ole Thorsen #

    I had been waiting for this. And as everybody else says, I were seriously thinking about other frameworks. You guys are the best! Keep on… A tip: In firefox 3, you can’t longer do like this…..

    var elemArray = document.getElementsByClassName(‘elem’); elemArray.each(function(elem) {

    }); The problem is that each does not work as an iterator for getElementsbyClassname();

    Best regards from Norway

    October 9th, 2008 @ 06:43 AM
  28. Matt Grdinic #

    Nice release, particularity with regard to Google Chrome. A MAJOR part of my new app didn’t work at all with 1.6.0.2, and now it does. Well done!

    That said, as far as other libraries, Zend Studio for PHP now comes with built in Dojo support, and yes, the ‘in crowd’ appeal of these other libraries is hard to resist.

    But for me it’s all about results, and in that regard Prototype simply can’t be beat for it’s ease of use and feature set (including the lovely template engine, god bless it!)

    I took a hard look at all the libraries out there when I started my project, and while there seemed to be more trinkets and gadgets with some of the other libraries, none of them gave me what I wanted, which was a simple to learn and easy to use framework that empowered me to create my dream app.

    In short, all that other crap can get in the way if you ask me.

    October 12th, 2008 @ 02:29 AM
  29. dan #

    who is this error?

    firebug -> dom:

    Error: “throw $continue” is deprecated, use “return” instead

    dan.

    October 22nd, 2008 @ 02:29 PM
  30. Tobie Langel #

    @dan: Please seek help from the mailing list. Thank you.

    October 22nd, 2008 @ 02:46 PM

Sorry, comments are closed for this article.

Search Blog


Search the prototype blog.

Subscribe to the blog

Akismet badge