Ticket #7421: hash.diff
| File hash.diff, 3.2 kB (added by Tobie, 2 years ago) |
|---|
-
src/hash.js
old new 5 5 Object.extend(Hash, { 6 6 toQueryString: function(obj) { 7 7 var parts = []; 8 9 this.prototype._each.call(obj, function(pair) {8 9 this.prototype._each.call(obj, function(pair) { 10 10 if (!pair.key) return; 11 11 12 12 if (pair.value && pair.value.constructor == Array) { 13 13 var values = pair.value.compact(); 14 14 if (values.length < 2) pair.value = values.reduce(); 15 15 else { 16 key = encodeURIComponent(pair.key);16 key = encodeURIComponent(pair.key); 17 17 values.each(function(value) { 18 value = value != undefined ? encodeURIComponent(value): '';18 value = value != undefined ? value : ''; 19 19 parts.push(key + '=' + encodeURIComponent(value)); 20 20 }); 21 21 return; … … 23 23 } 24 24 if (pair.value == undefined) pair[1] = ''; 25 25 parts.push(pair.map(encodeURIComponent).join('=')); 26 });27 26 }); 27 28 28 return parts.join('&'); 29 29 } 30 30 }); … … 32 32 Object.extend(Hash.prototype, Enumerable); 33 33 Object.extend(Hash.prototype, { 34 34 _each: function(iterator) { 35 var cache = []; 35 36 for (var key in this) { 36 37 var value = this[key]; 37 38 if (value && value == Hash.prototype[key]) continue; 38 39 if (Prototype.BrowserBugs.ForInLoopEnumeratesShadowedProperties) { 40 if(cache.include(key)) continue; 41 cache.push(key); 42 } 39 43 var pair = [key, value]; 40 44 pair.key = key; 41 45 pair.value = value; -
src/prototype.js
old new 9 9 (document.createElement('div').__proto__ !== 10 10 document.createElement('form').__proto__) 11 11 }, 12 12 BrowserBugs: { 13 ForInLoopEnumeratesShadowedProperties :function(){ 14 var TestObject = function(value) { 15 this.key = value; 16 }; 17 TestObject.prototype.key = 'foo'; 18 var instance = new TestObject('bar'); 19 var i = 0; 20 for (var property in instance) i++; 21 return (i != 1); 22 }() 23 }, 13 24 ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)', 14 25 emptyFunction: function() {}, 15 26 K: function(x) { return x } -
test/unit/hash.html
old new 104 104 assertEqual("color=", $H(Fixtures.multiple_all_nil).toQueryString()) 105 105 assertEqual("color=", $H(Fixtures.multiple_empty).toQueryString()) 106 106 107 assertEqual("_each=E&map=M&keys=K&values=V&collect=C&inject=I", Hash.toQueryString(Fixtures.dangerous)) 107 assertEnumEqual($w("_each=E map=M keys=K values=V collect=C inject=I").sort(), 108 Hash.toQueryString(Fixtures.dangerous).split('&').sort()); 109 assertEnumEqual($w('_each=E map=M keys=K values=V collect=C inject=I').sort(), 110 $H(Fixtures.dangerous).toQueryString().split('&').sort()); 108 111 }}, 109 112 110 113 testInspect: function(){ with(this) {