| executeAssign(JexlNode, JexlOperator, Object) |   | 88% |   | 84% | 13 | 47 | 12 | 116 | 0 | 1 |
| processAnnotation(ASTAnnotatedStatement, int, Object) |   | 72% |   | 75% | 3 | 9 | 5 | 30 | 0 | 1 |
| forLoop(ASTForeachStatement, Object) |   | 84% |   | 66% | 12 | 19 | 8 | 43 | 0 | 1 |
| visit(ASTMethodNode, Object, Object) |   | 68% |   | 57% | 4 | 8 | 6 | 22 | 0 | 1 |
| call(JexlNode, Object, Object, ASTArguments) |   | 93% |   | 89% | 7 | 39 | 5 | 88 | 0 | 1 |
| visit(ASTTryStatement, Object) |   | 83% |   | 72% | 4 | 10 | 4 | 42 | 0 | 1 |
| evalCatch(ASTReference, JexlNode, JexlException, Object) |   | 77% |   | 50% | 9 | 11 | 2 | 16 | 0 | 1 |
| visit(ASTConstructorNode, Object) |   | 88% |   | 80% | 6 | 16 | 6 | 42 | 0 | 1 |
| forIterator(ASTForeachStatement, Object) |   | 90% |   | 92% | 3 | 21 | 3 | 45 | 0 | 1 |
| visit(ASTAnnotation, Object) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| visit(ASTRangeNode, Object) |   | 62% | | n/a | 0 | 1 | 2 | 5 | 0 | 1 |
| interpret(JexlNode) |   | 94% |   | 88% | 2 | 14 | 2 | 46 | 0 | 1 |
| visit(ASTIfStatement, Object) |   | 84% |  | 100% | 0 | 4 | 2 | 13 | 0 | 1 |
| visit(ASTNotNode, Object) |   | 72% |   | 50% | 1 | 2 | 2 | 5 | 0 | 1 |
| visit(ASTNumberLiteral, Object) |   | 33% |   | 25% | 2 | 3 | 1 | 3 | 0 | 1 |
| visit(ASTNESNode, Object) |   | 86% |   | 50% | 2 | 4 | 1 | 8 | 0 | 1 |
| visit(ASTTernaryNode, Object) |   | 84% |   | 83% | 1 | 7 | 4 | 13 | 0 | 1 |
| visit(ASTArrayAccess, Object) |   | 83% |   | 83% | 1 | 4 | 1 | 12 | 0 | 1 |
| visit(ASTBitwiseComplNode, Object) |   | 78% |  | 100% | 0 | 2 | 2 | 5 | 0 | 1 |
| visit(ASTIdentifier, Object) |   | 65% |   | 50% | 1 | 2 | 1 | 4 | 0 | 1 |
| visit(ASTStringLiteral, Object) |   | 41% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| visit(ASTVar, Object) |   | 84% |   | 62% | 3 | 5 | 1 | 8 | 0 | 1 |
| visit(ASTReference, Object) |  | 98% |   | 90% | 6 | 33 | 3 | 78 | 0 | 1 |
| visit(ASTEmptyFunction, Object) |  | 76% | | n/a | 0 | 1 | 2 | 4 | 0 | 1 |
| visit(ASTSizeFunction, Object) |  | 76% | | n/a | 0 | 1 | 2 | 4 | 0 | 1 |
| visit(ASTSwitchStatement, Object) |  | 95% |   | 87% | 1 | 5 | 2 | 16 | 0 | 1 |
| visit(ASTModNode, Object) |  | 95% |   | 75% | 1 | 3 | 1 | 8 | 0 | 1 |
| visit(ASTDoWhileStatement, Object) |  | 92% |  | 100% | 0 | 3 | 3 | 12 | 0 | 1 |
| visit(ASTTryResources, Object) |  | 97% |   | 75% | 2 | 5 | 1 | 16 | 0 | 1 |
| visit(ASTDivNode, Object) |  | 96% |   | 75% | 1 | 3 | 0 | 8 | 0 | 1 |
| visit(ASTEQSNode, Object) |  | 96% |   | 50% | 1 | 2 | 0 | 6 | 0 | 1 |
| runClosure(Closure) |  | 95% |   | 75% | 1 | 3 | 1 | 10 | 0 | 1 |
| evalJxltHandle(JexlNode) |  | 94% |   | 75% | 2 | 5 | 1 | 10 | 0 | 1 |
| visit(ASTSwitchExpression, Object) |  | 94% |   | 75% | 1 | 3 | 1 | 7 | 0 | 1 |
| visit(ASTWhileStatement, Object) |  | 94% |  | 100% | 0 | 3 | 1 | 11 | 0 | 1 |
| isInstance(Object, Object) |  | 93% |   | 70% | 3 | 6 | 1 | 6 | 0 | 1 |
| visit(ASTNullpNode, Object) |  | 92% |   | 75% | 1 | 3 | 1 | 7 | 0 | 1 |
| resolveClassName(String) |  | 92% |   | 66% | 2 | 4 | 1 | 9 | 0 | 1 |
| testPredicate(JexlNode, Object) |  | 90% |   | 50% | 1 | 2 | 0 | 2 | 0 | 1 |
| visit(ASTExtendedLiteral, Object) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| evalIdentifier(ASTIdentifierAccess) |  | 97% |   | 83% | 1 | 4 | 1 | 11 | 0 | 1 |
| visit(ASTNotInstanceOf, Object) |  | 95% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| Interpreter(Interpreter, JexlArithmetic) |  | 95% |   | 50% | 1 | 2 | 0 | 4 | 0 | 1 |
| visit(ASTJexlScript, Object) |  | 100% |  | 100% | 0 | 5 | 0 | 19 | 0 | 1 |
| visit(ASTUnaryMinusNode, Object) |  | 100% |   | 90% | 1 | 6 | 0 | 16 | 0 | 1 |
| visit(ASTNENode, Object) |  | 100% |  | 100% | 0 | 4 | 0 | 8 | 0 | 1 |
| visit(ASTUnaryPlusNode, Object) |  | 100% |   | 80% | 2 | 6 | 0 | 15 | 0 | 1 |
| visit(ASTEQNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTGENode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| visit(ASTGTNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| visit(ASTLENode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| visit(ASTLTNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| visit(ASTAddNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTBitwiseAndNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTBitwiseOrNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTBitwiseXorNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTMulNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTShiftLeftNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTShiftRightNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTShiftRightUnsignedNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTSubNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| shortCircuit(boolean, JexlNode, Object) |  | 100% |  | 100% | 0 | 4 | 0 | 12 | 0 | 1 |
| visit(ASTArrayLiteral, Object) |  | 100% |  | 100% | 0 | 3 | 0 | 11 | 0 | 1 |
| visit(ASTMapLiteral, Object) |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| visit(ASTReturnStatement, Object) |  | 100% |   | 83% | 1 | 4 | 0 | 9 | 0 | 1 |
| visit(ASTSetLiteral, Object) |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| visit(ASTBlock, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTFunctionNode, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| visit(ASTMapEntry, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visit(ASTArguments, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| visitBlock(ASTBlock, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| visit(ASTERNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visit(ASTEWNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visit(ASTNEWNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visit(ASTNRNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visit(ASTNSWNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visit(ASTSWNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visit(ASTCaseStatement, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| visit(ASTDefineVars, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| visit(ASTInstanceOf, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visitLexicalNode(JexlNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| processAnnotation(String, Object[], Callable) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| visit(ASTIdentifierAccess, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| visit(ASTForeachStatement, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| visit(ASTThrowStatement, Object) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| Interpreter(Engine, JexlOptions, JexlContext, Frame) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| putThreadInterpreter(Interpreter) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| visit(ASTCaseExpression, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTReferenceExpression, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$executeAssign$3(Object, Object, JexlNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTAndNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTOrNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTAnnotatedStatement, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTAssignment, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTDecrementGetNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTGetDecrementNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTGetIncrementNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTIncrementGetNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTMethodNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetAddNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetAndNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetDivNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetModNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetMultNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetOrNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetShiftLeftNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetShiftRightNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetShiftRightUnsignedNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetSubNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTSetXorNode, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$executeAssign$2(JexlNode, String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$executeAssign$1(JexlNode, String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$executeAssign$0(int, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTBreak, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTContinue, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTQualifiedIdentifier, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTJxltLiteral, Object) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTRegexLiteral, Object) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTFalseNode, Object) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTNullLiteral, Object) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| visit(ASTTrueNode, Object) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |