| add(Node, CodeGenerator.Context) |   | 37% |   | 32% | 236 | 299 | 448 | 704 | 0 | 1 |
| processEnd(Node, CodeGenerator.Context) |  | 0% |  | 0% | 17 | 17 | 21 | 21 | 1 | 1 |
| strEscape(String, String, String, String, String, boolean, boolean) |   | 71% |   | 58% | 18 | 39 | 13 | 52 | 0 | 1 |
| addArrowFunction(Node, Node, Node, CodeGenerator.Context) |  | 0% |  | 0% | 6 | 6 | 17 | 17 | 1 | 1 |
| addNonEmptyStatement(Node, CodeGenerator.Context, boolean) |   | 49% |   | 54% | 8 | 12 | 9 | 25 | 0 | 1 |
| CodeGenerator(CodeConsumer, CompilerOptions) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| addStringKey(Node) |   | 50% |   | 29% | 12 | 13 | 9 | 22 | 0 | 1 |
| arrowFunctionNeedsParens(Node) |  | 0% |  | 0% | 10 | 10 | 12 | 12 | 1 | 1 |
| isSimpleNumber(String) |  | 0% |  | 0% | 7 | 7 | 8 | 8 | 1 | 1 |
| identifierEscape(String) |  | 13% |  | 12% | 4 | 5 | 7 | 9 | 0 | 1 |
| addObjectPattern(Node) |  | 0% | | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| addFunction(Node, Node, Node, CodeGenerator.Context) |  | 65% |   | 42% | 7 | 8 | 5 | 17 | 0 | 1 |
| maybeAddAccessibilityModifier(Node) | | 0% | | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| regexpEscape(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSimpleNumber(String) | | 0% | | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| addCaseBody(Node) | | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| isFirstChild(Node) | | 0% | | 0% | 3 | 3 | 2 | 2 | 1 | 1 |
| maybeAddTypeDecl(Node) | | 28% | | 50% | 1 | 2 | 3 | 5 | 0 | 1 |
| isBlockDeclOrDo(Node) |  | 72% |  | 62% | 3 | 5 | 3 | 10 | 0 | 1 |
| tagAsStrict() | | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| addList(Node, String) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| opRequiresParentheses(Node, int, CodeGenerator.Context) |  | 83% |  | 78% | 3 | 8 | 3 | 7 | 0 | 1 |
| isFirstOperandOfExponentiationExpression(Node) | | 64% | | 33% | 3 | 4 | 0 | 2 | 0 | 1 |
| isIndirectEval(Node) | | 62% | | 50% | 2 | 4 | 0 | 1 | 0 | 1 |
| precedence(Node) | | 58% | | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| jsString(String, boolean) |  | 93% |  | 72% | 2 | 7 | 0 | 14 | 0 | 1 |
| isObjectLitOrCastOfObjectLit(Node) | | 71% | | 50% | 2 | 4 | 0 | 1 | 0 | 1 |
| tagAsTypeSummary() | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| tagAsExterns() | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| addArrayList(Node) |  | 90% |  | 83% | 1 | 4 | 1 | 9 | 0 | 1 |
| getFirstNonEmptyChild(Node) |  | 88% |  | 75% | 2 | 5 | 1 | 8 | 0 | 1 |
| maybeAddGenericTypes(Node) | | 72% | | 50% | 1 | 2 | 1 | 4 | 0 | 1 |
| maybeAddOptional(Node) | | 62% | | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| getContextForNonEmptyExpression(CodeGenerator.Context) | | 71% | | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| getContextForNoInOperator(CodeGenerator.Context) | | 71% | | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| addList(Node, boolean, CodeGenerator.Context, String) |  | 97% |  | 90% | 1 | 6 | 0 | 8 | 0 | 1 |
| addJsString(Node) |  | 100% | | 75% | 1 | 3 | 0 | 10 | 0 | 1 |
| unrollBinaryOperator(Node, Token, String, CodeGenerator.Context, CodeGenerator.Context, int, int) |  | 100% | | 100% | 0 | 3 | 0 | 10 | 0 | 1 |
| CodeGenerator(CodeConsumer) |  | 100% | | n/a | 0 | 1 | 0 | 11 | 0 | 1 |
| getNonEmptyChildCount(Node, int) |  | 100% |  | 100% | 0 | 5 | 0 | 8 | 0 | 1 |
| addExpr(Node, int, CodeGenerator.Context) | | 100% | | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| addAllSiblings(Node) | | 100% | | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| addList(Node) | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| addIdentifier(String) | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| forCostEstimation(CodeConsumer) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| add(String) | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| add(Node) | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |