package com.digiarea.closure.model; import java.io.IOException; import com.digiarea.closure.model.visitor.GenericVisitor; import com.digiarea.closure.model.visitor.VoidVisitor; import com.digiarea.zippy.ZippyBuffer; public enum OptimizationType { FOLD_CONSTANTS, COALESCE_VARIABLE_NAMES, DEAD_ASSIGNMENT_ELIMINATION, INLINE_CONSTANT_VAR, INLINE_FUNCTION, INLINE_LOCAL_FUNCTION, ASSUME_STRICT_THIS, ASSUME_CLOSURES_ONLY_CAPTURE_PREFERENCES, INLINE_PROPERTIES, CROSS_MODULE_CODE_MOTION, CROSS_MODULE_METHOD_MOTION, INLINE_GETTERS, INLINE_VARIABLES, INLINE_LOCAL_VARIABLES, SMART_NAME_REMOVAL, REMOVE_DEAD_CODE, EXTRACT_PROTOTYPE_MEMBER_DECLARATION, REMOVE_UNUSED_PROTOTYPE_PROPERTIES, REMOVE_UNUSED_PROTOTYPE_PROPERTIES_IN_EXTERNS, REMOVE_UNUSED_CLASS_PROPERTIES, REMOVE_UNUSED_VARS, REMOVE_UNUSED_LOCAL_VARS, ALIAS_EXTERNALS, COLLAPSE_VARIABLE_DECLARATIONS, GROUP_VARIABLE_DECLARATIONS, COLLAPSE_ANONYMOUS_FUNCTIONS, ALIAS_ALL_STRINGS, OUTPUT_JS_STRING_USAGE, CONVERT_TO_DOTTED_PROPERTIES, REWRITE_FUNCTIONS_EXPRESSIONS, OPTIMIZE_PARAMETERS, OPTIMIZE_RETURNS, @Deprecated ALIAS_KEYWORDS, COLLAPSE_PROPERTIES, @Deprecated COLLAPSE_PROPERTIES_ON_EXTERN_TYPES, COLLAPSE_OBJECT_LITERALS, OPTIMIZE_CALLS, OPTIMIZE_ARGUMENTS_ARRAY; public <C> void accept(VoidVisitor<C> v, C ctx) throws Exception { v.visit(this, ctx); } public <R, C> R accept(GenericVisitor<R, C> v, C ctx) throws Exception { return v.visit(this, ctx); } public final int sizeOfOptimizationType() { int size = 0; size += ZippyBuffer.sizeOfRawVarInt(ordinal()); size += 1; return size; } public final void writeOptimizationType(final ZippyBuffer writer) throws IOException { writer.writeRawVarInt(ordinal()); writer.writeRawVarInt(0); } public static OptimizationType readOptimizationType(final ZippyBuffer reader) throws IOException { final OptimizationType packet = OptimizationType.values()[reader.readRawVarInt()]; int sector; while ((sector = reader.readSector()) != 0) { switch(sector) { } } return packet; } }