diff --git a/CHANGELOG b/CHANGELOG index 747b0f165..d96a52c8c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +* Make Function#argumentNames use Function.prototype.toString. [Garrett Smith, jddalton, kangax] + * Rename variable in Form.Element.Serializers.select. [jddalton] * Replace browser sniffing with capability detection in IE fork of String#unescapeHTML. [kangax] diff --git a/src/base.js b/src/base.js index 3b38887f5..73328d387 100644 --- a/src/base.js +++ b/src/base.js @@ -158,9 +158,10 @@ Object.extend(Object, { }); Object.extend(Function.prototype, { - argumentNames: function() { - var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1] - .replace(/\s+/g, '').split(','); + argumentNames: function() { + var names = Function.prototype.toString.call(this) + .match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1] + .replace(/\s+/g, '').split(','); return names.length == 1 && !names[0] ? [] : names; },