Browse Source

Merge pull request #6 from fredericaltorres/master

Declaration of args in Function must be trimmed
Sébastien Ros 11 years ago
parent
commit
1a123301f7
1 changed files with 13 additions and 2 deletions
  1. 13 2
      Jint/Native/Function/FunctionConstructor.cs

+ 13 - 2
Jint/Native/Function/FunctionConstructor.cs

@@ -45,6 +45,18 @@ namespace Jint.Native.Function
             return Construct(arguments);
             return Construct(arguments);
         }
         }
 
 
+        private string[] ParseArgumentNames(string parameterDeclaration)
+        {
+            string[] values = parameterDeclaration.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
+
+            var newValues = new string[values.Length];
+            for (var i = 0; i < values.Length; i++)
+            {
+                newValues[i] = values[i].Trim();
+            }
+            return newValues;
+        }
+
         public ObjectInstance Construct(JsValue[] arguments)
         public ObjectInstance Construct(JsValue[] arguments)
         {
         {
             var argCount = arguments.Length;
             var argCount = arguments.Length;
@@ -69,8 +81,7 @@ namespace Jint.Native.Function
             }
             }
             body = TypeConverter.ToString(body);
             body = TypeConverter.ToString(body);
             
             
-            // todo: ensure parsable as parameter list
-            var parameters = p.Split(new [] {','}, StringSplitOptions.RemoveEmptyEntries);
+            var parameters = this.ParseArgumentNames(p);
             var parser = new JavaScriptParser();
             var parser = new JavaScriptParser();
             FunctionExpression function;
             FunctionExpression function;
             try
             try