expr
expr copied to clipboard
Expression language and expression evaluation for Go
OSS-Fuzz has found a bug in this project. Please see https://oss-fuzz.com/testcase?key=5812009696559104 for details and reproducers. This issue is mirrored from https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=417866806 and will auto-close if the status changes there. If...
Amazing how expr has cloned a lot of external built-ins. We're very close to this doing native filtering with else if conditional branching.
Greetings. I've a question - does `expr` support having proxies as `expr.Env` (something similar to [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) feature in JS)? I have a situation where I've to deal with a chain...
When using the `expr.WithContext` option, the named variable must also be provided at compilation time using `expr.Env`, otherwise the patch seems to fail to correctly update calls to functions that...
This issue is split from [#744](https://github.com/expr-lang/expr/issues/744#issuecomment-2707538786). expr is not able to handle types derived from base types, which provide methods, see https://github.com/expr-lang/expr/issues/744#issuecomment-2574798824 for more details. Example: ```golang type say string...
please run the example code below: ```go package main import ( "fmt" "github.com/expr-lang/expr" ) func main() { env := map[string]any{} tests := []struct{ code string }{ {`key == "str"`}, //...
Its hard to test out programs that rely on time for example: ``` now().Sub(StartTime) >= 40*duration("24h") ``` Would it be possible to allow a testing option for `now()` to give...
Currently, [Optional chaining](https://expr-lang.org/docs/language-definition#optional-chaining) on Object fields work well: ```js MyObj?.Field1 ?? "default" ``` However, one cannot make an optional call to a method on an object: ```js // this panics...
Hey! When using `reflect.Method()` or `reflect.MethodByName()` with a non-constant argument, dead code elimination is disabled for public functions. This makes the final binary bigger than it should. See for example...