diff options
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_view/helpers/javascripts/prototype.js | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/actionpack/lib/action_view/helpers/javascripts/prototype.js b/actionpack/lib/action_view/helpers/javascripts/prototype.js index 2cca7502f7..e9ccd3c885 100644 --- a/actionpack/lib/action_view/helpers/javascripts/prototype.js +++ b/actionpack/lib/action_view/helpers/javascripts/prototype.js @@ -1,4 +1,4 @@ -/* Prototype JavaScript framework, version 1.4.0_rc4 +/* Prototype JavaScript framework, version 1.4.0 * (c) 2005 Sam Stephenson <sam@conio.net> * * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff @@ -11,7 +11,7 @@ /*--------------------------------------------------------------------------*/ var Prototype = { - Version: '1.4.0_rc4', + Version: '1.4.0', ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)', emptyFunction: function() {}, @@ -46,10 +46,10 @@ Object.inspect = function(object) { } } -Function.prototype.bind = function(object) { - var __method = this; +Function.prototype.bind = function() { + var __method = this, args = $A(arguments), object = args.shift(); return function() { - return __method.apply(object, arguments); + return __method.apply(object, args.concat($A(arguments))); } } @@ -393,6 +393,7 @@ Object.extend(Enumerable, { entries: Enumerable.toArray }); var $A = Array.from = function(iterable) { + if (!iterable) return []; if (iterable.toArray) { return iterable.toArray(); } else { @@ -456,6 +457,14 @@ Object.extend(Array.prototype, { return (inline !== false ? this : this.toArray())._reverse(); }, + shift: function() { + var result = this[0]; + for (var i = 0; i < this.length - 1; i++) + this[i] = this[i + 1]; + this.length--; + return result; + }, + inspect: function() { return '[' + this.map(Object.inspect).join(', ') + ']'; } @@ -1253,9 +1262,17 @@ Form.Element = { var method = element.tagName.toLowerCase(); var parameter = Form.Element.Serializers[method](element); - if (parameter) - return encodeURIComponent(parameter[0]) + '=' + - encodeURIComponent(parameter[1]); + if (parameter) { + var key = encodeURIComponent(parameter[0]); + if (key.length == 0) return; + + if (parameter[1].constructor != Array) + parameter[1] = [parameter[1]]; + + return parameter[1].map(function(value) { + return key + '=' + encodeURIComponent(value); + }).join('&'); + } }, getValue: function(element) { |