private ConstantDefinitions optimize(ExtendedCssTree extendedCssTree, ResourceContext context,
boolean simplifyCss, boolean eliminateDeadStyles) throws UnableToCompleteException {
CssTree cssTree = extendedCssTree.tree;
// Collect mixin definitions and replace mixins
CollectMixinDefinitions collectMixinDefinitions = new CollectMixinDefinitions(
cssTree.getMutatingVisitController(), errorManager);
collectMixinDefinitions.runPass();
new ReplaceMixins(cssTree.getMutatingVisitController(), errorManager,
collectMixinDefinitions.getDefinitions()).runPass();
new ProcessComponents<Object>(cssTree.getMutatingVisitController(), errorManager).runPass();
RuntimeConditionalNodeCollector runtimeConditionalNodeCollector = new
RuntimeConditionalNodeCollector(cssTree.getVisitController());