using System;
using Jint.Native;
using Jint.Native.Function;
namespace Jint.Runtime.Interop
{
///
/// Wraps a Clr method into a FunctionInstance
///
public sealed class ClrFunctionInstance : FunctionInstance
{
private readonly Engine _engine;
private readonly Func _func;
public ClrFunctionInstance(Engine engine, Func func)
: base(engine, null, null, null, false)
{
_engine = engine;
_func = func;
}
public override object Call(object thisObject, object[] arguments)
{
var result = _func((TObject) thisObject, arguments);
return new Completion(Completion.Normal, result, null);
}
}
}