jmespath-community / typescript-jmespath

TypeScript implementation of JMESPath
Mozilla Public License 2.0
4 stars 2 forks source link

'foo'[::-1].length(@) should evaluate to `3` #18

Closed springcomp closed 1 year ago

springcomp commented 1 year ago

In most implementations, the rhs of a sub-expression is implemented differently when the lhs is a projection. Due to the shape of the AST, the lhs is actually evaluated on the lhs projection.

However, when slicing a string, the rhs should be treated as a regular sub-expression.

As a result, in most implementations, the following expression does not evaluate correctly:

In some implementations, the result is `"oof" or null.

Please, consider adding a compliance test.