Browse Source

Merge pull request #132 from postromantic/master

bugfix: be able to pass single number as params array
Sébastien Ros 10 years ago
parent
commit
a382fac242

+ 1 - 0
Jint.Tests/Runtime/InteropTests.cs

@@ -1060,6 +1060,7 @@ namespace Jint.Tests.Runtime
             RunTest(@"
             RunTest(@"
                 assert(a.Call13('1','2','3') === '1,2,3');
                 assert(a.Call13('1','2','3') === '1,2,3');
                 assert(a.Call13('1') === '1');
                 assert(a.Call13('1') === '1');
+                assert(a.Call13(1) === '1');
                 assert(a.Call13() === '');
                 assert(a.Call13() === '');
 
 
                 assert(a.Call14('a','1','2','3') === 'a:1,2,3');
                 assert(a.Call14('a','1','2','3') === 'a:1,2,3');

+ 4 - 2
Jint/Runtime/Interop/MethodInfoFunctionInstance.cs

@@ -91,8 +91,10 @@ namespace Jint.Runtime.Interop
                 if (argsToTransform.Count == 1 && argsToTransform.FirstOrDefault().IsArray())
                 if (argsToTransform.Count == 1 && argsToTransform.FirstOrDefault().IsArray())
                     continue;
                     continue;
 
 
-                var arrayInstance = ArrayConstructor.CreateArrayConstructor(Engine).Construct(argsToTransform.ToArray());
-                newArgumentsCollection.Add(new JsValue(arrayInstance));
+                var jsArray = Engine.Array.Construct(Arguments.Empty);
+                Engine.Array.PrototypeObject.Push(jsArray, argsToTransform.ToArray());
+
+                newArgumentsCollection.Add(new JsValue(jsArray));
                 return newArgumentsCollection.ToArray();
                 return newArgumentsCollection.ToArray();
             }
             }