| resolveNamespace(String, JexlNode) |   | 83% |   | 88% | 7 | 31 | 6 | 62 | 0 | 1 |
| setAttribute(Object, Object, Object, JexlNode) |   | 78% |   | 82% | 5 | 15 | 6 | 36 | 0 | 1 |
| InterpreterBase(Engine, JexlOptions, JexlContext) |   | 81% |   | 80% | 3 | 11 | 2 | 27 | 0 | 1 |
| getAttribute(Object, Object, JexlNode) |   | 82% |   | 81% | 6 | 17 | 4 | 35 | 0 | 1 |
| callArguments(Object, boolean, Object[]) |   | 43% |   | 25% | 2 | 3 | 3 | 8 | 0 | 1 |
| operatorError(JexlNode, JexlOperator, Throwable) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| stringifyProperty(JexlNode) |   | 61% |   | 60% | 4 | 6 | 4 | 11 | 0 | 1 |
| annotationError(JexlNode, String, Throwable) |   | 43% |   | 25% | 2 | 3 | 3 | 5 | 0 | 1 |
| getVariable(Frame, LexicalScope, ASTIdentifier) |   | 87% |  | 100% | 0 | 17 | 2 | 20 | 0 | 1 |
| unsolvableMethod(JexlNode, String, Object[]) |   | 69% |   | 75% | 1 | 3 | 1 | 5 | 0 | 1 |
| constVariable(JexlNode, String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| findNullOperand(RuntimeException, JexlNode, Object, Object) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| redefinedVariable(JexlNode, String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| unsolvableMethod(JexlNode, String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| closeIfSupported(Object) |   | 78% |  | 100% | 0 | 3 | 2 | 8 | 0 | 1 |
| setContextVariable(JexlNode, String, Object) |   | 90% |   | 87% | 1 | 5 | 1 | 10 | 0 | 1 |
| defineVariable(ASTVar, LexicalFrame) |  | 88% |   | 75% | 1 | 3 | 1 | 6 | 0 | 1 |
| isVariableDefined(Frame, LexicalScope, String) |  | 97% |   | 71% | 4 | 8 | 0 | 7 | 0 | 1 |
| stringifyPropertyValue(JexlNode) |  | 91% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| functionArguments(Object, boolean, Object[]) |  | 100% |  | 100% | 0 | 6 | 0 | 12 | 0 | 1 |
| InterpreterBase(InterpreterBase, JexlArithmetic) |  | 100% | | n/a | 0 | 1 | 0 | 15 | 0 | 1 |
| isTernaryProtected(JexlNode) |  | 100% |   | 91% | 1 | 7 | 0 | 8 | 0 | 1 |
| unsolvableProperty(JexlNode, String, boolean, Throwable) |  | 100% |  | 100% | 0 | 4 | 0 | 5 | 0 | 1 |
| variableError(JexlNode, String, JexlException.VariableIssue) |  | 100% |  | 100% | 0 | 4 | 0 | 5 | 0 | 1 |
| invocationException(JexlNode, String, Throwable) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| lambda$resolveNamespace$0(boolean, JexlMethod, Object, JexlContext) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| closeIfSupported(Queue) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| findNullOperand(JexlNode, Object, Object) |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| functionArgument(boolean, Object) |  | 100% |   | 75% | 1 | 3 | 0 | 1 | 0 | 1 |
| isCancelled() |  | 100% |  | 100% | 0 | 3 | 0 | 1 | 0 | 1 |
| unsolvableVariable(JexlNode, String, boolean) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| cancelCheck(JexlNode) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| cancel() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isStrictOperand(JexlNode) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| undefinedVariable(JexlNode, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isCancellable() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isSafe() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isSilent() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isStrictEngine() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |