From 187a1dbfb7e085ccd68932e6619e07d8bf3d383a Mon Sep 17 00:00:00 2001 From: Wojciech Grabias Date: Fri, 11 May 2018 12:15:50 +0200 Subject: [PATCH] Support function() eq value filters --- src/expressions.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/expressions.ts b/src/expressions.ts index 4a2e6c7..69c8291 100644 --- a/src/expressions.ts +++ b/src/expressions.ts @@ -48,7 +48,10 @@ export namespace Expressions { if (!token) return; let commonMoreExpr = undefined; - if (token.type === Lexer.TokenType.CommonExpression) { + if ( + token.type === Lexer.TokenType.CommonExpression || + token.type === Lexer.TokenType.MethodCallExpression + ) { commonMoreExpr = eqExpr(value, token.next) || neExpr(value, token.next) || ltExpr(value, token.next) || @@ -58,10 +61,18 @@ export namespace Expressions { hasExpr(value, token.next); if (commonMoreExpr) { - token.value = { - left: token.value, - right: commonMoreExpr.value - }; + if (token.type === Lexer.TokenType.CommonExpression) { + token.value = { + left: token.value, + right: commonMoreExpr.value + }; + } else if (token.type === Lexer.TokenType.MethodCallExpression) { + token.value = { + left: Lexer.clone(token), + right: commonMoreExpr.value + }; + } + token.next = commonMoreExpr.value.next; token.type = commonMoreExpr.type; token.raw = Utils.stringify(value, token.position, token.next);