| 391 | } |
| 392 | |
| 393 | func Benchmark_callFast(b *testing.B) { |
| 394 | program, err := expr.Compile(`FnFast()`, expr.Env(CallEnv{})) |
| 395 | if err != nil { |
| 396 | b.Fatal(err) |
| 397 | } |
| 398 | |
| 399 | env := CallEnv{ |
| 400 | FnFast: func(s ...any) any { |
| 401 | return "fn_fast" |
| 402 | }, |
| 403 | } |
| 404 | |
| 405 | var out any |
| 406 | b.ResetTimer() |
| 407 | for n := 0; n < b.N; n++ { |
| 408 | out, err = vm.Run(program, env) |
| 409 | } |
| 410 | b.StopTimer() |
| 411 | |
| 412 | require.NoError(b, err) |
| 413 | require.Equal(b, "fn_fast", out) |
| 414 | } |
| 415 | |
| 416 | func Benchmark_callConstExpr(b *testing.B) { |
| 417 | program, err := expr.Compile(`Func()`, expr.Env(CallEnv{}), expr.ConstExpr("Func")) |