Changeset 5449
- Timestamp:
- 11/07/06 17:56:05 (2 years ago)
- Files:
-
- spinoffs/prototype/CHANGELOG (modified) (1 diff)
- spinoffs/prototype/src/array.js (modified) (4 diffs)
- spinoffs/prototype/src/dom.js (modified) (3 diffs)
- spinoffs/prototype/src/enumerable.js (modified) (1 diff)
- spinoffs/prototype/src/event.js (modified) (1 diff)
- spinoffs/prototype/src/form.js (modified) (7 diffs)
- spinoffs/prototype/src/selector.js (modified) (1 diff)
- spinoffs/prototype/src/string.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
spinoffs/prototype/CHANGELOG
r5448 r5449 1 1 *SVN* 2 3 * Pick some low-hanging performance and DRYness fruit. [sam] 4 - Inline length property accesses in for loops 5 - Enumerable-ize for loops where it makes sense 6 - Make better use of Element.Methods and Form.Methods/Form.Element.Methods 2 7 3 8 * A slew of Ajax improvements. Closes #6366. [mislav, sam] spinoffs/prototype/src/array.js
r5294 r5449 5 5 } else { 6 6 var results = []; 7 for (var i = 0 ; i < iterable.length; i++)7 for (var i = 0, length = iterable.length; i < length; i++) 8 8 results.push(iterable[i]); 9 9 return results; … … 18 18 Object.extend(Array.prototype, { 19 19 _each: function(iterator) { 20 for (var i = 0 ; i < this.length; i++)20 for (var i = 0, length = this.length; i < length; i++) 21 21 iterator(this[i]); 22 22 }, … … 56 56 57 57 indexOf: function(object) { 58 for (var i = 0 ; i < this.length; i++)58 for (var i = 0, length = this.length; i < length; i++) 59 59 if (this[i] == object) return i; 60 60 return -1; … … 83 83 } 84 84 }); 85 86 Array.prototype.toArray = Array.prototype.clone; 87 spinoffs/prototype/src/dom.js
r5447 r5449 1 1 function $(element) { 2 2 if (arguments.length > 1) { 3 for (var i = 0, elements = [] ; i < arguments.length; i++)3 for (var i = 0, elements = [], length = arguments.length; i < length; i++) 4 4 elements.push($(arguments[i])); 5 5 return elements; … … 28 28 var children = ($(parentElement) || document.body).getElementsByTagName('*'); 29 29 var elements = [], child; 30 for (var i = 0, len = children.length; i < len; i++) {30 for (var i = 0, length = children.length; i < length; i++) { 31 31 child = children[i]; 32 32 if (child.className.length == 0) continue; … … 547 547 add: function(classNameToAdd) { 548 548 if (this.include(classNameToAdd)) return; 549 this.set( this.toArray().concat(classNameToAdd).join(' '));549 this.set($A(this).concat(classNameToAdd).join(' ')); 550 550 }, 551 551 552 552 remove: function(classNameToRemove) { 553 553 if (!this.include(classNameToRemove)) return; 554 this.set(this.select(function(className) { 555 return className != classNameToRemove; 556 }).join(' ')); 554 this.set($A(this).without(classNameToRemove).join(' ')); 557 555 }, 558 556 559 557 toString: function() { 560 return this.toArray().join(' ');558 return $A(this).join(' '); 561 559 } 562 560 } spinoffs/prototype/src/enumerable.js
r5193 r5449 52 52 }, 53 53 54 detect: function (iterator) {54 detect: function(iterator) { 55 55 var result; 56 56 this.each(function(value, index) { spinoffs/prototype/src/event.js
r4941 r5449 72 72 unloadCache: function() { 73 73 if (!Event.observers) return; 74 for (var i = 0 ; i < Event.observers.length; i++) {74 for (var i = 0, length = Event.observers.length; i < length; i++) { 75 75 Event.stopObserving.apply(this, Event.observers[i]); 76 76 Event.observers[i][0] = null; spinoffs/prototype/src/form.js
r5354 r5449 3 3 $(form).reset(); 4 4 return form; 5 }, 6 7 serializeElements: function(elements) { 8 return elements.inject([], function(queryComponents, element) { 9 var queryComponent = Form.Element.serialize(element); 10 if (queryComponent) queryComponents.push(queryComponent); 11 return queryComponents; 12 }).join('&'); 5 13 } 6 14 }; … … 8 16 Form.Methods = { 9 17 serialize: function(form) { 10 return this.serializeElements(Form.getElements($(form))); 11 }, 12 13 serializeElements: function(elements) { 14 var queryComponents = new Array(); 15 16 for (var i = 0; i < elements.length; i++) { 17 var queryComponent = Form.Element.serialize(elements[i]); 18 if (queryComponent) 19 queryComponents.push(queryComponent); 20 } 21 22 return queryComponents.join('&'); 23 }, 24 18 return Form.serializeElements($(form).getElements()); 19 }, 20 25 21 getElements: function(form) { 26 return $A($(form).getElementsByTagName('*')).inject([], function(elements, child) { 27 if (Form.Element.Serializers[child.tagName.toLowerCase()]) 28 elements.push(Element.extend(child)); 29 return elements; 30 }); 22 return $A($(form).getElementsByTagName('*')).inject([], 23 function(elements, child) { 24 if (Form.Element.Serializers[child.tagName.toLowerCase()]) 25 elements.push(Element.extend(child)); 26 return elements; 27 } 28 ); 31 29 }, 32 30 … … 39 37 40 38 var matchingInputs = new Array(); 41 for (var i = 0 ; i < inputs.length; i++) {39 for (var i = 0, length = inputs.length; i < length; i++) { 42 40 var input = inputs[i]; 43 41 if ((typeName && input.type != typeName) || 44 42 (name && input.name != name)) 45 43 continue; 46 matchingInputs.push( input);44 matchingInputs.push(Element.extend(input)); 47 45 } 48 46 … … 52 50 disable: function(form) { 53 51 form = $(form); 54 var elements = Form.getElements(form); 55 for (var i = 0; i < elements.length; i++) { 56 var element = elements[i]; 52 form.getElements().each(function(element) { 57 53 element.blur(); 58 54 element.disabled = 'true'; 59 } 55 }); 60 56 return form; 61 57 }, … … 63 59 enable: function(form) { 64 60 form = $(form); 65 var elements = Form.getElements(form); 66 for (var i = 0; i < elements.length; i++) { 67 var element = elements[i]; 61 form.getElements().each(function(element) { 68 62 element.disabled = ''; 69 } 63 }); 70 64 return form; 71 65 }, 72 66 73 67 findFirstElement: function(form) { 74 return Form.getElements(form).find(function(element) {68 return $(form).getElements().find(function(element) { 75 69 return element.type != 'hidden' && !element.disabled && 76 70 ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); … … 80 74 focusFirstElement: function(form) { 81 75 form = $(form); 82 Field.activate(Form.findFirstElement(form));76 form.findFirstElement().activate(); 83 77 return form; 84 78 } … … 280 274 281 275 registerFormCallbacks: function() { 282 var elements = Form.getElements(this.element); 283 for (var i = 0; i < elements.length; i++) 284 this.registerCallback(elements[i]); 276 Form.getElements(this.element).each(this.registerCallback.bind(this)); 285 277 }, 286 278 spinoffs/prototype/src/selector.js
r5177 r5449 89 89 90 90 var results = []; 91 for (var i = 0 ; i < scope.length; i++)91 for (var i = 0, length = scope.length; i < length; i++) 92 92 if (this.match(element = scope[i])) 93 93 results.push(Element.extend(element)); spinoffs/prototype/src/string.js
r5448 r5449 99 99 : oStringList[0]; 100 100 101 for (var i = 1, len = oStringList.length; i < len; i++) {101 for (var i = 1, length = oStringList.length; i < length; i++) { 102 102 var s = oStringList[i]; 103 103 camelizedString += s.charAt(0).toUpperCase() + s.substring(1);