Browse Source

Properly compile Lambdas when the target method is looking for a Delegate

Peter Hartmann 9 years ago
parent
commit
90bc42ec19
1 changed files with 3 additions and 3 deletions
  1. 3 3
      Jint/Runtime/Interop/DefaultTypeConverter.cs

+ 3 - 3
Jint/Runtime/Interop/DefaultTypeConverter.cs

@@ -95,7 +95,7 @@ namespace Jint.Runtime.Interop
                                                     @vars),
                                                 jsValueToObject), Expression.Empty());
 
-                        return Expression.Lambda(callExpresion, new ReadOnlyCollection<ParameterExpression>(@params));
+                        return Expression.Lambda(callExpresion, new ReadOnlyCollection<ParameterExpression>(@params)).Compile();
                     }
                     else if (genericType.Name.StartsWith("Func"))
                     {
@@ -133,7 +133,7 @@ namespace Jint.Runtime.Interop
                                                         ),                            
                                                     returnType);
 
-                        return Expression.Lambda(callExpresion, new ReadOnlyCollection<ParameterExpression>(@params));
+                        return Expression.Lambda(callExpresion, new ReadOnlyCollection<ParameterExpression>(@params)).Compile();
                     }
                 }
                 else
@@ -165,7 +165,7 @@ namespace Jint.Runtime.Interop
 
                         var dynamicExpression = Expression.Invoke(Expression.Lambda(callExpression, new ReadOnlyCollection<ParameterExpression>(@params)), new ReadOnlyCollection<ParameterExpression>(@params));
 
-                        return Expression.Lambda(type, dynamicExpression, new ReadOnlyCollection<ParameterExpression>(@params));
+                        return Expression.Lambda(type, dynamicExpression, new ReadOnlyCollection<ParameterExpression>(@params)).Compile();
                     }
                 }