Bug #88368
closedInvalid ts constants in symfony expression functions throw no exception in strict syntax mode
0%
Description
If I use a symfony expression condition and try to use a ts constant that does not exist, the condition is never executed.
Example:
[loginUser({$foo.nonExistingProperty})]
// this is never executed
[end]
After debugging in TYPO3\CMS\Core\ExpressionLanguage\Resolver::evalue() I found out, that because the ts constant couldn't be resolved, the expression language still got {$foo.nonExistingProperty} as a parameter and threw a SyntaxError that is silently caught.
Strict syntax mode for typoscript is enabled in the feature toggles and I checked the code AbstractConditionMatcher class. - There is some error handling, that is supposed to throw a InvalidTypoScriptConditionException in "strict mode" for some conditions like [1 in "foo"] or ["bar" in "foo,baz"]. In my example case, where the syntax error is a parameter inside a function like loginUser, the syntax error exception remains silent and the condition is just ignored. So I suppose this is a bug?