private static void ExecuteSunSpider() { const string fileName = @"..\..\..\Jint.Tests\SunSpider\Tests\access-fannkuch.js"; var jint = new JintEngine(); #if false jint.ExecuteFile(fileName); Console.WriteLine("Attach"); Console.ReadLine(); jint.ExecuteFile(fileName); #else jint.ExecuteFile(fileName); var times = new TimeSpan[20]; int timeOffset = 0; var lowest = new TimeSpan(); // Perform the iterations. for (int i = 0; ; i++) { long memoryBefore = GC.GetTotalMemory(true); var stopwatch = Stopwatch.StartNew(); jint.ExecuteFile(fileName); var elapsed = stopwatch.Elapsed; long memoryAfter = GC.GetTotalMemory(false); times[timeOffset++] = elapsed; if (timeOffset == times.Length) timeOffset = 0; if (times[times.Length - 1].Ticks != 0) { var average = new TimeSpan(times.Sum(p => p.Ticks) / times.Length); if (lowest.Ticks == 0 || average.Ticks < lowest.Ticks) lowest = average; Console.WriteLine( "This run: {0}, average: {1}, lowest: {2}, memory usage: {3}", elapsed.ToString("s\\.fffff"), average.ToString("s\\.fffff"), lowest.ToString("s\\.fffff"), NiceMemory(memoryAfter - memoryBefore) ); } } #endif }
protected override object RunFile(JintEngine ctx, string fileName) { base.RunFile(ctx, fileName); string suitePath = Path.Combine( Path.GetDirectoryName(fileName), "underscore-suite.js" ); return ctx.ExecuteFile(suitePath); }
public void ShouldNotRunInRun() { var filename = Path.GetTempFileName(); File.WriteAllText(filename, "a='bar'"); var engine = new JintEngine().AddPermission(new FileIOPermission(PermissionState.None)); engine.AllowClr(); engine.SetFunction("load", new Action<string>(p => engine.ExecuteFile(p))); engine.SetFunction("print", new Action<string>(Console.WriteLine)); engine.Execute("var a='foo'; load('" + EscapeStringLiteral(filename) + "'); print(a);"); }
protected override object RunFile(JintEngine ctx, string fileName) { string shellPath = Path.Combine( Path.GetDirectoryName(fileName), "shell.js" ); if (File.Exists(shellPath)) ctx.ExecuteFile(shellPath); return base.RunFile(ctx, fileName); }
public void ShouldRunInRun() { var filename = Path.GetTempFileName(); File.WriteAllText(filename, "a='bar'"); var engine = new JintEngine().AddPermission(new FileIOPermission(PermissionState.Unrestricted)); engine.AllowClr(); // The DLR compiler won't compile with permissions set engine.DisableSecurity(); engine.SetFunction("load", new Action<string>(p => engine.ExecuteFile(p))); engine.SetFunction("print", new Action<string>(Console.WriteLine)); engine.Execute("var a='foo'; load('" + EscapeStringLiteral(filename) + "'); print(a);"); File.Delete(filename); }
private static void ExecuteV8() { const string fileName = @"..\..\..\Jint.Benchmarks\Suites\V8\raytrace.js"; var jint = new JintEngine(); jint.DisableSecurity(); jint.ExecuteFile(@"..\..\..\Jint.Benchmarks\Suites\V8\base.js"); jint.SetFunction( "NotifyResult", new Action<string, string>((name, result) => { }) ); jint.SetFunction( "NotifyError", new Action<string, object>((name, error) => { }) ); string score = null; jint.SetFunction( "NotifyScore", new Action<string>(p => { score = p; }) ); jint.ExecuteFile(fileName); Console.WriteLine("Attach"); Console.ReadLine(); jint.Execute(@" BenchmarkSuite.RunSuites({ NotifyResult: NotifyResult, NotifyError: NotifyError, NotifyScore: NotifyScore, Runs: 1 });"); Console.WriteLine("Score: " + score); }
protected virtual object RunFile(JintEngine ctx, string fileName) { return ctx.ExecuteFile(fileName); }