Going Backward Slowly
Have a look at the Windows Script Control, it's a bit clunky and documentation is scarce but it's reasonably easy to figure out. The version I used didn’t support full JavaScript (at least not 1.2); only Jscript - but perhaps this has been improved in later versions.
Download Windows Script Control
Simple tutorial
Try this:
public class Evaluator { public static int EvalToInteger(string statement) { string s = EvalToString(statement); return int.Parse(s.ToString()); } public static double EvalToDouble(string statement) { string s = EvalToString(statement); return double.Parse(s); } public static string EvalToString(string statement) { object o = EvalToObject(statement); return o.ToString(); } public static bool EvalToBool(string statement) { object o = EvalToObject(statement); return bool.Parse(o.ToString()); } public static object EvalToObject(string statement) { return _evaluatorType.InvokeMember( "Eval", BindingFlags.InvokeMethod, null, _evaluator, new object[] { statement } ); } static Evaluator() { ICodeCompiler compiler; compiler = new JScriptCodeProvider().CreateCompiler(); CompilerParameters parameters; parameters = new CompilerParameters(); parameters.GenerateInMemory = true; CompilerResults results; results = compiler.CompileAssemblyFromSource(parameters, _jscriptSource); Assembly assembly = results.CompiledAssembly; _evaluatorType = assembly.GetType("Evaluator.Evaluator"); _evaluator = Activator.CreateInstance(_evaluatorType); } private static object _evaluator = null; private static Type _evaluatorType = null; private static readonly string _jscriptSource = @"package Evaluator { class Evaluator { public function Eval(expr : String) : String { return eval(expr); } } }"; }