Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
This paste will be private.
Index: /Users/jan/webdev/moodev/mootools/trunk/Effects/Fx.Morph.js =================================================================== --- /Users/jan/webdev/moodev/mootools/trunk/Effects/Fx.Morph.js (revision 800) +++ /Users/jan/webdev/moodev/mootools/trunk/Effects/Fx.Morph.js (working copy) @@ -50,7 +50,7 @@ for (var style in Element.Styles.All){ if (rule.style[style]){ var ruleStyle = rule.style[style]; - to[style] = (style.test(/color/i) && ruleStyle.test(/^rgb/)) ? ruleStyle.rgbToHex() : ruleStyle; + to[style] = (style.test(/color/i) && ruleStyle.test(/^rgb/)) ? ruleStyle.rgbToHex() : ruleStyle; } }; }); @@ -63,10 +63,9 @@ Element.extend({ morph: function(className, options){ - var morph = this.$attributes.morph; - if (!morph) this.$attributes.morph = morph = new Fx.Morph(this, {wait: false}); + var morph = this.$attributes.morph = this.$attributes.morph || new Fx.Morph(this, {wait: false}); if (options) morph.setOptions(options); return morph.start(className); } - + }); \ No newline at end of file Index: /Users/jan/webdev/moodev/mootools/trunk/Element/Element.Event.js =================================================================== --- /Users/jan/webdev/moodev/mootools/trunk/Element/Element.Event.js (revision 800) +++ /Users/jan/webdev/moodev/mootools/trunk/Element/Element.Event.js (working copy) @@ -135,9 +135,8 @@ Example: (start code) Event.Keys.whatever = 80; - $(myelement).addEvent(keydown, function(event){ - event = new Event(event); - if (event.key == 'whatever') console.log(whatever key clicked). + $(myelement).addEvent('keydown', function(event){ + if (event.key == 'whatever') console.log('whatever key clicked'). }); (end) */ Index: /Users/jan/webdev/moodev/mootools/trunk/Element/Element.js =================================================================== --- /Users/jan/webdev/moodev/mootools/trunk/Element/Element.js (revision 800) +++ /Users/jan/webdev/moodev/mootools/trunk/Element/Element.js (working copy) @@ -91,8 +91,8 @@ if (nocheck || !l) return $extend(elements, this); var uniques = {}; var returned = []; - for (var i = 0; i < l; i++){ - var el = $(elements[i]); + while (l--){ + var el = $(elements[l]); if (!el || uniques[el.$attributes.uid]) continue; uniques[el.$attributes.uid] = true; returned.push(el); Index: /Users/jan/webdev/moodev/mootools/trunk/Selectors/Selectors.js =================================================================== --- /Users/jan/webdev/moodev/mootools/trunk/Selectors/Selectors.js (revision 800) +++ /Users/jan/webdev/moodev/mootools/trunk/Selectors/Selectors.js (working copy) @@ -80,7 +80,7 @@ getElementsBySelector: function(selector, nocash){ var elements = []; selector = selector.split(','); - for (var i = 0, j = selector.length; i < j; i++) elements = elements.concat(this.getElements(selector[i], true)); + for (var i = selector.length; i--;) elements = elements.concat(this.getElements(selector[i], true)); return (nocash) ? elements : new Elements(elements); } @@ -98,11 +98,13 @@ getElementById: function(id){ var el = document.getElementById(id); - if (!el) return null; - for (var parent = el.parentNode; parent != this; parent = parent.parentNode){ - if (!parent) return null; + if (el){ + var parent = el; + while (parent = el.parentNode){ + if (parent == this) return el; + } } - return el; + return null; } }); @@ -187,7 +189,7 @@ case '^=': temp += '[starts-with(@' + attribute[1] + ', "' + attribute[3] + '")]'; break; case '$=': temp += '[substring(@' + attribute[1] + ', string-length(@' + attribute[1] + ') - ' + attribute[3].length + ' + 1) = "' + attribute[3] + '"]'; break; case '!=': temp += '[@' + attribute[1] + '!="' + attribute[3] + '"]'; break; - case '~=': temp += '[contains(concat(" ", @' + attribute[1] + ', " "), " ' + attribute[3] + ' ")]'; + case '~=': temp += '[contains(concat(" ", @' + attribute[1] + ', " "), " ' + attribute[3] + ' ")]'; break; case '|=': temp += '[contains(concat("-", @' + attribute[1] + ', "-"), "-' + attribute[3] + '-")]'; } } else { @@ -201,7 +203,7 @@ getItems: function(items, context, nocash){ var elements = []; var xpath = document.evaluate('.//' + items.join(''), context, Selectors.XPath.resolver, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); - for (var i = 0, j = xpath.snapshotLength; i < j; i++) elements[i] = (nocash) ? xpath.snapshotItem(i) : $(xpath.snapshotItem(i)); + for (var i = xpath.snapshotLength; i--;) elements[i] = (nocash) ? xpath.snapshotItem(i) : $(xpath.snapshotItem(i)); return (nocash) ? elements : new Elements(elements, true); }, @@ -231,8 +233,7 @@ items = $A(context.getElementsByTagName(tag)); } } - var i; - for (i = classNames.length; i--; i) items = Elements.filterByClass(items, classNames[i], true); + for (var i = classNames.length; i--; i) items = Elements.filterByClass(items, classNames[i], true); for (i = attributes.length; i--; i){ var attribute = attributes[i]; items = Elements.filterByAttribute(items, attribute[1], attribute[2], attribute[3], true); @@ -262,14 +263,13 @@ getFollowingByTag: function(context, tag, all){ var found = []; - for (var i = 0, j = context.length; i < j; i++){ - var next = context[i].nextSibling; - while (next){ + for (var i = context.length; i--;){ + var next = context[i]; + while (next = next.nextSibling){ if (Selectors.Filter.hasTag(next, tag)){ found.push(next); if (!all) break; } - next = next.nextSibling; } } return found; @@ -277,10 +277,10 @@ getChildrenByTag: function(context, tag){ var found = []; - for (var i = 0, j = context.length; i < j; i++){ + for (var i = context.length; i--;){ var children = context[i].childNodes; - for (var k = 0, l = children.length; k < l; k++){ - if (Selectors.Filter.hasTag(children[k], tag)) found.push(children[k]); + for (var j = children.length; j--;){ + if (Selectors.Filter.hasTag(children[j], tag)) found.push(children[j]); } } return found; @@ -288,7 +288,7 @@ getNestedByTag: function(context, tag){ var found = []; - for (var i = 0, j = context.length; i < j; i++) found.extend(context[i].getElementsByTagName(tag)); + for (var i = context.length; i--;) found.extend(context[i].getElementsByTagName(tag)); return found; }
From the Design Piracy series on my blog: