| traverseObjectPatternComputedProperty(Node, Scope) |   | 0% |   | 0% | 11 | 11 | 32 | 32 | 1 | 1 | 
| traverseObjectPatternStringKey(Node, Scope) |   | 0% |   | 0% | 11 | 11 | 28 | 28 | 1 | 1 | 
| traverseObjectDefinePropertiesCall(Node, Scope) |   | 0% |   | 0% | 6 | 6 | 18 | 18 | 1 | 1 | 
| traverseClassDeclaration(Node, Scope) |   | 0% |   | 0% | 3 | 3 | 19 | 19 | 1 | 1 | 
| traverseDefaultValue(Node, Scope) |   | 0% |   | 0% | 4 | 4 | 20 | 20 | 1 | 1 | 
| traverseEnhancedFor(Node, Scope) |   | 0% |   | 0% | 5 | 5 | 20 | 20 | 1 | 1 | 
| traverseCall(Node, Scope) |    | 43% |    | 50% | 9 | 14 | 11 | 27 | 0 | 1 | 
| traverseVanillaForNameDeclarations(Node, Scope) |   | 0% |   | 0% | 5 | 5 | 16 | 16 | 1 | 1 | 
| traverseAssign(Node, Scope) |    | 72% |    | 70% | 5 | 13 | 15 | 59 | 0 | 1 | 
| traverseObjectDefinePropertiesLiteral(Node, Scope) |   | 0% |   | 0% | 5 | 5 | 16 | 16 | 1 | 1 | 
| traverseNode(Node, Scope) |    | 73% |    | 62% | 14 | 31 | 17 | 62 | 0 | 1 | 
| traverseArrayPattern(Node, Scope) |   | 0% |   | 0% | 5 | 5 | 10 | 10 | 1 | 1 | 
| traverseClassMembers(Node, Scope) |   | 0% |   | 0% | 5 | 5 | 11 | 11 | 1 | 1 | 
| maybeRemoveUnusedTrailingParameters(Node, Scope) |   | 0% |   | 0% | 8 | 8 | 18 | 18 | 1 | 1 | 
| traverseIncrementOrDecrementOp(Node, Scope) |    | 54% |    | 62% | 4 | 9 | 11 | 26 | 0 | 1 | 
| traverseGetProp(Node, Scope) |    | 49% |    | 50% | 3 | 6 | 11 | 24 | 0 | 1 | 
| traverseVar(Var) |    | 21% |    | 16% | 6 | 7 | 12 | 15 | 0 | 1 | 
| traversePrototypeLiteral(Node, Scope) |   | 0% |   | 0% | 5 | 5 | 12 | 12 | 1 | 1 | 
| markUnusedParameters(Node, Scope) |   | 0% |   | 0% | 7 | 7 | 14 | 14 | 1 | 1 | 
| traverseClassExpression(Node, Scope) |   | 0% |   | 0% | 2 | 2 | 11 | 11 | 1 | 1 | 
| traverseRest(Node, Scope) |   | 0% |   | 0% | 4 | 4 | 9 | 9 | 1 | 1 | 
| removeUnreferencedFunctionArgs(Scope) |    | 14% |    | 25% | 2 | 3 | 8 | 10 | 0 | 1 | 
| traverseObjectPattern(Node, Scope) |   | 0% |   | 0% | 3 | 3 | 7 | 7 | 1 | 1 | 
| canRemoveParameters(Node) |   | 0% |   | 0% | 3 | 3 | 3 | 3 | 1 | 1 | 
| traverseClass(Node, Scope) |   | 0% |   | 0% | 2 | 2 | 5 | 5 | 1 | 1 | 
| isIndependentlyRemovable(RemoveUnusedCode.Removable) |    | 50% |    | 25% | 8 | 9 | 0 | 4 | 0 | 1 | 
| removeUnreferencedVars() |    | 85% |    | 55% | 6 | 11 | 1 | 21 | 0 | 1 | 
| isDotPrototypeDotProperty(Node) |   | 0% |   | 0% | 3 | 3 | 1 | 1 | 1 | 1 | 
| getVarInfo(Var) |    | 87% |    | 70% | 6 | 11 | 3 | 19 | 0 | 1 | 
| traverseObjectLiteral(Node, Scope) |    | 64% |    | 50% | 2 | 3 | 2 | 7 | 0 | 1 | 
| removeIndependentlyRemovableProperties() |    | 50% |    | 50% | 1 | 2 | 2 | 4 | 0 | 1 | 
| considerForIndependentRemoval(RemoveUnusedCode.Removable) |    | 82% |    | 75% | 2 | 5 | 1 | 12 | 0 | 1 | 
| markPropertyNameReferenced(String) |    | 68% |    | 75% | 1 | 3 | 2 | 5 | 0 | 1 | 
| isObjectDefinePropertiesSecondArgument(Node) |    | 57% |    | 25% | 2 | 3 | 0 | 2 | 0 | 1 | 
| traverseDeclarationStatement(Node, Scope) |    | 91% |    | 83% | 1 | 4 | 1 | 15 | 0 | 1 | 
| traverseVanillaFor(Node, Scope) |    | 88% |    | 50% | 1 | 2 | 1 | 12 | 0 | 1 | 
| traverseNonPrototypeObjectLiteral(Node, Scope) |    | 85% |    | 75% | 1 | 3 | 1 | 8 | 0 | 1 | 
| traverseFunction(Node, Scope) |   | 97% |    | 62% | 3 | 5 | 0 | 14 | 0 | 1 | 
| isNameDotPrototype(Node) |   | 88% |    | 83% | 1 | 4 | 0 | 3 | 0 | 1 | 
| isDotPrototype(Node) |   | 84% |    | 75% | 1 | 3 | 0 | 1 | 0 | 1 | 
| isAssignmentToPrototype(Node) |   | 81% |    | 75% | 1 | 3 | 0 | 1 | 0 | 1 | 
| removeExpressionCompletely(Node) |   | 97% |    | 87% | 1 | 5 | 0 | 12 | 0 | 1 | 
| isThisDotProperty(Node) |   | 90% |    | 50% | 2 | 3 | 0 | 1 | 0 | 1 | 
| RemoveUnusedCode(RemoveUnusedCode.Builder) |   | 100% |  | n/a | 0 | 1 | 0 | 21 | 0 | 1 | 
| traverseAndRemoveUnusedReferences(Node) |   | 100% |    | 83% | 1 | 4 | 0 | 14 | 0 | 1 | 
| traverseCompoundAssign(Node, Scope) |   | 100% |   | 100% | 0 | 4 | 0 | 13 | 0 | 1 | 
| traverseInstanceof(Node, Scope) |   | 100% |   | 100% | 0 | 2 | 0 | 11 | 0 | 1 | 
| traverseRemovableAssignValue(Node, RemoveUnusedCode.RemovableBuilder, Scope) |   | 100% |   | 100% | 0 | 3 | 0 | 5 | 0 | 1 | 
| process(Node, Node) |   | 100% |    | 50% | 1 | 2 | 0 | 5 | 0 | 1 | 
| traverseCatch(Node, Scope) |   | 100% |  | n/a | 0 | 1 | 0 | 6 | 0 | 1 | 
| isLocalDefaultValueAssignment(Node, Node) |   | 100% |   | 100% | 0 | 5 | 0 | 4 | 0 | 1 | 
| alreadyRemoved(Node) |   | 100% |   | 100% | 0 | 3 | 0 | 6 | 0 | 1 | 
| traverseChildren(Node, Scope) |   | 100% |   | 100% | 0 | 2 | 0 | 3 | 0 | 1 | 
| replaceNodeWith(Node, Node) |   | 100% |  | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 
| getVarForNameNode(Node, Scope) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| traverseNameNode(Node, Scope) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| static {...} |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 |