| JsToStringGenerationVisitor |  | 0% |  | 0% | 236 | 236 | 677 | 677 | 113 | 113 | 1 | 1 |
| JsProtectedNames |  | 0% |  | 0% | 5 | 5 | 14 | 14 | 3 | 3 | 1 | 1 |
| JsUtils |  | 0% |  | 0% | 110 | 110 | 176 | 176 | 26 | 26 | 1 | 1 |
| JsStaticEval.StaticEvalVisitor |  | 0% |  | 0% | 91 | 91 | 220 | 220 | 19 | 19 | 1 | 1 |
| JsInliner.InliningVisitor |  | 0% |  | 0% | 68 | 68 | 175 | 175 | 14 | 14 | 1 | 1 |
| JsStackEmulator.EntryExitVisitor |  | 0% |  | 0% | 46 | 46 | 139 | 139 | 15 | 15 | 1 | 1 |
| JsInliner |  | 0% |  | 0% | 54 | 54 | 143 | 143 | 14 | 14 | 1 | 1 |
| JsStaticEval |  | 0% |  | 0% | 63 | 63 | 126 | 126 | 13 | 13 | 1 | 1 |
| JsStackEmulator.LocationVisitor |  | 0% |  | 0% | 49 | 49 | 121 | 121 | 24 | 24 | 1 | 1 |
| JsObfuscateNamer |  | 0% |  | 0% | 18 | 18 | 46 | 46 | 9 | 9 | 1 | 1 |
| DuplicateClinitRemover |  | 0% |  | 0% | 42 | 42 | 99 | 99 | 19 | 19 | 1 | 1 |
| JsSafeCloner.Cloner |  | 0% |  | 0% | 35 | 35 | 99 | 99 | 22 | 22 | 1 | 1 |
| JsNamespaceChooser |  | 0% |  | 0% | 38 | 38 | 106 | 106 | 12 | 12 | 1 | 1 |
| JsLiteralInterner.LiteralInterningVisitor |  | 0% |  | 0% | 41 | 41 | 71 | 71 | 15 | 15 | 1 | 1 |
| JsStackEmulator |  | 0% |  | 0% | 26 | 26 | 72 | 72 | 9 | 9 | 1 | 1 |
| JsReportGenerationVisitor |  | 0% |  | 0% | 39 | 39 | 61 | 61 | 7 | 7 | 1 | 1 |
| JsPrecedenceVisitor |  | 0% |  | 0% | 47 | 47 | 73 | 73 | 45 | 45 | 1 | 1 |
| JsLiteralInterner |  | 0% |  | 0% | 19 | 19 | 44 | 44 | 7 | 7 | 1 | 1 |
| CoverageVisitor |  | 0% |  | 0% | 26 | 26 | 62 | 62 | 15 | 15 | 1 | 1 |
| JsParser |   | 89% |   | 82% | 40 | 211 | 40 | 496 | 3 | 59 | 0 | 1 |
| JsIncrementalNamer |  | 0% |  | 0% | 19 | 19 | 44 | 44 | 7 | 7 | 1 | 1 |
| CoverageInstrumentor |  | 0% |  | 0% | 11 | 11 | 41 | 41 | 8 | 8 | 1 | 1 |
| JsInliner.ComplexityEstimator |  | 0% | | n/a | 19 | 19 | 38 | 38 | 19 | 19 | 1 | 1 |
| JsInliner.CommaNormalizer |  | 0% |  | 0% | 24 | 24 | 48 | 48 | 4 | 4 | 1 | 1 |
| EvalFunctionsAtTopScope |  | 0% |  | 0% | 21 | 21 | 48 | 48 | 12 | 12 | 1 | 1 |
| JsInliner.EvaluationOrderVisitor |  | 0% |  | 0% | 27 | 27 | 45 | 45 | 12 | 12 | 1 | 1 |
| JsPrettyNamer |  | 0% |  | 0% | 18 | 18 | 39 | 39 | 7 | 7 | 1 | 1 |
| JsDuplicateFunctionRemover.DuplicateFunctionBodyRecorder |  | 0% |  | 0% | 17 | 17 | 37 | 37 | 9 | 9 | 1 | 1 |
| JsDuplicateCaseFolder.DuplicateCaseFolder |  | 0% |  | 0% | 12 | 12 | 40 | 40 | 4 | 4 | 1 | 1 |
| JsSourceGenerationVisitorWithSizeBreakdown |  | 0% |  | 0% | 15 | 15 | 35 | 35 | 7 | 7 | 1 | 1 |
| JsDuplicateFunctionRemover |  | 0% |  | 0% | 9 | 9 | 30 | 30 | 3 | 3 | 1 | 1 |
| JsNormalizer.JsNormalizing |  | 0% |  | 0% | 21 | 21 | 31 | 31 | 6 | 6 | 1 | 1 |
| JsInliner.NameRefReplacerVisitor |  | 0% |  | 0% | 15 | 15 | 28 | 28 | 6 | 6 | 1 | 1 |
| JsInliner.SingleInvocationVisitor |  | 0% |  | 0% | 16 | 16 | 27 | 27 | 8 | 8 | 1 | 1 |
| JsBreakUpLargeVarStatements |  | 0% |  | 0% | 11 | 11 | 25 | 25 | 5 | 5 | 1 | 1 |
| JsRequiresSemiVisitor |  | 0% |  | 0% | 24 | 24 | 38 | 38 | 18 | 18 | 1 | 1 |
| JsVerboseNamer |  | 0% |  | 0% | 11 | 11 | 27 | 27 | 5 | 5 | 1 | 1 |
| JsDuplicateFunctionRemover.ReplaceDuplicateInvocationNameRefs |  | 0% |  | 0% | 10 | 10 | 17 | 17 | 3 | 3 | 1 | 1 |
| JsFirstExpressionVisitor |  | 0% |  | 0% | 16 | 16 | 30 | 30 | 14 | 14 | 1 | 1 |
| JsLiteralInterner.OccurrenceCounterVisitor |  | 0% |  | 0% | 18 | 18 | 21 | 21 | 13 | 13 | 1 | 1 |
| JsStackEmulator.ReplaceUnobfuscatableNames |  | 0% |  | 0% | 10 | 10 | 20 | 20 | 3 | 3 | 1 | 1 |
| JsInliner.StableNameChecker |  | 0% |  | 0% | 13 | 13 | 21 | 21 | 4 | 4 | 1 | 1 |
| BaselineCoverageGatherer.new JVisitor() {...} |  | 0% |  | 0% | 15 | 15 | 23 | 23 | 8 | 8 | 1 | 1 |
| JsAbstractSymbolResolver |  | 0% |  | 0% | 15 | 15 | 29 | 29 | 12 | 12 | 1 | 1 |
| JsUnusedFunctionRemover |  | 0% | | 0% | 5 | 5 | 17 | 17 | 4 | 4 | 1 | 1 |
| BaselineCoverageGatherer |  | 0% |  | 0% | 7 | 7 | 19 | 19 | 5 | 5 | 1 | 1 |
| JsIncrementalNamer.JsIncrementalNamerState |  | 0% |  | 0% | 7 | 7 | 17 | 17 | 3 | 3 | 1 | 1 |
| JsStaticEval.MustExecVisitor |  | 0% |  | 0% | 9 | 9 | 21 | 21 | 5 | 5 | 1 | 1 |
| JsInliner.InvocationCountingVisitor |  | 0% |  | 0% | 12 | 12 | 20 | 20 | 7 | 7 | 1 | 1 |
| JsConstructExpressionVisitor |  | 0% |  | 0% | 14 | 14 | 25 | 25 | 10 | 10 | 1 | 1 |
| ReservedNames |  | 0% |  | 0% | 7 | 7 | 17 | 17 | 2 | 2 | 1 | 1 |
| CoverageInstrumentor.Instrumentor |  | 0% | | 0% | 3 | 3 | 12 | 12 | 2 | 2 | 1 | 1 |
| JsInliner.RedefinedFunctionCollector |  | 0% |  | 0% | 8 | 8 | 18 | 18 | 4 | 4 | 1 | 1 |
| JsSymbolResolver.JsResolveSymbolsVisitor |  | 0% |  | 0% | 6 | 6 | 15 | 15 | 3 | 3 | 1 | 1 |
| JsInliner.IdentCollector |  | 0% |  | 0% | 12 | 12 | 12 | 12 | 4 | 4 | 1 | 1 |
| JsUtils.TargetType |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| JsInliner.ExtrudedNamesCollector |  | 0% |  | 0% | 7 | 7 | 13 | 13 | 3 | 3 | 1 | 1 |
| JsNamer.new JsVisitor() {...} |  | 0% | | 0% | 10 | 10 | 18 | 18 | 9 | 9 | 1 | 1 |
| JsInliner.AffectedBySideEffectsVisitor |  | 0% |  | 0% | 11 | 11 | 19 | 19 | 7 | 7 | 1 | 1 |
| JsInliner.RecursionCollector |  | 0% |  | 0% | 7 | 7 | 13 | 13 | 5 | 5 | 1 | 1 |
| JsInliner.ParameterUsageVisitor |  | 0% |  | 0% | 9 | 9 | 16 | 16 | 5 | 5 | 1 | 1 |
| JsNamer |  | 0% | | n/a | 3 | 3 | 14 | 14 | 3 | 3 | 1 | 1 |
| JsUtils.InvocationStyle |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| JsStackEmulator.InstrumentAllFunctions |  | 0% |  | 0% | 5 | 5 | 8 | 8 | 2 | 2 | 1 | 1 |
| JsForceInliningChecker.ForceInliningCheckerVisitor |  | 0% |  | 0% | 4 | 4 | 12 | 12 | 2 | 2 | 1 | 1 |
| JsUnusedFunctionRemover.RemovalVisitor |  | 0% |  | 0% | 6 | 6 | 12 | 12 | 2 | 2 | 1 | 1 |
| JsStackEmulator.CatchStackReset |  | 0% | | 0% | 3 | 3 | 11 | 11 | 2 | 2 | 1 | 1 |
| JsStackEmulator.StackMode |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| JsUtils.CallStyle |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| JsInliner.RefersToNameVisitor |  | 0% |  | 0% | 6 | 6 | 8 | 8 | 3 | 3 | 1 | 1 |
| JsNamespaceChooser.NameFixer |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 | 1 | 1 |
| JsNamespaceOption |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 | 1 | 1 |
| JsInliner.EvaluationOrderVisitor.new JsVisitor() {...} |  | 0% | | n/a | 3 | 3 | 5 | 5 | 3 | 3 | 1 | 1 |
| JsSymbolResolver |  | 0% | | n/a | 3 | 3 | 8 | 8 | 3 | 3 | 1 | 1 |
| JsDuplicateCaseFolder |  | 0% | | n/a | 3 | 3 | 6 | 6 | 3 | 3 | 1 | 1 |
| JsForceInliningChecker |  | 0% | | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| JsNormalizer |  | 0% | | n/a | 3 | 3 | 8 | 8 | 3 | 3 | 1 | 1 |
| JsUtils.InvocationDescriptor |  | 0% | | n/a | 1 | 1 | 8 | 8 | 1 | 1 | 1 | 1 |
| JsSourceGenerationVisitor |  | 0% | | n/a | 5 | 5 | 8 | 8 | 5 | 5 | 1 | 1 |
| JsStaticEval.FindBreakContinueStatementsVisitor | | 0% | | n/a | 4 | 4 | 7 | 7 | 4 | 4 | 1 | 1 |
| CoverageInstrumentor.new JsModVisitor() {...} | | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| SizeBreakdown | | 0% | | n/a | 3 | 3 | 6 | 6 | 3 | 3 | 1 | 1 |
| JsSafeCloner | | 0% | | 0% | 2 | 2 | 5 | 5 | 1 | 1 | 1 | 1 |
| JsParser.new ErrorReporter() {...} |  | 63% | | n/a | 1 | 4 | 2 | 6 | 1 | 4 | 0 | 1 |
| JsUnusedFunctionRemover.RescueVisitor | | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| BaselineCoverageGatherer.1.new CoverageVisitor() {...} | | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| JsInliner.NestedFunctionVisitor | | 0% | | n/a | 3 | 3 | 5 | 5 | 3 | 3 | 1 | 1 |
| JsParserException |  | 94% |  | 83% | 2 | 7 | 2 | 23 | 1 | 4 | 0 | 1 |
| JsNamer.IllegalNameException | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| JsParserException.SourceDetail |  | 100% | | n/a | 0 | 5 | 0 | 10 | 0 | 5 | 0 | 1 |
| UncheckedJsParserException | | 100% | | n/a | 0 | 2 | 0 | 4 | 0 | 2 | 0 | 1 |