1. Declaration with value assignment
2. Declare loop variables and cache length inside of for() - this can 
increase performance <http://jsperf.com/caching-array-length/67> - caching 
length outside of for() is slower in almost all results (all Firefox and 
Safari, IE9 and some Chrome results)
3. Unnecessary return values

Example can be rewritten as:
  SelectParser.select_to_array = function(select) {
    var parser = new SelectParser(), _ref = select.childNodes;
    for (var _i = 0, _len = _ref.length; _i < _len; _i++) {
      parser.add_node(_ref[_i]);
    }
    return parser.parsed;
  };

yet another real example: 

CoffeeScript (with use of Prototype):
class Chosen extends AbstractChosen
...  
  no_results_clear: ->
    nr = null
    nr.remove() while nr = @search_results.down(".no-results")

CoffeeScript translated to JavaScript:
    Chosen.prototype.no_results_clear = function() {
      var nr, _results;
      nr = null;
      _results = [];
      while (nr = this.search_results.down(".no-results")) {
        _results.push(nr.remove());
      }
      return _results;
    };

and pure JavaScript:
var Chosen = Class.create(AbstractChosen, {
...
  no_results_clear: function() {
    this.search_results.select(".no-results").invoke("remove");
  },
...
});

-- 
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/prototype-scriptaculous/-/FBTDmhOjgWoJ.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to