From 05a1143f34471eaac5666e43dfae4c0fe56728ab Mon Sep 17 00:00:00 2001 From: Andrew Dupont Date: Thu, 26 Jun 2008 14:57:28 -0500 Subject: [PATCH] Make Function#argumentNames use Function.prototype.toString. [#186 state:resolved] --- CHANGELOG | 2 ++ src/base.js | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) 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; },