;;; Code for jsenum.Main.Supplier [type definition]
(type $jsenum.Main.Supplier.vtable (sub (struct
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 ))
)

;;; Code for jsenum.Main.Consumer [type definition]
(type $jsenum.Main.Consumer.vtable (sub (struct
 (field $m_accept__java_lang_Object__void (ref $function.m_accept__java_lang_Object__void))
 ))
)

;;; Code for jsenum.Main.JsFunctionSuppiler [type definition]
(type $jsenum.Main.JsFunctionSuppiler.vtable (sub (struct
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 ))
)

;;; Code for jsenum.Main.SpecializedJsFunction [type definition]
(type $jsenum.Main.SpecializedJsFunction.vtable (sub (struct
 (field $m_get__java_lang_Object__java_lang_Object (ref $function.m_get__java_lang_Object__java_lang_Object))
 ))
)

;;; Code for jsenum.Main [type definition]
(type $jsenum.Main.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $jsenum.Main (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.Supplier.$LambdaAdaptor [type definition]
(type $jsenum.Main.Supplier.$LambdaAdaptor.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 ))
)
(type $jsenum.Main.Supplier.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.Supplier.$LambdaAdaptor.vtable))
 (field $itable (ref $jsenum.Main.Supplier.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.Consumer.$LambdaAdaptor [type definition]
(type $jsenum.Main.Consumer.$LambdaAdaptor.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_accept__java_lang_Object__void (ref $function.m_accept__java_lang_Object__void))
 ))
)
(type $jsenum.Main.Consumer.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.Consumer.$LambdaAdaptor.vtable))
 (field $itable (ref $jsenum.Main.Consumer.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor [type definition]
(type $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 ))
)
(type $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor.vtable))
 (field $itable (ref $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.SpecializedJsFunction.$LambdaAdaptor [type definition]
(type $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_get__java_lang_Object__java_lang_Object (ref $function.m_get__java_lang_Object__java_lang_Object))
 ))
)
(type $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor.vtable))
 (field $itable (ref $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.TemplatedField [type definition]
(type $jsenum.Main.TemplatedField.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_getValue__java_lang_Object_$pp_jsenum (ref $function.m_getValue__java_lang_Object_$pp_jsenum))
 ))
)
(type $jsenum.Main.TemplatedField (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.TemplatedField.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $value@jsenum.Main.TemplatedField (mut (ref null $java.lang.Object)))
 ))
)

;;; Code for jsenum.Main.Foo [type definition]
(type $jsenum.Main.Foo.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $jsenum.Main.Foo (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.Foo.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.SupplierConsumerImpl [type definition]
(type $jsenum.Main.SupplierConsumerImpl.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_accept__java_lang_Object__void (ref $function.m_accept__java_lang_Object__void))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 ))
)
(type $jsenum.Main.SupplierConsumerImpl (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.SupplierConsumerImpl.vtable))
 (field $itable (ref $jsenum.Main.SupplierConsumerImpl.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumer [type definition]
(type $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable (sub $jsenum.Main.Supplier.vtable (struct
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 (field $m_accept__java_lang_Object__void (ref $function.m_accept__java_lang_Object__void))
 (field $m_accept__jsenum_Main_ComparableJsEnum__void (ref $function.m_accept__jsenum_Main_ComparableJsEnum__void))
 (field $m_get__jsenum_Main_ComparableJsEnum (ref $function.m_get__jsenum_Main_ComparableJsEnum))
 ))
)

;;; Code for jsenum.Main.BaseVarargs [type definition]
(type $jsenum.Main.BaseVarargs.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $jsenum.Main.BaseVarargs (sub $java.lang.Object (struct
 (field $vtable (ref $jsenum.Main.BaseVarargs.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.$LambdaImplementor$1 [type definition]
(type $jsenum.Main.$LambdaImplementor$1.vtable (sub $jsenum.Main.Supplier.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 (field $m_get__jsenum_Main_ComparableJsEnum (ref $function.m_get__jsenum_Main_ComparableJsEnum))
 ))
)
(type $jsenum.Main.$LambdaImplementor$1 (sub $jsenum.Main.Supplier.$LambdaAdaptor (struct
 (field $vtable (ref $jsenum.Main.$LambdaImplementor$1.vtable))
 (field $itable (ref $jsenum.Main.$LambdaImplementor$1.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.$LambdaImplementor$2 [type definition]
(type $jsenum.Main.$LambdaImplementor$2.vtable (sub $jsenum.Main.Consumer.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_accept__java_lang_Object__void (ref $function.m_accept__java_lang_Object__void))
 (field $m_accept__jsenum_Main_ComparableJsEnum__void (ref $function.m_accept__jsenum_Main_ComparableJsEnum__void))
 ))
)
(type $jsenum.Main.$LambdaImplementor$2 (sub $jsenum.Main.Consumer.$LambdaAdaptor (struct
 (field $vtable (ref $jsenum.Main.$LambdaImplementor$2.vtable))
 (field $itable (ref $jsenum.Main.$LambdaImplementor$2.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.$LambdaImplementor$3 [type definition]
(type $jsenum.Main.$LambdaImplementor$3.vtable (sub $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 (field $m_get__jsenum_Main_ComparableJsEnum (ref $function.m_get__jsenum_Main_ComparableJsEnum))
 ))
)
(type $jsenum.Main.$LambdaImplementor$3 (sub $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor (struct
 (field $vtable (ref $jsenum.Main.$LambdaImplementor$3.vtable))
 (field $itable (ref $jsenum.Main.$LambdaImplementor$3.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.$LambdaImplementor$4 [type definition]
(type $jsenum.Main.$LambdaImplementor$4.vtable (sub $jsenum.Main.Supplier.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 (field $m_get__jsenum_Main_ComparableJsEnum (ref $function.m_get__jsenum_Main_ComparableJsEnum))
 ))
)
(type $jsenum.Main.$LambdaImplementor$4 (sub $jsenum.Main.Supplier.$LambdaAdaptor (struct
 (field $vtable (ref $jsenum.Main.$LambdaImplementor$4.vtable))
 (field $itable (ref $jsenum.Main.$LambdaImplementor$4.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.$LambdaImplementor$5 [type definition]
(type $jsenum.Main.$LambdaImplementor$5.vtable (sub $jsenum.Main.Supplier.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 (field $m_get__jsenum_Main_Supplier (ref $function.m_get__jsenum_Main_Supplier))
 ))
)
(type $jsenum.Main.$LambdaImplementor$5 (sub $jsenum.Main.Supplier.$LambdaAdaptor (struct
 (field $vtable (ref $jsenum.Main.$LambdaImplementor$5.vtable))
 (field $itable (ref $jsenum.Main.$LambdaImplementor$5.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.$LambdaImplementor$6 [type definition]
(type $jsenum.Main.$LambdaImplementor$6.vtable (sub $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_get__java_lang_Object__java_lang_Object (ref $function.m_get__java_lang_Object__java_lang_Object))
 (field $m_get__jsenum_Main_ComparableJsEnum__jsenum_Main_ComparableJsEnum (ref $function.m_get__jsenum_Main_ComparableJsEnum__jsenum_Main_ComparableJsEnum))
 ))
)
(type $jsenum.Main.$LambdaImplementor$6 (sub $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor (struct
 (field $vtable (ref $jsenum.Main.$LambdaImplementor$6.vtable))
 (field $itable (ref $jsenum.Main.$LambdaImplementor$6.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.$LambdaImplementor$7 [type definition]
(type $jsenum.Main.$LambdaImplementor$7.vtable (sub $jsenum.Main.Consumer.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_accept__java_lang_Object__void (ref $function.m_accept__java_lang_Object__void))
 (field $m_accept__jsenum_Main_SomeJsEnum__void (ref $function.m_accept__jsenum_Main_SomeJsEnum__void))
 ))
)
(type $jsenum.Main.$LambdaImplementor$7 (sub $jsenum.Main.Consumer.$LambdaAdaptor (struct
 (field $vtable (ref $jsenum.Main.$LambdaImplementor$7.vtable))
 (field $itable (ref $jsenum.Main.$LambdaImplementor$7.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.ComparableJsEnum [type definition]
(type $jsenum.Main.ComparableJsEnum.vtable (sub $java.lang.Enum.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_compareTo__java_lang_Object__int (ref $function.m_compareTo__java_lang_Object__int))
 (field $m_getDeclaringClass__java_lang_Class (ref $function.m_getDeclaringClass__java_lang_Class))
 ))
)
(type $jsenum.Main.ComparableJsEnum (sub $java.lang.Enum (struct
 (field $vtable (ref $jsenum.Main.ComparableJsEnum.vtable))
 (field $itable (ref $jsenum.Main.ComparableJsEnum.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $name@java.lang.Enum (mut (ref null $java.lang.String)))
 (field $ordinal@java.lang.Enum (mut i32))
 ))
)

;;; Code for jsenum.Main.IntJsEnum [type definition]
(type $jsenum.Main.IntJsEnum.vtable (sub $java.lang.Enum.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_compareTo__java_lang_Object__int (ref $function.m_compareTo__java_lang_Object__int))
 (field $m_getDeclaringClass__java_lang_Class (ref $function.m_getDeclaringClass__java_lang_Class))
 ))
)
(type $jsenum.Main.IntJsEnum (sub $java.lang.Enum (struct
 (field $vtable (ref $jsenum.Main.IntJsEnum.vtable))
 (field $itable (ref $jsenum.Main.IntJsEnum.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $name@java.lang.Enum (mut (ref null $java.lang.String)))
 (field $ordinal@java.lang.Enum (mut i32))
 (field $value@jsenum.Main.IntJsEnum (mut i32))
 ))
)

;;; Code for jsenum.Main.StringJsEnum [type definition]
(type $jsenum.Main.StringJsEnum.vtable (sub $java.lang.Enum.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_compareTo__java_lang_Object__int (ref $function.m_compareTo__java_lang_Object__int))
 (field $m_getDeclaringClass__java_lang_Class (ref $function.m_getDeclaringClass__java_lang_Class))
 ))
)
(type $jsenum.Main.StringJsEnum (sub $java.lang.Enum (struct
 (field $vtable (ref $jsenum.Main.StringJsEnum.vtable))
 (field $itable (ref $jsenum.Main.StringJsEnum.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $name@java.lang.Enum (mut (ref null $java.lang.String)))
 (field $ordinal@java.lang.Enum (mut i32))
 (field $value@jsenum.Main.StringJsEnum (mut (ref null $java.lang.String)))
 ))
)

;;; Code for jsenum.Main.NonNullableStringJsEnum [type definition]
(type $jsenum.Main.NonNullableStringJsEnum.vtable (sub $java.lang.Enum.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_compareTo__java_lang_Object__int (ref $function.m_compareTo__java_lang_Object__int))
 (field $m_getDeclaringClass__java_lang_Class (ref $function.m_getDeclaringClass__java_lang_Class))
 ))
)
(type $jsenum.Main.NonNullableStringJsEnum (sub $java.lang.Enum (struct
 (field $vtable (ref $jsenum.Main.NonNullableStringJsEnum.vtable))
 (field $itable (ref $jsenum.Main.NonNullableStringJsEnum.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $name@java.lang.Enum (mut (ref null $java.lang.String)))
 (field $ordinal@java.lang.Enum (mut i32))
 (field $value@jsenum.Main.NonNullableStringJsEnum (mut (ref null $java.lang.String)))
 ))
)

;;; Code for jsenum.Main.NativeStringEnum [type definition]
(type $jsenum.Main.NativeStringEnum.vtable (sub $java.lang.Enum.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_compareTo__java_lang_Object__int (ref $function.m_compareTo__java_lang_Object__int))
 (field $m_getDeclaringClass__java_lang_Class (ref $function.m_getDeclaringClass__java_lang_Class))
 ))
)
(type $jsenum.Main.NativeStringEnum (sub $java.lang.Enum (struct
 (field $vtable (ref $jsenum.Main.NativeStringEnum.vtable))
 (field $itable (ref $jsenum.Main.NativeStringEnum.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $name@java.lang.Enum (mut (ref null $java.lang.String)))
 (field $ordinal@java.lang.Enum (mut i32))
 ))
)

;;; Code for jsenum.Main.JsEnumWithRenamedProperties [type definition]
(type $jsenum.Main.JsEnumWithRenamedProperties.vtable (sub $java.lang.Enum.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_compareTo__java_lang_Object__int (ref $function.m_compareTo__java_lang_Object__int))
 (field $m_getDeclaringClass__java_lang_Class (ref $function.m_getDeclaringClass__java_lang_Class))
 ))
)
(type $jsenum.Main.JsEnumWithRenamedProperties (sub $java.lang.Enum (struct
 (field $vtable (ref $jsenum.Main.JsEnumWithRenamedProperties.vtable))
 (field $itable (ref $jsenum.Main.JsEnumWithRenamedProperties.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $name@java.lang.Enum (mut (ref null $java.lang.String)))
 (field $ordinal@java.lang.Enum (mut i32))
 ))
)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImpl [type definition]
(type $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.vtable (sub $jsenum.Main.SupplierConsumerImpl.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_accept__java_lang_Object__void (ref $function.m_accept__java_lang_Object__void))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 (field $m_accept__jsenum_Main_ComparableJsEnum__void (ref $function.m_accept__jsenum_Main_ComparableJsEnum__void))
 (field $m_get__jsenum_Main_ComparableJsEnum (ref $function.m_get__jsenum_Main_ComparableJsEnum))
 ))
)
(type $jsenum.Main.ComparableJsEnumSupplierConsumerImpl (sub $jsenum.Main.SupplierConsumerImpl (struct
 (field $vtable (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.vtable))
 (field $itable (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides [type definition]
(type $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.vtable (sub $jsenum.Main.SupplierConsumerImpl.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_accept__java_lang_Object__void (ref $function.m_accept__java_lang_Object__void))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 (field $m_accept__jsenum_Main_ComparableJsEnum__void (ref $function.m_accept__jsenum_Main_ComparableJsEnum__void))
 (field $m_get__jsenum_Main_ComparableJsEnum (ref $function.m_get__jsenum_Main_ComparableJsEnum))
 ))
)
(type $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (sub $jsenum.Main.SupplierConsumerImpl (struct
 (field $vtable (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.vtable))
 (field $itable (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.SomeJsEnum [type definition]
(type $jsenum.Main.SomeJsEnum.vtable (sub $java.lang.Enum.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_compareTo__java_lang_Object__int (ref $function.m_compareTo__java_lang_Object__int))
 (field $m_getDeclaringClass__java_lang_Class (ref $function.m_getDeclaringClass__java_lang_Class))
 ))
)
(type $jsenum.Main.SomeJsEnum (sub $java.lang.Enum (struct
 (field $vtable (ref $jsenum.Main.SomeJsEnum.vtable))
 (field $itable (ref $jsenum.Main.SomeJsEnum.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $name@java.lang.Enum (mut (ref null $java.lang.String)))
 (field $ordinal@java.lang.Enum (mut i32))
 ))
)

;;; Code for jsenum.Main.SubtypeVarargs [type definition]
(type $jsenum.Main.SubtypeVarargs.vtable (sub $jsenum.Main.BaseVarargs.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $jsenum.Main.SubtypeVarargs (sub $jsenum.Main.BaseVarargs (struct
 (field $vtable (ref $jsenum.Main.SubtypeVarargs.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.SubtypeImplicitVarargs [type definition]
(type $jsenum.Main.SubtypeImplicitVarargs.vtable (sub $jsenum.Main.BaseVarargs.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $jsenum.Main.SubtypeImplicitVarargs (sub $jsenum.Main.BaseVarargs (struct
 (field $vtable (ref $jsenum.Main.SubtypeImplicitVarargs.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsenum.Main.Supplier [imports]

;;; Code for jsenum.Main.Consumer [imports]

;;; Code for jsenum.Main.JsFunctionSuppiler [imports]

;;; Code for jsenum.Main.SpecializedJsFunction [imports]

;;; Code for jsenum.Main [imports]

;;; Code for jsenum.Main.Supplier.$LambdaAdaptor [imports]

;;; Code for jsenum.Main.Consumer.$LambdaAdaptor [imports]

;;; Code for jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor [imports]

;;; Code for jsenum.Main.SpecializedJsFunction.$LambdaAdaptor [imports]

;;; Code for jsenum.Main.TemplatedField [imports]

;;; Code for jsenum.Main.Foo [imports]

;;; Code for jsenum.Main.SupplierConsumerImpl [imports]

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumer [imports]

;;; Code for jsenum.Main.BaseVarargs [imports]

;;; Code for jsenum.Main.$LambdaImplementor$1 [imports]

;;; Code for jsenum.Main.$LambdaImplementor$2 [imports]

;;; Code for jsenum.Main.$LambdaImplementor$3 [imports]

;;; Code for jsenum.Main.$LambdaImplementor$4 [imports]

;;; Code for jsenum.Main.$LambdaImplementor$5 [imports]

;;; Code for jsenum.Main.$LambdaImplementor$6 [imports]

;;; Code for jsenum.Main.$LambdaImplementor$7 [imports]

;;; Code for jsenum.Main.ComparableJsEnum [imports]

;;; Code for jsenum.Main.IntJsEnum [imports]

;;; Code for jsenum.Main.StringJsEnum [imports]

;;; Code for jsenum.Main.NonNullableStringJsEnum [imports]

;;; Code for jsenum.Main.NativeStringEnum [imports]

;;; Code for jsenum.Main.JsEnumWithRenamedProperties [imports]

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImpl [imports]

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides [imports]

;;; Code for jsenum.Main.SomeJsEnum [imports]

;;; Code for jsenum.Main.SubtypeVarargs [imports]

;;; Code for jsenum.Main.SubtypeImplicitVarargs [imports]

;;; Code for jsenum.Main [static fields]
(global $$class-initialized@jsenum.Main (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.Supplier.$LambdaAdaptor [static fields]
(global $$class-initialized@jsenum.Main.Supplier.$LambdaAdaptor (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.Supplier.$LambdaAdaptor (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.Consumer.$LambdaAdaptor [static fields]
(global $$class-initialized@jsenum.Main.Consumer.$LambdaAdaptor (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.Consumer.$LambdaAdaptor (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor [static fields]
(global $$class-initialized@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.SpecializedJsFunction.$LambdaAdaptor [static fields]
(global $$class-initialized@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.$LambdaImplementor$1 [static fields]
(global $$class-initialized@jsenum.Main.$LambdaImplementor$1 (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.$LambdaImplementor$1 (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.$LambdaImplementor$2 [static fields]
(global $$class-initialized@jsenum.Main.$LambdaImplementor$2 (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.$LambdaImplementor$2 (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.$LambdaImplementor$3 [static fields]
(global $$class-initialized@jsenum.Main.$LambdaImplementor$3 (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.$LambdaImplementor$3 (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.$LambdaImplementor$4 [static fields]
(global $$class-initialized@jsenum.Main.$LambdaImplementor$4 (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.$LambdaImplementor$4 (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.$LambdaImplementor$5 [static fields]
(global $$class-initialized@jsenum.Main.$LambdaImplementor$5 (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.$LambdaImplementor$5 (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.$LambdaImplementor$6 [static fields]
(global $$class-initialized@jsenum.Main.$LambdaImplementor$6 (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.$LambdaImplementor$6 (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.$LambdaImplementor$7 [static fields]
(global $$class-initialized@jsenum.Main.$LambdaImplementor$7 (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.$LambdaImplementor$7 (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.Supplier [static fields]
(global $$class-initialized@jsenum.Main.Supplier (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.Supplier (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.Consumer [static fields]
(global $$class-initialized@jsenum.Main.Consumer (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.Consumer (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.ComparableJsEnum [static fields]
(global $ZERO@jsenum.Main.ComparableJsEnum (mut (ref null $jsenum.Main.ComparableJsEnum))
 (ref.null $jsenum.Main.ComparableJsEnum)
)
(global $ONE@jsenum.Main.ComparableJsEnum (mut (ref null $jsenum.Main.ComparableJsEnum))
 (ref.null $jsenum.Main.ComparableJsEnum)
)
(global $TWO@jsenum.Main.ComparableJsEnum (mut (ref null $jsenum.Main.ComparableJsEnum))
 (ref.null $jsenum.Main.ComparableJsEnum)
)
(global $$class-initialized@jsenum.Main.ComparableJsEnum (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.ComparableJsEnum (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.IntJsEnum [static fields]
(global $MINUSONE@jsenum.Main.IntJsEnum (mut (ref null $jsenum.Main.IntJsEnum))
 (ref.null $jsenum.Main.IntJsEnum)
)
(global $TWENTY@jsenum.Main.IntJsEnum (mut (ref null $jsenum.Main.IntJsEnum))
 (ref.null $jsenum.Main.IntJsEnum)
)
(global $ELEVEN@jsenum.Main.IntJsEnum (mut (ref null $jsenum.Main.IntJsEnum))
 (ref.null $jsenum.Main.IntJsEnum)
)
(global $$class-initialized@jsenum.Main.IntJsEnum (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.IntJsEnum (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.StringJsEnum [static fields]
(global $ONE@jsenum.Main.StringJsEnum (mut (ref null $jsenum.Main.StringJsEnum))
 (ref.null $jsenum.Main.StringJsEnum)
)
(global $THREE@jsenum.Main.StringJsEnum (mut (ref null $jsenum.Main.StringJsEnum))
 (ref.null $jsenum.Main.StringJsEnum)
)
(global $$class-initialized@jsenum.Main.StringJsEnum (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.StringJsEnum (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.NonNullableStringJsEnum [static fields]
(global $ONE@jsenum.Main.NonNullableStringJsEnum (mut (ref null $jsenum.Main.NonNullableStringJsEnum))
 (ref.null $jsenum.Main.NonNullableStringJsEnum)
)
(global $THREE@jsenum.Main.NonNullableStringJsEnum (mut (ref null $jsenum.Main.NonNullableStringJsEnum))
 (ref.null $jsenum.Main.NonNullableStringJsEnum)
)
(global $$class-initialized@jsenum.Main.NonNullableStringJsEnum (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.NonNullableStringJsEnum (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.NativeStringEnum [static fields]
(global $ONE@jsenum.Main.NativeStringEnum (mut (ref null $jsenum.Main.NativeStringEnum))
 (ref.null $jsenum.Main.NativeStringEnum)
)
(global $THREE@jsenum.Main.NativeStringEnum (mut (ref null $jsenum.Main.NativeStringEnum))
 (ref.null $jsenum.Main.NativeStringEnum)
)
(global $namesToValuesMap@jsenum.Main.NativeStringEnum (mut (ref null $java.lang.Object))
 (ref.null $java.lang.Object)
)
(global $$class-initialized@jsenum.Main.NativeStringEnum (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.NativeStringEnum (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.JsFunctionSuppiler [static fields]
(global $$class-initialized@jsenum.Main.JsFunctionSuppiler (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.JsFunctionSuppiler (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.SpecializedJsFunction [static fields]
(global $$class-initialized@jsenum.Main.SpecializedJsFunction (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.SpecializedJsFunction (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.TemplatedField [static fields]
(global $$class-initialized@jsenum.Main.TemplatedField (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.TemplatedField (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.Foo [static fields]
(global $$class-initialized@jsenum.Main.Foo (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.Foo (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.JsEnumWithRenamedProperties [static fields]
(global $ZERO@jsenum.Main.JsEnumWithRenamedProperties (mut (ref null $jsenum.Main.JsEnumWithRenamedProperties))
 (ref.null $jsenum.Main.JsEnumWithRenamedProperties)
)
(global $ONE@jsenum.Main.JsEnumWithRenamedProperties (mut (ref null $jsenum.Main.JsEnumWithRenamedProperties))
 (ref.null $jsenum.Main.JsEnumWithRenamedProperties)
)
(global $TWO@jsenum.Main.JsEnumWithRenamedProperties (mut (ref null $jsenum.Main.JsEnumWithRenamedProperties))
 (ref.null $jsenum.Main.JsEnumWithRenamedProperties)
)
(global $$class-initialized@jsenum.Main.JsEnumWithRenamedProperties (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.JsEnumWithRenamedProperties (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.SupplierConsumerImpl [static fields]
(global $$class-initialized@jsenum.Main.SupplierConsumerImpl (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.SupplierConsumerImpl (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumer [static fields]
(global $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumer (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.ComparableJsEnumSupplierConsumer (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImpl [static fields]
(global $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumerImpl (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImpl (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides [static fields]
(global $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.SomeJsEnum [static fields]
(global $A@jsenum.Main.SomeJsEnum (mut (ref null $jsenum.Main.SomeJsEnum))
 (ref.null $jsenum.Main.SomeJsEnum)
)
(global $$class-initialized@jsenum.Main.SomeJsEnum (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.SomeJsEnum (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.BaseVarargs [static fields]
(global $$class-initialized@jsenum.Main.BaseVarargs (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.BaseVarargs (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.SubtypeVarargs [static fields]
(global $$class-initialized@jsenum.Main.SubtypeVarargs (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.SubtypeVarargs (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main.SubtypeImplicitVarargs [static fields]
(global $$class-initialized@jsenum.Main.SubtypeImplicitVarargs (mut i32)
 (i32.const 0)
)
(global $$class@jsenum.Main.SubtypeImplicitVarargs (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for jsenum.Main [vtable.init]
(global $jsenum.Main.vtable (ref $jsenum.Main.vtable)
 (struct.new $jsenum.Main.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$1 [vtable.init]
(global $jsenum.Main.$LambdaImplementor$1.vtable (ref $jsenum.Main.$LambdaImplementor$1.vtable)
 (struct.new $jsenum.Main.$LambdaImplementor$1.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.Supplier.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$1)
  (ref.func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$1)
 )
)
(global $jsenum.Main.Supplier.vtable@$jsenum.Main.$LambdaImplementor$1 (ref $jsenum.Main.Supplier.vtable)
 (struct.new $jsenum.Main.Supplier.vtable
  (ref.func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$1)
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$2 [vtable.init]
(global $jsenum.Main.$LambdaImplementor$2.vtable (ref $jsenum.Main.$LambdaImplementor$2.vtable)
 (struct.new $jsenum.Main.$LambdaImplementor$2.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.Consumer.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.$LambdaImplementor$2)
  (ref.func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.$LambdaImplementor$2)
 )
)
(global $jsenum.Main.Consumer.vtable@$jsenum.Main.$LambdaImplementor$2 (ref $jsenum.Main.Consumer.vtable)
 (struct.new $jsenum.Main.Consumer.vtable
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.$LambdaImplementor$2)
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$3 [vtable.init]
(global $jsenum.Main.$LambdaImplementor$3.vtable (ref $jsenum.Main.$LambdaImplementor$3.vtable)
 (struct.new $jsenum.Main.$LambdaImplementor$3.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$3)
  (ref.func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$3)
 )
)
(global $jsenum.Main.JsFunctionSuppiler.vtable@$jsenum.Main.$LambdaImplementor$3 (ref $jsenum.Main.JsFunctionSuppiler.vtable)
 (struct.new $jsenum.Main.JsFunctionSuppiler.vtable
  (ref.func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$3)
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$4 [vtable.init]
(global $jsenum.Main.$LambdaImplementor$4.vtable (ref $jsenum.Main.$LambdaImplementor$4.vtable)
 (struct.new $jsenum.Main.$LambdaImplementor$4.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.Supplier.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$4)
  (ref.func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$4)
 )
)
(global $jsenum.Main.Supplier.vtable@$jsenum.Main.$LambdaImplementor$4 (ref $jsenum.Main.Supplier.vtable)
 (struct.new $jsenum.Main.Supplier.vtable
  (ref.func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$4)
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$5 [vtable.init]
(global $jsenum.Main.$LambdaImplementor$5.vtable (ref $jsenum.Main.$LambdaImplementor$5.vtable)
 (struct.new $jsenum.Main.$LambdaImplementor$5.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.Supplier.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$5)
  (ref.func $m_get__jsenum_Main_Supplier@jsenum.Main.$LambdaImplementor$5)
 )
)
(global $jsenum.Main.Supplier.vtable@$jsenum.Main.$LambdaImplementor$5 (ref $jsenum.Main.Supplier.vtable)
 (struct.new $jsenum.Main.Supplier.vtable
  (ref.func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$5)
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$6 [vtable.init]
(global $jsenum.Main.$LambdaImplementor$6.vtable (ref $jsenum.Main.$LambdaImplementor$6.vtable)
 (struct.new $jsenum.Main.$LambdaImplementor$6.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_get__java_lang_Object__java_lang_Object@jsenum.Main.$LambdaImplementor$6)
  (ref.func $m_get__jsenum_Main_ComparableJsEnum__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$6)
 )
)
(global $jsenum.Main.SpecializedJsFunction.vtable@$jsenum.Main.$LambdaImplementor$6 (ref $jsenum.Main.SpecializedJsFunction.vtable)
 (struct.new $jsenum.Main.SpecializedJsFunction.vtable
  (ref.func $m_get__java_lang_Object__java_lang_Object@jsenum.Main.$LambdaImplementor$6)
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$7 [vtable.init]
(global $jsenum.Main.$LambdaImplementor$7.vtable (ref $jsenum.Main.$LambdaImplementor$7.vtable)
 (struct.new $jsenum.Main.$LambdaImplementor$7.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.Consumer.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.$LambdaImplementor$7)
  (ref.func $m_accept__jsenum_Main_SomeJsEnum__void@jsenum.Main.$LambdaImplementor$7)
 )
)
(global $jsenum.Main.Consumer.vtable@$jsenum.Main.$LambdaImplementor$7 (ref $jsenum.Main.Consumer.vtable)
 (struct.new $jsenum.Main.Consumer.vtable
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.$LambdaImplementor$7)
 )
)

;;; Code for jsenum.Main.ComparableJsEnum [vtable.init]
(global $jsenum.Main.ComparableJsEnum.vtable (ref $jsenum.Main.ComparableJsEnum.vtable)
 (struct.new $jsenum.Main.ComparableJsEnum.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnum)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Enum)
  (ref.func $m_hashCode__int@java.lang.Enum)
  (ref.func $m_toString__java_lang_String@java.lang.Enum)
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
  (ref.func $m_getDeclaringClass__java_lang_Class@java.lang.Enum)
 )
)
(global $java.lang.Comparable.vtable@$jsenum.Main.ComparableJsEnum (ref $java.lang.Comparable.vtable)
 (struct.new $java.lang.Comparable.vtable
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
 )
)
(global $java.io.Serializable.vtable@$jsenum.Main.ComparableJsEnum (ref $java.io.Serializable.vtable)
 (struct.new $java.io.Serializable.vtable
 )
)

;;; Code for jsenum.Main.IntJsEnum [vtable.init]
(global $jsenum.Main.IntJsEnum.vtable (ref $jsenum.Main.IntJsEnum.vtable)
 (struct.new $jsenum.Main.IntJsEnum.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.IntJsEnum)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Enum)
  (ref.func $m_hashCode__int@java.lang.Enum)
  (ref.func $m_toString__java_lang_String@java.lang.Enum)
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
  (ref.func $m_getDeclaringClass__java_lang_Class@java.lang.Enum)
 )
)
(global $java.lang.Comparable.vtable@$jsenum.Main.IntJsEnum (ref $java.lang.Comparable.vtable)
 (struct.new $java.lang.Comparable.vtable
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
 )
)
(global $java.io.Serializable.vtable@$jsenum.Main.IntJsEnum (ref $java.io.Serializable.vtable)
 (struct.new $java.io.Serializable.vtable
 )
)

;;; Code for jsenum.Main.StringJsEnum [vtable.init]
(global $jsenum.Main.StringJsEnum.vtable (ref $jsenum.Main.StringJsEnum.vtable)
 (struct.new $jsenum.Main.StringJsEnum.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.StringJsEnum)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Enum)
  (ref.func $m_hashCode__int@java.lang.Enum)
  (ref.func $m_toString__java_lang_String@java.lang.Enum)
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
  (ref.func $m_getDeclaringClass__java_lang_Class@java.lang.Enum)
 )
)
(global $java.lang.Comparable.vtable@$jsenum.Main.StringJsEnum (ref $java.lang.Comparable.vtable)
 (struct.new $java.lang.Comparable.vtable
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
 )
)
(global $java.io.Serializable.vtable@$jsenum.Main.StringJsEnum (ref $java.io.Serializable.vtable)
 (struct.new $java.io.Serializable.vtable
 )
)

;;; Code for jsenum.Main.NonNullableStringJsEnum [vtable.init]
(global $jsenum.Main.NonNullableStringJsEnum.vtable (ref $jsenum.Main.NonNullableStringJsEnum.vtable)
 (struct.new $jsenum.Main.NonNullableStringJsEnum.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.NonNullableStringJsEnum)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Enum)
  (ref.func $m_hashCode__int@java.lang.Enum)
  (ref.func $m_toString__java_lang_String@java.lang.Enum)
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
  (ref.func $m_getDeclaringClass__java_lang_Class@java.lang.Enum)
 )
)
(global $java.lang.Comparable.vtable@$jsenum.Main.NonNullableStringJsEnum (ref $java.lang.Comparable.vtable)
 (struct.new $java.lang.Comparable.vtable
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
 )
)
(global $java.io.Serializable.vtable@$jsenum.Main.NonNullableStringJsEnum (ref $java.io.Serializable.vtable)
 (struct.new $java.io.Serializable.vtable
 )
)

;;; Code for jsenum.Main.NativeStringEnum [vtable.init]
(global $jsenum.Main.NativeStringEnum.vtable (ref $jsenum.Main.NativeStringEnum.vtable)
 (struct.new $jsenum.Main.NativeStringEnum.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.NativeStringEnum)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Enum)
  (ref.func $m_hashCode__int@java.lang.Enum)
  (ref.func $m_toString__java_lang_String@java.lang.Enum)
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
  (ref.func $m_getDeclaringClass__java_lang_Class@java.lang.Enum)
 )
)
(global $java.lang.Comparable.vtable@$jsenum.Main.NativeStringEnum (ref $java.lang.Comparable.vtable)
 (struct.new $java.lang.Comparable.vtable
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
 )
)
(global $java.io.Serializable.vtable@$jsenum.Main.NativeStringEnum (ref $java.io.Serializable.vtable)
 (struct.new $java.io.Serializable.vtable
 )
)

;;; Code for jsenum.Main.TemplatedField [vtable.init]
(global $jsenum.Main.TemplatedField.vtable (ref $jsenum.Main.TemplatedField.vtable)
 (struct.new $jsenum.Main.TemplatedField.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.TemplatedField)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_getValue__java_lang_Object_$pp_jsenum@jsenum.Main.TemplatedField)
 )
)

;;; Code for jsenum.Main.Foo [vtable.init]
(global $jsenum.Main.Foo.vtable (ref $jsenum.Main.Foo.vtable)
 (struct.new $jsenum.Main.Foo.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.Foo)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for jsenum.Main.JsEnumWithRenamedProperties [vtable.init]
(global $jsenum.Main.JsEnumWithRenamedProperties.vtable (ref $jsenum.Main.JsEnumWithRenamedProperties.vtable)
 (struct.new $jsenum.Main.JsEnumWithRenamedProperties.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.JsEnumWithRenamedProperties)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Enum)
  (ref.func $m_hashCode__int@java.lang.Enum)
  (ref.func $m_toString__java_lang_String@java.lang.Enum)
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
  (ref.func $m_getDeclaringClass__java_lang_Class@java.lang.Enum)
 )
)
(global $java.lang.Comparable.vtable@$jsenum.Main.JsEnumWithRenamedProperties (ref $java.lang.Comparable.vtable)
 (struct.new $java.lang.Comparable.vtable
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
 )
)
(global $java.io.Serializable.vtable@$jsenum.Main.JsEnumWithRenamedProperties (ref $java.io.Serializable.vtable)
 (struct.new $java.io.Serializable.vtable
 )
)

;;; Code for jsenum.Main.SupplierConsumerImpl [vtable.init]
(global $jsenum.Main.SupplierConsumerImpl.vtable (ref $jsenum.Main.SupplierConsumerImpl.vtable)
 (struct.new $jsenum.Main.SupplierConsumerImpl.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.SupplierConsumerImpl)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.SupplierConsumerImpl)
  (ref.func $m_get__java_lang_Object@jsenum.Main.SupplierConsumerImpl)
 )
)
(global $jsenum.Main.Supplier.vtable@$jsenum.Main.SupplierConsumerImpl (ref $jsenum.Main.Supplier.vtable)
 (struct.new $jsenum.Main.Supplier.vtable
  (ref.func $m_get__java_lang_Object@jsenum.Main.SupplierConsumerImpl)
 )
)
(global $jsenum.Main.Consumer.vtable@$jsenum.Main.SupplierConsumerImpl (ref $jsenum.Main.Consumer.vtable)
 (struct.new $jsenum.Main.Consumer.vtable
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.SupplierConsumerImpl)
 )
)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImpl [vtable.init]
(global $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.vtable (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.vtable)
 (struct.new $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.SupplierConsumerImpl)
  (ref.func $m_get__java_lang_Object@jsenum.Main.SupplierConsumerImpl)
  (ref.func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)
  (ref.func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)
 )
)
(global $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable@$jsenum.Main.ComparableJsEnumSupplierConsumerImpl (ref $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable)
 (struct.new $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable
  (ref.func $m_get__java_lang_Object@jsenum.Main.SupplierConsumerImpl)
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.SupplierConsumerImpl)
  (ref.func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)
  (ref.func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)
 )
)
(global $jsenum.Main.Supplier.vtable@$jsenum.Main.ComparableJsEnumSupplierConsumerImpl (ref $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable) (global.get $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable@$jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
(global $jsenum.Main.Consumer.vtable@$jsenum.Main.ComparableJsEnumSupplierConsumerImpl (ref $jsenum.Main.Consumer.vtable)
 (struct.new $jsenum.Main.Consumer.vtable
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.SupplierConsumerImpl)
 )
)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides [vtable.init]
(global $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.vtable (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.vtable)
 (struct.new $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
  (ref.func $m_get__java_lang_Object@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
  (ref.func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
  (ref.func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
 )
)
(global $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable@$jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (ref $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable)
 (struct.new $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable
  (ref.func $m_get__java_lang_Object@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
  (ref.func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
  (ref.func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
 )
)
(global $jsenum.Main.Supplier.vtable@$jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (ref $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable) (global.get $jsenum.Main.ComparableJsEnumSupplierConsumer.vtable@$jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
(global $jsenum.Main.Consumer.vtable@$jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (ref $jsenum.Main.Consumer.vtable)
 (struct.new $jsenum.Main.Consumer.vtable
  (ref.func $m_accept__java_lang_Object__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
 )
)

;;; Code for jsenum.Main.SomeJsEnum [vtable.init]
(global $jsenum.Main.SomeJsEnum.vtable (ref $jsenum.Main.SomeJsEnum.vtable)
 (struct.new $jsenum.Main.SomeJsEnum.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.SomeJsEnum)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Enum)
  (ref.func $m_hashCode__int@java.lang.Enum)
  (ref.func $m_toString__java_lang_String@java.lang.Enum)
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
  (ref.func $m_getDeclaringClass__java_lang_Class@java.lang.Enum)
 )
)
(global $java.lang.Comparable.vtable@$jsenum.Main.SomeJsEnum (ref $java.lang.Comparable.vtable)
 (struct.new $java.lang.Comparable.vtable
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
 )
)
(global $java.io.Serializable.vtable@$jsenum.Main.SomeJsEnum (ref $java.io.Serializable.vtable)
 (struct.new $java.io.Serializable.vtable
 )
)

;;; Code for jsenum.Main.BaseVarargs [vtable.init]
(global $jsenum.Main.BaseVarargs.vtable (ref $jsenum.Main.BaseVarargs.vtable)
 (struct.new $jsenum.Main.BaseVarargs.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.BaseVarargs)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for jsenum.Main.SubtypeVarargs [vtable.init]
(global $jsenum.Main.SubtypeVarargs.vtable (ref $jsenum.Main.SubtypeVarargs.vtable)
 (struct.new $jsenum.Main.SubtypeVarargs.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.SubtypeVarargs)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for jsenum.Main.SubtypeImplicitVarargs [vtable.init]
(global $jsenum.Main.SubtypeImplicitVarargs.vtable (ref $jsenum.Main.SubtypeImplicitVarargs.vtable)
 (struct.new $jsenum.Main.SubtypeImplicitVarargs.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsenum.Main.SubtypeImplicitVarargs)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for jsenum.Main.Supplier [methods]

;;; void Supplier.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.Supplier
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
  (if (global.get $$class-initialized@jsenum.Main.Supplier)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
  (global.set $$class-initialized@jsenum.Main.Supplier (i32.const 1))
 )
)

;;; Class<T> Supplier.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Supplier
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.Supplier)))
   (then
    (return (global.get $$class@jsenum.Main.Supplier))
   )
  )
  (global.set $$class@jsenum.Main.Supplier (call $m_createForInterface__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.Supplier )))
  (return (global.get $$class@jsenum.Main.Supplier))
 )
)

;;; Code for jsenum.Main.Consumer [methods]

;;; void Consumer.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.Consumer
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
  (if (global.get $$class-initialized@jsenum.Main.Consumer)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
  (global.set $$class-initialized@jsenum.Main.Consumer (i32.const 1))
 )
)

;;; Class<T> Consumer.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Consumer
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.Consumer)))
   (then
    (return (global.get $$class@jsenum.Main.Consumer))
   )
  )
  (global.set $$class@jsenum.Main.Consumer (call $m_createForInterface__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.Consumer )))
  (return (global.get $$class@jsenum.Main.Consumer))
 )
)

;;; Code for jsenum.Main.JsFunctionSuppiler [methods]

;;; void JsFunctionSuppiler.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.JsFunctionSuppiler
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
  (if (global.get $$class-initialized@jsenum.Main.JsFunctionSuppiler)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
  (global.set $$class-initialized@jsenum.Main.JsFunctionSuppiler (i32.const 1))
 )
)

;;; Class<T> JsFunctionSuppiler.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.JsFunctionSuppiler
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.JsFunctionSuppiler)))
   (then
    (return (global.get $$class@jsenum.Main.JsFunctionSuppiler))
   )
  )
  (global.set $$class@jsenum.Main.JsFunctionSuppiler (call $m_createForInterface__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.JsFunctionSuppiler )))
  (return (global.get $$class@jsenum.Main.JsFunctionSuppiler))
 )
)

;;; Code for jsenum.Main.SpecializedJsFunction [methods]

;;; void SpecializedJsFunction.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.SpecializedJsFunction
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
  (if (global.get $$class-initialized@jsenum.Main.SpecializedJsFunction)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
  (global.set $$class-initialized@jsenum.Main.SpecializedJsFunction (i32.const 1))
 )
)

;;; Class<T> SpecializedJsFunction.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SpecializedJsFunction
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.SpecializedJsFunction)))
   (then
    (return (global.get $$class@jsenum.Main.SpecializedJsFunction))
   )
  )
  (global.set $$class@jsenum.Main.SpecializedJsFunction (call $m_createForInterface__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.SpecializedJsFunction )))
  (return (global.get $$class@jsenum.Main.SpecializedJsFunction))
 )
)

;;; Code for jsenum.Main [methods]

;;; Main Main.$create()
(func $$create__@jsenum.Main
 (result (ref null $jsenum.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
 (local $$instance (ref null $jsenum.Main))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
  (call $$clinit__void_<once>_@jsenum.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
  (local.set $$instance (struct.new $jsenum.Main (global.get $jsenum.Main.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
  (call $$ctor__void_$p_jsenum_Main@jsenum.Main (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
  (return (local.get $$instance))
 )
)

;;; void Main.$ctor()
(func $$ctor__void_$p_jsenum_Main@jsenum.Main
 (param $this (ref null $jsenum.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void Main.testJsEnumSwitch()
(func $m_testJsEnumSwitch__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:103:21
 (local $comparableJsEnum (ref null $jsenum.Main.ComparableJsEnum))
 (local $$expression i32)
 (local $comparable (ref null $java.lang.Object))
 (local $intJsEnum (ref null $jsenum.Main.IntJsEnum))
 (local $$expression_1 i32)
 (local $o (ref null $java.lang.Object))
 (local $equal i32)
 (local $isInstance i32)
 (local $stringJsEnum (ref null $jsenum.Main.StringJsEnum))
 (local $$expression_2 i32)
 (local $supplier (ref null $java.lang.Object))
 (local $consummer (ref null $java.lang.Object))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:103:40
  (call $$clinit__void_<once>_@jsenum.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:104:4
  (local.set $comparableJsEnum (if (result (ref null $jsenum.Main.ComparableJsEnum)) (i32.eq (call $m_getValue__int@jsenum.Main.ComparableJsEnum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))) (i32.const 1)) (then (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $TWO@jsenum.Main.ComparableJsEnum)
  )) (else (ref.null $jsenum.Main.ComparableJsEnum))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:106:4
  (block $SWITCH.BREAK
   (block
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:106:4
    (local.set $$expression (call $m_ordinal__int@java.lang.Enum (ref.as_non_null (local.get $comparableJsEnum))))
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:106:4
    (block
     (block
      (block ;; evaluate expression and jump
       (br_table 0 1 (i32.sub (local.get $$expression) (i32.const 2)))
      )
      ;; case 2:
      ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:108:8
      (br $SWITCH.BREAK)
     )
     ;; default:
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:112:4
  (local.set $comparable (local.get $comparableJsEnum))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:113:4
  (local.set $comparableJsEnum (ref.cast (ref null $jsenum.Main.ComparableJsEnum) (local.get $comparable)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:115:4
  (local.set $intJsEnum (if (result (ref null $jsenum.Main.IntJsEnum)) (i32.eq (call $m_getValue__int@jsenum.Main.IntJsEnum (ref.as_non_null (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $ELEVEN@jsenum.Main.IntJsEnum)
  ))) (i32.const 10)) (then (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $ELEVEN@jsenum.Main.IntJsEnum)
  )) (else (ref.null $jsenum.Main.IntJsEnum))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:116:4
  (block $SWITCH_1.BREAK
   (block
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:116:4
    (local.set $$expression_1 (call $m_ordinal__int@java.lang.Enum (ref.as_non_null (local.get $intJsEnum))))
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:116:4
    (block
     (block
      (block ;; evaluate expression and jump
       (br_table 0 1 (i32.sub (local.get $$expression_1) (i32.const 1)))
      )
      ;; case 1:
      ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:118:8
      (br $SWITCH_1.BREAK)
     )
     ;; default:
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:122:4
  (local.set $o (local.get $intJsEnum))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:123:4
  (local.set $intJsEnum (ref.cast (ref null $jsenum.Main.IntJsEnum) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:126:4
  (local.set $equal (ref.eq (local.get $intJsEnum) (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $TWENTY@jsenum.Main.IntJsEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:127:4
  (local.set $isInstance (ref.test (ref $jsenum.Main.IntJsEnum) (local.get $intJsEnum)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:129:4
  (local.set $isInstance (if (result i32) (ref.is_null (local.get $intJsEnum))
   (then (i32.const 0))
   (else 
    (ref.test (ref $java.lang.Comparable.vtable) (call $get.itable.$java.lang.Comparable (local.get $intJsEnum) ))
   )
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:131:4
  (local.set $stringJsEnum (if (result (ref null $jsenum.Main.StringJsEnum)) (ref.eq (call $m_getValue__java_lang_String@jsenum.Main.StringJsEnum (ref.as_non_null (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))) (call $$getString_|10|__java_lang_String_<once>_@jsenum.Main )) (then (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $THREE@jsenum.Main.StringJsEnum)
  )) (else (ref.null $jsenum.Main.StringJsEnum))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:132:4
  (block $SWITCH_2.BREAK
   (block
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:132:4
    (local.set $$expression_2 (call $m_ordinal__int@java.lang.Enum (ref.as_non_null (local.get $stringJsEnum))))
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:132:4
    (block
     (block
      (block ;; evaluate expression and jump
       (br_table 0 1 (local.get $$expression_2))
      )
      ;; case 0:
      ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:134:8
      (br $SWITCH_2.BREAK)
     )
     ;; default:
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:138:4
  (drop (call $m_compareTo__java_lang_Enum__int@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $ONE@jsenum.Main.NativeStringEnum)
  ))(block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $THREE@jsenum.Main.NativeStringEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:139:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $ONE@jsenum.Main.NativeStringEnum)
  ))(block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $THREE@jsenum.Main.NativeStringEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:4
  (local.set $supplier (call $$create__@jsenum.Main.$LambdaImplementor$1 ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:4
  (local.set $consummer (call $$create__@jsenum.Main.$LambdaImplementor$2 ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:4
  (call $m_acceptsJsFunctionSupplier__jsenum_Main_JsFunctionSuppiler__void@jsenum.Main (call $$create__@jsenum.Main.$LambdaImplementor$3 ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:4
  (call $m_acceptsSupplierOfSupplier__jsenum_Main_Supplier__void@jsenum.Main (call $$create__@jsenum.Main.$LambdaImplementor$5 ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:4
  (call $m_acceptsJsFunctionParameterizedByJsEnum__jsenum_Main_SpecializedJsFunction__void@jsenum.Main (call $$create__@jsenum.Main.$LambdaImplementor$6 ))
 )
)

;;; void Main.testExhaustiveJsEnumSwitchExpression()
(func $m_testExhaustiveJsEnumSwitchExpression__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:149:22
 (local $comparableJsEnum (ref null $jsenum.Main.ComparableJsEnum))
 (local $i i32)
 (local $$expression i32)
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:150:4
  (local.set $comparableJsEnum (if (result (ref null $jsenum.Main.ComparableJsEnum)) (i32.eq (call $m_getValue__int@jsenum.Main.ComparableJsEnum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))) (i32.const 1)) (then (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $TWO@jsenum.Main.ComparableJsEnum)
  )) (else (ref.null $jsenum.Main.ComparableJsEnum))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:152:4
  (local.set $i 
  (block $SWITCH (result i32)
   (block
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:153:8
    (local.set $$expression (call $m_ordinal__int@java.lang.Enum (ref.as_non_null (local.get $comparableJsEnum))))
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:153:8
    (block
     (block
      (block
       (block
        (block ;; evaluate expression and jump
         (br_table 2 1 0 3 (local.get $$expression))
        )
        ;; case 2:
        ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:154:22
        (i32.const 2)
        (br $SWITCH)
       )
       ;; case 1:
       ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:155:22
       (i32.const 1)
       (br $SWITCH)
      )
      ;; case 0:
      ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:156:23
      (i32.const 0)
      (br $SWITCH)
     )
     ;; default:
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:153:8
     (call $m_checkExhaustive__void@javaemul.internal.InternalPreconditions )
    )
   )
   (unreachable)
  ))
 )
)

;;; void Main.testJsEnumAutoboxingSpecialMethods()
(func $m_testJsEnumAutoboxingSpecialMethods__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:160:22
 (local $stringJsEnum (ref null $jsenum.Main.StringJsEnum))
 (local $nullStringJsEnum (ref null $jsenum.Main.StringJsEnum))
 (local $jsEnum (ref null $jsenum.Main.ComparableJsEnum))
 (local $nullJsEnum (ref null $jsenum.Main.ComparableJsEnum))
 (local $o (ref null $java.lang.Object))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:161:4
  (local.set $stringJsEnum (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:162:4
  (local.set $nullStringJsEnum (ref.null $jsenum.Main.StringJsEnum))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:163:4
  (local.set $jsEnum (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:164:4
  (local.set $nullJsEnum (ref.null $jsenum.Main.ComparableJsEnum))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:165:4
  (local.set $o (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:167:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))(block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $THREE@jsenum.Main.StringJsEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:168:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))(local.get $stringJsEnum)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:169:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))(local.get $nullStringJsEnum)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:170:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))(ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:171:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))(local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:172:4
  (drop (call_ref $function.m_equals__java_lang_Object__boolean (ref.as_non_null (local.get $o))(block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $THREE@jsenum.Main.StringJsEnum)
  )(struct.get $java.lang.Object.vtable $m_equals__java_lang_Object__boolean (struct.get $java.lang.Object $vtable(local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:174:4
  (drop (call $m_compareTo__java_lang_Enum__int@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))(block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ZERO@jsenum.Main.ComparableJsEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:175:4
  (drop (call $m_compareTo__java_lang_Enum__int@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))(ref.null $jsenum.Main.ComparableJsEnum)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:176:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))(block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ZERO@jsenum.Main.ComparableJsEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:177:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))(local.get $jsEnum)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:178:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))(local.get $nullJsEnum)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:179:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))(ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:180:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))(local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:181:4
  (drop (call_ref $function.m_equals__java_lang_Object__boolean (ref.as_non_null (local.get $o))(block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ZERO@jsenum.Main.ComparableJsEnum)
  )(struct.get $java.lang.Object.vtable $m_equals__java_lang_Object__boolean (struct.get $java.lang.Object $vtable(local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:183:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))(local.get $jsEnum)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:185:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (ref.cast (ref null $jsenum.Main.ComparableJsEnum) (call $m_boxingPassthrough__java_lang_Object__java_lang_Object@jsenum.Main (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))))(ref.cast (ref null $jsenum.Main.ComparableJsEnum) (call $m_boxingPassthrough__java_lang_Object__java_lang_Object@jsenum.Main (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  )))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:186:4
  (drop (call $m_equals__java_lang_Object__boolean@java.lang.Enum (ref.as_non_null (ref.cast (ref null $jsenum.Main.ComparableJsEnum) (call $m_boxingPassthrough__java_lang_Object__java_lang_Object@jsenum.Main (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))))(ref.cast (ref null $jsenum.Main.StringJsEnum) (call $m_boxingPassthrough__java_lang_Object__java_lang_Object@jsenum.Main (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  )))))
 )
)

;;; void Main.acceptsJsFunctionSupplier(JsFunctionSuppiler<ComparableJsEnum> supplier)
(func $m_acceptsJsFunctionSupplier__jsenum_Main_JsFunctionSuppiler__void@jsenum.Main
 (param $supplier (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:199:22
 (block
 )
)

;;; void Main.acceptsSupplierOfSupplier(Supplier<Supplier<ComparableJsEnum>> supplier)
(func $m_acceptsSupplierOfSupplier__jsenum_Main_Supplier__void@jsenum.Main
 (param $supplier (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:201:22
 (block
 )
)

;;; void Main.acceptsJsFunctionParameterizedByJsEnum(SpecializedJsFunction<ComparableJsEnum> supplier)
(func $m_acceptsJsFunctionParameterizedByJsEnum__jsenum_Main_SpecializedJsFunction__void@jsenum.Main
 (param $supplier (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:203:22
 (block
 )
)

;;; void Main.testReturnsAndParameters()
(func $m_testReturnsAndParameters__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:206:22
 (local $returnedValue (ref null $jsenum.Main.ComparableJsEnum))
 (local $returnedNullValue (ref null $jsenum.Main.ComparableJsEnum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:207:4
  (local.set $returnedValue (call $m_returnsJsEnum__jsenum_Main_ComparableJsEnum@jsenum.Main ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:208:4
  (local.set $returnedNullValue (call $m_returnsNullJsEnum__jsenum_Main_ComparableJsEnum@jsenum.Main ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:209:4
  (call $m_takesJsEnum__jsenum_Main_ComparableJsEnum__void@jsenum.Main (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))
 )
)

;;; ComparableJsEnum Main.returnsJsEnum()
(func $m_returnsJsEnum__jsenum_Main_ComparableJsEnum@jsenum.Main
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:212:34
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:213:4
  (return (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))
 )
)

;;; ComparableJsEnum Main.returnsNullJsEnum()
(func $m_returnsNullJsEnum__jsenum_Main_ComparableJsEnum@jsenum.Main
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:216:34
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:217:4
  (return (ref.null $jsenum.Main.ComparableJsEnum))
 )
)

;;; void Main.takesJsEnum(ComparableJsEnum value)
(func $m_takesJsEnum__jsenum_Main_ComparableJsEnum__void@jsenum.Main
 (param $value (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:220:22
 (block
 )
)

;;; void Main.testBoxUnboxWithTypeInference()
(func $m_testBoxUnboxWithTypeInference__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:222:22
 (local $templatedField (ref null $jsenum.Main.TemplatedField))
 (local $unboxed (ref null $jsenum.Main.ComparableJsEnum))
 (local $b i32)
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:224:4
  (local.set $templatedField (call $$create__java_lang_Object@jsenum.Main.TemplatedField (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:226:4
  (local.set $unboxed (ref.cast (ref null $jsenum.Main.ComparableJsEnum) (call_ref $function.m_getValue__java_lang_Object_$pp_jsenum (ref.as_non_null (local.get $templatedField))(struct.get $jsenum.Main.TemplatedField.vtable $m_getValue__java_lang_Object_$pp_jsenum (struct.get $jsenum.Main.TemplatedField $vtable(local.get $templatedField))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:227:4
  (local.set $unboxed (ref.cast (ref null $jsenum.Main.ComparableJsEnum) (struct.get $jsenum.Main.TemplatedField $value@jsenum.Main.TemplatedField (local.get $templatedField))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:228:4
  (struct.set $jsenum.Main.TemplatedField $value@jsenum.Main.TemplatedField (local.get $templatedField) (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:229:4
  (drop (call $m_asList__arrayOf_java_lang_Object__java_util_List@java.util.Arrays (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  )))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:230:4
  (drop (call $m_ordinal__int@java.lang.Enum (ref.as_non_null (ref.cast (ref null $jsenum.Main.ComparableJsEnum) (call_ref $function.m_getValue__java_lang_Object_$pp_jsenum (ref.as_non_null (local.get $templatedField))(struct.get $jsenum.Main.TemplatedField.vtable $m_getValue__java_lang_Object_$pp_jsenum (struct.get $jsenum.Main.TemplatedField $vtable(local.get $templatedField))))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:231:4
  (local.set $b (ref.eq (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ) (call $m_boxingPassthrough__java_lang_Object__java_lang_Object@jsenum.Main (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))))
 )
)

;;; T Main.boxingPassthrough(T t)
(func $m_boxingPassthrough__java_lang_Object__java_lang_Object@jsenum.Main
 (param $t (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:246:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:247:4
  (return (local.get $t))
 )
)

;;; void Main.boxingWithGenerics()
(func $m_boxingWithGenerics__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:250:14
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:250:35
  (call $$clinit__void_<once>_@jsenum.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:251:4
  (drop (call $$create__java_util_Optional@jsenum.Main.Foo (call $m_of__java_lang_Object__java_util_Optional@java.util.Optional (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $MINUSONE@jsenum.Main.IntJsEnum)
  ))))
 )
)

;;; T Main.varargsConsumer(T... arg0)
(func $m_varargsConsumer__arrayOf_java_lang_Object__java_lang_Object@jsenum.Main
 (param $arg0 (ref null $javaemul.internal.WasmArray.OfObject))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:308:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:308:23
  (call $$clinit__void_<once>_@jsenum.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:308:23
  (return (call $m_varargsConsumer_$private__arrayOf_java_lang_Object__java_lang_Object@jsenum.Main (local.get $arg0)))
 )
)

;;; T Main.varargsConsumer_$private(T... args)
(func $m_varargsConsumer_$private__arrayOf_java_lang_Object__java_lang_Object@jsenum.Main
 (param $args (ref null $javaemul.internal.WasmArray.OfObject))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:308:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:309:4
  (return (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $args)) (i32.const 0)))
 )
)

;;; void Main.testVarargs()
(func $m_testVarargs__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:324:22
 (local $consumer (ref null $java.lang.Object))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:325:4
  (drop (call $m_varargsConsumer_$private__arrayOf_java_lang_Object__java_lang_Object@jsenum.Main (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (block (result (ref null $jsenum.Main.SomeJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.SomeJsEnum )
   (global.get $A@jsenum.Main.SomeJsEnum)
  )(block (result (ref null $jsenum.Main.SomeJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.SomeJsEnum )
   (global.get $A@jsenum.Main.SomeJsEnum)
  )))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:4
  (local.set $consumer (call $$create__@jsenum.Main.$LambdaImplementor$7 ))
 )
)

;;; void Main.testNonNativeJsEnumArrays()
(func $m_testNonNativeJsEnumArrays__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:329:22
 (local $arr (ref null $javaemul.internal.WasmArray.OfObject))
 (local $b1 i32)
 (local $b2 i32)
 (local $obj (ref null $java.lang.Object))
 (local $v (ref null $jsenum.Main.IntJsEnum))
 (local $arr2 (ref null $javaemul.internal.WasmArray.OfObject))
 (local $nestedArr (ref null $javaemul.internal.WasmArray.OfObject))
 (local $arrayWithNull (ref null $javaemul.internal.WasmArray.OfObject))
 (local $list (ref null $java.lang.Object))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:330:4
  (local.set $arr (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $MINUSONE@jsenum.Main.IntJsEnum)
  )(block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $TWENTY@jsenum.Main.IntJsEnum)
  ))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:331:4
  (local.set $b1 (ref.eq (ref.cast (ref null $jsenum.Main.IntJsEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr)) (i32.const 0))) (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $MINUSONE@jsenum.Main.IntJsEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:332:4
  (local.set $b2 (ref.eq (ref.cast (ref null $jsenum.Main.IntJsEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr)) (i32.const 1))) (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $TWENTY@jsenum.Main.IntJsEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:333:4
  (local.set $obj (ref.cast (ref null $jsenum.Main.IntJsEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr)) (i32.const 0))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:334:4
  (local.set $v (ref.cast (ref null $jsenum.Main.IntJsEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr)) (i32.const 0))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:336:4
  (local.set $arr2 (call $m_newWithLength__int__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (i32.const 2)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:337:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr2)) (i32.const 0) (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $MINUSONE@jsenum.Main.IntJsEnum)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:338:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr2)) (i32.const 1) (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $TWENTY@jsenum.Main.IntJsEnum)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:340:4
  (local.set $nestedArr (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $MINUSONE@jsenum.Main.IntJsEnum)
  ))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:341:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $nestedArr)) (i32.const 0) (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $TWENTY@jsenum.Main.IntJsEnum)
  ))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:343:4
  (local.set $arrayWithNull (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (ref.null $java.lang.Object))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:344:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arrayWithNull)) (i32.const 0) (ref.null $java.lang.Object))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:346:4
  (local.set $list (call $$create__@java.util.ArrayList ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:347:4
  (local.set $obj (call_ref $function.m_toArray__arrayOf_java_lang_Object (ref.as_non_null (local.get $list))(struct.get $java.util.List.vtable $m_toArray__arrayOf_java_lang_Object (ref.cast (ref $java.util.List.vtable) (call $get.itable.$java.util.List (local.get $list))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:349:4
  (call $m_nonNativeJsEnumVarargs__arrayOf_jsenum_Main_IntJsEnum__void@jsenum.Main (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $MINUSONE@jsenum.Main.IntJsEnum)
  )(block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $TWENTY@jsenum.Main.IntJsEnum)
  ))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:350:4
  (call $m_nonNativeJsEnumArrayVarargs__arrayOf_arrayOf_jsenum_Main_IntJsEnum__void@jsenum.Main (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $MINUSONE@jsenum.Main.IntJsEnum)
  )))(call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $TWENTY@jsenum.Main.IntJsEnum)
  ))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:353:4
  (call $m_tVarargs__arrayOf_java_lang_Object__void@jsenum.Main (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $MINUSONE@jsenum.Main.IntJsEnum)
  )(block (result (ref null $jsenum.Main.IntJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.IntJsEnum )
   (global.get $TWENTY@jsenum.Main.IntJsEnum)
  ))))
 )
)

;;; void Main.nonNativeJsEnumVarargs(IntJsEnum... values)
(func $m_nonNativeJsEnumVarargs__arrayOf_jsenum_Main_IntJsEnum__void@jsenum.Main
 (param $values (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:356:22
 (local $v (ref null $jsenum.Main.IntJsEnum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:357:4
  (local.set $v (ref.cast (ref null $jsenum.Main.IntJsEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $values)) (i32.const 0))))
 )
)

;;; void Main.nonNativeJsEnumArrayVarargs(IntJsEnum[]... values)
(func $m_nonNativeJsEnumArrayVarargs__arrayOf_arrayOf_jsenum_Main_IntJsEnum__void@jsenum.Main
 (param $values (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:360:22
 (local $v (ref null $javaemul.internal.WasmArray.OfObject))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:361:4
  (local.set $v (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $values)) (i32.const 0))))
 )
)

;;; void Main.tVarargs(T... values)
(func $m_tVarargs__arrayOf_java_lang_Object__void@jsenum.Main
 (param $values (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:364:26
 (local $v (ref null $java.lang.Object))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:365:4
  (local.set $v (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $values)) (i32.const 0)))
 )
)

;;; void Main.testNonNativeStringJsEnumArrays()
(func $m_testNonNativeStringJsEnumArrays__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:368:22
 (local $arr (ref null $javaemul.internal.WasmArray.OfObject))
 (local $b1 i32)
 (local $obj (ref null $java.lang.Object))
 (local $v (ref null $jsenum.Main.StringJsEnum))
 (local $arr2 (ref null $javaemul.internal.WasmArray.OfObject))
 (local $nestedArr (ref null $javaemul.internal.WasmArray.OfObject))
 (local $arrayWithNull (ref null $javaemul.internal.WasmArray.OfObject))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:369:4
  (local.set $arr (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  )(block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $THREE@jsenum.Main.StringJsEnum)
  ))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:370:4
  (local.set $b1 (ref.eq (ref.cast (ref null $jsenum.Main.StringJsEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr)) (i32.const 0))) (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:371:4
  (local.set $obj (ref.cast (ref null $jsenum.Main.StringJsEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr)) (i32.const 0))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:372:4
  (local.set $v (ref.cast (ref null $jsenum.Main.StringJsEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr)) (i32.const 0))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:374:4
  (local.set $arr2 (call $m_newWithLength__int__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (i32.const 2)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:375:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr2)) (i32.const 0) (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:377:4
  (local.set $nestedArr (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (block (result (ref null $jsenum.Main.StringJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.StringJsEnum )
   (global.get $ONE@jsenum.Main.StringJsEnum)
  ))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:379:4
  (local.set $arrayWithNull (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (ref.null $java.lang.Object))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:380:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arrayWithNull)) (i32.const 0) (ref.null $java.lang.Object))
 )
)

;;; void Main.testNativeJsEnumArrays()
(func $m_testNativeJsEnumArrays__void@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:383:22
 (local $arr (ref null $javaemul.internal.WasmArray.OfObject))
 (local $b1 i32)
 (local $arr2 (ref null $javaemul.internal.WasmArray.OfObject))
 (local $nestedArr (ref null $javaemul.internal.WasmArray.OfObject))
 (local $arrayWithNull (ref null $javaemul.internal.WasmArray.OfObject))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:384:4
  (local.set $arr (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $ONE@jsenum.Main.NativeStringEnum)
  )(block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $THREE@jsenum.Main.NativeStringEnum)
  ))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:385:4
  (local.set $b1 (ref.eq (ref.cast (ref null $jsenum.Main.NativeStringEnum) (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr)) (i32.const 0))) (block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $ONE@jsenum.Main.NativeStringEnum)
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:387:4
  (local.set $arr2 (call $m_newWithLength__int__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (i32.const 2)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:388:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arr2)) (i32.const 0) (block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $ONE@jsenum.Main.NativeStringEnum)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:390:4
  (local.set $nestedArr (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $ONE@jsenum.Main.NativeStringEnum)
  ))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:391:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $nestedArr)) (i32.const 0) (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (block (result (ref null $jsenum.Main.NativeStringEnum))
   (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
   (global.get $THREE@jsenum.Main.NativeStringEnum)
  ))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:393:4
  (local.set $arrayWithNull (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (ref.null $java.lang.Object))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:394:4
  (array.set $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arrayWithNull)) (i32.const 0) (ref.null $java.lang.Object))
 )
)

;;; void Main.$clinit()
(func $$clinit__void_<once>_@jsenum.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
  (if (global.get $$class-initialized@jsenum.Main)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
  (global.set $$class-initialized@jsenum.Main (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:28:13
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> Main.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main)))
   (then
    (return (global.get $$class@jsenum.Main))
   )
  )
  (global.set $$class@jsenum.Main (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main|__java_lang_String_<once>_@jsenum.Main )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main))
 )
)

;;; Class<?> Main.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main))
 (local.set $this (ref.cast (ref $jsenum.Main) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main)

;;; Code for jsenum.Main.Supplier.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_jsenum_Main_Supplier_$LambdaAdaptor@jsenum.Main.Supplier.$LambdaAdaptor
 (param $this (ref null $jsenum.Main.Supplier.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void $LambdaAdaptor.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.Supplier.$LambdaAdaptor
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
  (if (global.get $$class-initialized@jsenum.Main.Supplier.$LambdaAdaptor)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
  (global.set $$class-initialized@jsenum.Main.Supplier.$LambdaAdaptor (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:29:12
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> $LambdaAdaptor.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Supplier.$LambdaAdaptor
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.Supplier.$LambdaAdaptor)))
   (then
    (return (global.get $$class@jsenum.Main.Supplier.$LambdaAdaptor))
   )
  )
  (global.set $$class@jsenum.Main.Supplier.$LambdaAdaptor (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.Supplier.$LambdaAdaptor )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main.Supplier.$LambdaAdaptor))
 )
)

;;; Class<?> $LambdaAdaptor.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.Supplier.$LambdaAdaptor
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.Supplier.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $jsenum.Main.Supplier.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Supplier.$LambdaAdaptor ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.Supplier.$LambdaAdaptor)

;;; Code for jsenum.Main.Consumer.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_jsenum_Main_Consumer_$LambdaAdaptor@jsenum.Main.Consumer.$LambdaAdaptor
 (param $this (ref null $jsenum.Main.Consumer.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void $LambdaAdaptor.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.Consumer.$LambdaAdaptor
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
  (if (global.get $$class-initialized@jsenum.Main.Consumer.$LambdaAdaptor)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
  (global.set $$class-initialized@jsenum.Main.Consumer.$LambdaAdaptor (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:33:12
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> $LambdaAdaptor.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Consumer.$LambdaAdaptor
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.Consumer.$LambdaAdaptor)))
   (then
    (return (global.get $$class@jsenum.Main.Consumer.$LambdaAdaptor))
   )
  )
  (global.set $$class@jsenum.Main.Consumer.$LambdaAdaptor (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.Consumer.$LambdaAdaptor )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main.Consumer.$LambdaAdaptor))
 )
)

;;; Class<?> $LambdaAdaptor.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.Consumer.$LambdaAdaptor
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.Consumer.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $jsenum.Main.Consumer.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Consumer.$LambdaAdaptor ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.Consumer.$LambdaAdaptor)

;;; Code for jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_jsenum_Main_JsFunctionSuppiler_$LambdaAdaptor@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor
 (param $this (ref null $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void $LambdaAdaptor.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
  (if (global.get $$class-initialized@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
  (global.set $$class-initialized@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:190:12
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> $LambdaAdaptor.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor)))
   (then
    (return (global.get $$class@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor))
   )
  )
  (global.set $$class@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor))
 )
)

;;; Class<?> $LambdaAdaptor.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor)

;;; Code for jsenum.Main.SpecializedJsFunction.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_jsenum_Main_SpecializedJsFunction_$LambdaAdaptor@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor
 (param $this (ref null $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void $LambdaAdaptor.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
  (if (global.get $$class-initialized@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
  (global.set $$class-initialized@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:195:12
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> $LambdaAdaptor.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor)))
   (then
    (return (global.get $$class@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor))
   )
  )
  (global.set $$class@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor))
 )
)

;;; Class<?> $LambdaAdaptor.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $jsenum.Main.SpecializedJsFunction.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor)

;;; Code for jsenum.Main.TemplatedField [methods]

;;; TemplatedField<T> TemplatedField.$create(T value)
(func $$create__java_lang_Object@jsenum.Main.TemplatedField
 (param $value (ref null $java.lang.Object))
 (result (ref null $jsenum.Main.TemplatedField))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:237:4
 (local $$instance (ref null $jsenum.Main.TemplatedField))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:237:4
  (call $$clinit__void_<once>_@jsenum.Main.TemplatedField )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:237:4
  (local.set $$instance (struct.new $jsenum.Main.TemplatedField (global.get $jsenum.Main.TemplatedField.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:237:4
  (call $$ctor__java_lang_Object__void_$p_jsenum_Main_TemplatedField@jsenum.Main.TemplatedField (ref.as_non_null (local.get $$instance))(local.get $value))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:237:4
  (return (local.get $$instance))
 )
)

;;; void TemplatedField.$ctor(T value)
(func $$ctor__java_lang_Object__void_$p_jsenum_Main_TemplatedField@jsenum.Main.TemplatedField
 (param $this (ref null $jsenum.Main.TemplatedField))
 (param $value (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:237:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:237:28
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:238:6
  (struct.set $jsenum.Main.TemplatedField $value@jsenum.Main.TemplatedField (local.get $this) (local.get $value))
 )
)

;;; T TemplatedField.getValue()
(func $m_getValue__java_lang_Object_$pp_jsenum@jsenum.Main.TemplatedField
 (type $function.m_getValue__java_lang_Object_$pp_jsenum)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:241:6
 (local $this (ref null $jsenum.Main.TemplatedField))
 (local.set $this (ref.cast (ref $jsenum.Main.TemplatedField) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:242:6
  (return (struct.get $jsenum.Main.TemplatedField $value@jsenum.Main.TemplatedField (local.get $this)))
 )
)
(elem declare func $m_getValue__java_lang_Object_$pp_jsenum@jsenum.Main.TemplatedField)

;;; void TemplatedField.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.TemplatedField
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:234:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:234:23
  (if (global.get $$class-initialized@jsenum.Main.TemplatedField)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:234:23
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:234:23
  (global.set $$class-initialized@jsenum.Main.TemplatedField (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:234:23
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> TemplatedField.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.TemplatedField
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.TemplatedField)))
   (then
    (return (global.get $$class@jsenum.Main.TemplatedField))
   )
  )
  (global.set $$class@jsenum.Main.TemplatedField (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.TemplatedField )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main.TemplatedField))
 )
)

;;; Class<?> TemplatedField.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.TemplatedField
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.TemplatedField))
 (local.set $this (ref.cast (ref $jsenum.Main.TemplatedField) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.TemplatedField ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.TemplatedField)

;;; Code for jsenum.Main.Foo [methods]

;;; Foo<T> Foo.$create(Optional<IntJsEnum> c)
(func $$create__java_util_Optional@jsenum.Main.Foo
 (param $c (ref null $java.util.Optional))
 (result (ref null $jsenum.Main.Foo))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:255:4
 (local $$instance (ref null $jsenum.Main.Foo))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:255:4
  (call $$clinit__void_<once>_@jsenum.Main.Foo )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:255:4
  (local.set $$instance (struct.new $jsenum.Main.Foo (global.get $jsenum.Main.Foo.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:255:4
  (call $$ctor__java_util_Optional__void_$p_jsenum_Main_Foo@jsenum.Main.Foo (ref.as_non_null (local.get $$instance))(local.get $c))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:255:4
  (return (local.get $$instance))
 )
)

;;; void Foo.$ctor(Optional<IntJsEnum> c)
(func $$ctor__java_util_Optional__void_$p_jsenum_Main_Foo@jsenum.Main.Foo
 (param $this (ref null $jsenum.Main.Foo))
 (param $c (ref null $java.util.Optional))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:255:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:255:31
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void Foo.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.Foo
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:254:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:254:15
  (if (global.get $$class-initialized@jsenum.Main.Foo)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:254:15
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:254:15
  (global.set $$class-initialized@jsenum.Main.Foo (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:254:15
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> Foo.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Foo
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.Foo)))
   (then
    (return (global.get $$class@jsenum.Main.Foo))
   )
  )
  (global.set $$class@jsenum.Main.Foo (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_Foo|__java_lang_String_<once>_@jsenum.Main.Foo )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main.Foo))
 )
)

;;; Class<?> Foo.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.Foo
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.Foo))
 (local.set $this (ref.cast (ref $jsenum.Main.Foo) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Foo ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.Foo)

;;; Code for jsenum.Main.SupplierConsumerImpl [methods]

;;; SupplierConsumerImpl<T> SupplierConsumerImpl.$create()
(func $$create__@jsenum.Main.SupplierConsumerImpl
 (result (ref null $jsenum.Main.SupplierConsumerImpl))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
 (local $$instance (ref null $jsenum.Main.SupplierConsumerImpl))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
  (call $$clinit__void_<once>_@jsenum.Main.SupplierConsumerImpl )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
  (local.set $$instance (struct.new $jsenum.Main.SupplierConsumerImpl (global.get $jsenum.Main.SupplierConsumerImpl.vtable) (global.get $jsenum.Main.SupplierConsumerImpl.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
  (call $$ctor__void_$p_jsenum_Main_SupplierConsumerImpl@jsenum.Main.SupplierConsumerImpl (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
  (return (local.get $$instance))
 )
)

;;; void SupplierConsumerImpl.$ctor()
(func $$ctor__void_$p_jsenum_Main_SupplierConsumerImpl@jsenum.Main.SupplierConsumerImpl
 (param $this (ref null $jsenum.Main.SupplierConsumerImpl))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void SupplierConsumerImpl.accept(T t)
(func $m_accept__java_lang_Object__void@jsenum.Main.SupplierConsumerImpl
 (type $function.m_accept__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:273:16
 (local $this (ref null $jsenum.Main.SupplierConsumerImpl))
 (local.set $this (ref.cast (ref $jsenum.Main.SupplierConsumerImpl) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_accept__java_lang_Object__void@jsenum.Main.SupplierConsumerImpl)

;;; T SupplierConsumerImpl.get()
(func $m_get__java_lang_Object@jsenum.Main.SupplierConsumerImpl
 (type $function.m_get__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:276:13
 (local $this (ref null $jsenum.Main.SupplierConsumerImpl))
 (local.set $this (ref.cast (ref $jsenum.Main.SupplierConsumerImpl) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:277:6
  (return (ref.null $java.lang.Object))
 )
)
(elem declare func $m_get__java_lang_Object@jsenum.Main.SupplierConsumerImpl)

;;; void SupplierConsumerImpl.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.SupplierConsumerImpl
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
  (if (global.get $$class-initialized@jsenum.Main.SupplierConsumerImpl)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
  (global.set $$class-initialized@jsenum.Main.SupplierConsumerImpl (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:270:15
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> SupplierConsumerImpl.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SupplierConsumerImpl
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.SupplierConsumerImpl)))
   (then
    (return (global.get $$class@jsenum.Main.SupplierConsumerImpl))
   )
  )
  (global.set $$class@jsenum.Main.SupplierConsumerImpl (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.SupplierConsumerImpl )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main.SupplierConsumerImpl))
 )
)

;;; Class<?> SupplierConsumerImpl.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.SupplierConsumerImpl
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.SupplierConsumerImpl))
 (local.set $this (ref.cast (ref $jsenum.Main.SupplierConsumerImpl) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SupplierConsumerImpl ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.SupplierConsumerImpl)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumer [methods]

;;; void ComparableJsEnumSupplierConsumer.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumer
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:281:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:281:12
  (if (global.get $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumer)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:281:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:281:12
  (global.set $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumer (i32.const 1))
 )
)

;;; Class<T> ComparableJsEnumSupplierConsumer.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumer
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumer)))
   (then
    (return (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumer))
   )
  )
  (global.set $$class@jsenum.Main.ComparableJsEnumSupplierConsumer (call $m_createForInterface__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumer )))
  (return (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumer))
 )
)

;;; Code for jsenum.Main.BaseVarargs [methods]

;;; BaseVarargs<T> BaseVarargs.$create(T... args)
(func $$create__arrayOf_java_lang_Object@jsenum.Main.BaseVarargs
 (param $args (ref null $javaemul.internal.WasmArray.OfObject))
 (result (ref null $jsenum.Main.BaseVarargs))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:313:4
 (local $$instance (ref null $jsenum.Main.BaseVarargs))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:313:4
  (local.set $$instance (struct.new $jsenum.Main.BaseVarargs (global.get $jsenum.Main.BaseVarargs.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:313:4
  (call $$ctor__arrayOf_java_lang_Object__void_$p_jsenum_Main_BaseVarargs@jsenum.Main.BaseVarargs (ref.as_non_null (local.get $$instance))(local.get $args))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:313:4
  (return (local.get $$instance))
 )
)

;;; void BaseVarargs.$ctor(T... args)
(func $$ctor__arrayOf_java_lang_Object__void_$p_jsenum_Main_BaseVarargs@jsenum.Main.BaseVarargs
 (param $this (ref null $jsenum.Main.BaseVarargs))
 (param $args (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:313:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:313:27
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void BaseVarargs.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.BaseVarargs
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:312:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:312:23
  (if (global.get $$class-initialized@jsenum.Main.BaseVarargs)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:312:23
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:312:23
  (global.set $$class-initialized@jsenum.Main.BaseVarargs (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:312:23
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> BaseVarargs.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.BaseVarargs
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.BaseVarargs)))
   (then
    (return (global.get $$class@jsenum.Main.BaseVarargs))
   )
  )
  (global.set $$class@jsenum.Main.BaseVarargs (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.BaseVarargs )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@jsenum.Main.BaseVarargs))
 )
)

;;; Class<?> BaseVarargs.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.BaseVarargs
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.BaseVarargs))
 (local.set $this (ref.cast (ref $jsenum.Main.BaseVarargs) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.BaseVarargs ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.BaseVarargs)

;;; Code for jsenum.Main.$LambdaImplementor$1 [methods]

;;; <anonymous> implements Supplier<ComparableJsEnum> <anonymous> implements Supplier<ComparableJsEnum>.$create()
(func $$create__@jsenum.Main.$LambdaImplementor$1
 (result (ref null $jsenum.Main.$LambdaImplementor$1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
 (local $$instance (ref null $jsenum.Main.$LambdaImplementor$1))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (call $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$1 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (local.set $$instance (struct.new $jsenum.Main.$LambdaImplementor$1 (global.get $jsenum.Main.$LambdaImplementor$1.vtable) (global.get $jsenum.Main.$LambdaImplementor$1.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (call $$ctor__void_$p_jsenum_Main_$LambdaImplementor$1@jsenum.Main.$LambdaImplementor$1 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements Supplier<ComparableJsEnum>.$ctor()
(func $$ctor__void_$p_jsenum_Main_$LambdaImplementor$1@jsenum.Main.$LambdaImplementor$1
 (param $this (ref null $jsenum.Main.$LambdaImplementor$1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (call $$ctor__void_$p_jsenum_Main_Supplier_$LambdaAdaptor@jsenum.Main.Supplier.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; ComparableJsEnum <anonymous> implements Supplier<ComparableJsEnum>.get()
(func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$1
 (type $function.m_get__jsenum_Main_ComparableJsEnum)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
 (local $this (ref null $jsenum.Main.$LambdaImplementor$1))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$1) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:48
  (return (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))
 )
)
(elem declare func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$1)

;;; ComparableJsEnum <anonymous> implements Supplier<ComparableJsEnum>.get()
(func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$1
 (type $function.m_get__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
 (local $this (ref null $jsenum.Main.$LambdaImplementor$1))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$1) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (return (call_ref $function.m_get__jsenum_Main_ComparableJsEnum (ref.as_non_null (local.get $this))(struct.get $jsenum.Main.$LambdaImplementor$1.vtable $m_get__jsenum_Main_ComparableJsEnum (struct.get $jsenum.Main.$LambdaImplementor$1 $vtable(local.get $this)))))
 )
)
(elem declare func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$1)

;;; void <anonymous> implements Supplier<ComparableJsEnum>.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$1
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (if (global.get $$class-initialized@jsenum.Main.$LambdaImplementor$1)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (global.set $$class-initialized@jsenum.Main.$LambdaImplementor$1 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:141:42
  (call $$clinit__void_<once>_@jsenum.Main.Supplier.$LambdaAdaptor )
 )
)

;;; Class<T> <anonymous> implements Supplier<ComparableJsEnum>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.$LambdaImplementor$1
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.$LambdaImplementor$1)))
   (then
    (return (global.get $$class@jsenum.Main.$LambdaImplementor$1))
   )
  )
  (global.set $$class@jsenum.Main.$LambdaImplementor$1 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.$LambdaImplementor$1 )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Supplier.$LambdaAdaptor )))
  (return (global.get $$class@jsenum.Main.$LambdaImplementor$1))
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$2 [methods]

;;; <anonymous> implements Consumer<ComparableJsEnum> <anonymous> implements Consumer<ComparableJsEnum>.$create()
(func $$create__@jsenum.Main.$LambdaImplementor$2
 (result (ref null $jsenum.Main.$LambdaImplementor$2))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
 (local $$instance (ref null $jsenum.Main.$LambdaImplementor$2))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (call $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$2 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (local.set $$instance (struct.new $jsenum.Main.$LambdaImplementor$2 (global.get $jsenum.Main.$LambdaImplementor$2.vtable) (global.get $jsenum.Main.$LambdaImplementor$2.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (call $$ctor__void_$p_jsenum_Main_$LambdaImplementor$2@jsenum.Main.$LambdaImplementor$2 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements Consumer<ComparableJsEnum>.$ctor()
(func $$ctor__void_$p_jsenum_Main_$LambdaImplementor$2@jsenum.Main.$LambdaImplementor$2
 (param $this (ref null $jsenum.Main.$LambdaImplementor$2))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (call $$ctor__void_$p_jsenum_Main_Consumer_$LambdaAdaptor@jsenum.Main.Consumer.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; void <anonymous> implements Consumer<ComparableJsEnum>.accept(ComparableJsEnum e)
(func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.$LambdaImplementor$2
 (type $function.m_accept__jsenum_Main_ComparableJsEnum__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $e (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
 (local $this (ref null $jsenum.Main.$LambdaImplementor$2))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$2) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:48
  (drop (call $m_ordinal__int@java.lang.Enum (ref.as_non_null (local.get $e))))
 )
)
(elem declare func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.$LambdaImplementor$2)

;;; void <anonymous> implements Consumer<ComparableJsEnum>.accept(T arg0)
(func $m_accept__java_lang_Object__void@jsenum.Main.$LambdaImplementor$2
 (type $function.m_accept__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
 (local $this (ref null $jsenum.Main.$LambdaImplementor$2))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$2) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (call_ref $function.m_accept__jsenum_Main_ComparableJsEnum__void (ref.as_non_null (local.get $this))(ref.cast (ref null $jsenum.Main.ComparableJsEnum) (local.get $arg0))(struct.get $jsenum.Main.$LambdaImplementor$2.vtable $m_accept__jsenum_Main_ComparableJsEnum__void (struct.get $jsenum.Main.$LambdaImplementor$2 $vtable(local.get $this))))
 )
)
(elem declare func $m_accept__java_lang_Object__void@jsenum.Main.$LambdaImplementor$2)

;;; void <anonymous> implements Consumer<ComparableJsEnum>.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$2
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (if (global.get $$class-initialized@jsenum.Main.$LambdaImplementor$2)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (global.set $$class-initialized@jsenum.Main.$LambdaImplementor$2 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:142:43
  (call $$clinit__void_<once>_@jsenum.Main.Consumer.$LambdaAdaptor )
 )
)

;;; Class<T> <anonymous> implements Consumer<ComparableJsEnum>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.$LambdaImplementor$2
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.$LambdaImplementor$2)))
   (then
    (return (global.get $$class@jsenum.Main.$LambdaImplementor$2))
   )
  )
  (global.set $$class@jsenum.Main.$LambdaImplementor$2 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.$LambdaImplementor$2 )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Consumer.$LambdaAdaptor )))
  (return (global.get $$class@jsenum.Main.$LambdaImplementor$2))
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$3 [methods]

;;; <anonymous> implements JsFunctionSuppiler<ComparableJsEnum> <anonymous> implements JsFunctionSuppiler<ComparableJsEnum>.$create()
(func $$create__@jsenum.Main.$LambdaImplementor$3
 (result (ref null $jsenum.Main.$LambdaImplementor$3))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
 (local $$instance (ref null $jsenum.Main.$LambdaImplementor$3))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (call $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$3 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (local.set $$instance (struct.new $jsenum.Main.$LambdaImplementor$3 (global.get $jsenum.Main.$LambdaImplementor$3.vtable) (global.get $jsenum.Main.$LambdaImplementor$3.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (call $$ctor__void_$p_jsenum_Main_$LambdaImplementor$3@jsenum.Main.$LambdaImplementor$3 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements JsFunctionSuppiler<ComparableJsEnum>.$ctor()
(func $$ctor__void_$p_jsenum_Main_$LambdaImplementor$3@jsenum.Main.$LambdaImplementor$3
 (param $this (ref null $jsenum.Main.$LambdaImplementor$3))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (call $$ctor__void_$p_jsenum_Main_JsFunctionSuppiler_$LambdaAdaptor@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; ComparableJsEnum <anonymous> implements JsFunctionSuppiler<ComparableJsEnum>.get()
(func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$3
 (type $function.m_get__jsenum_Main_ComparableJsEnum)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
 (local $this (ref null $jsenum.Main.$LambdaImplementor$3))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$3) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:36
  (return (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))
 )
)
(elem declare func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$3)

;;; ComparableJsEnum <anonymous> implements JsFunctionSuppiler<ComparableJsEnum>.get()
(func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$3
 (type $function.m_get__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
 (local $this (ref null $jsenum.Main.$LambdaImplementor$3))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$3) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (return (call_ref $function.m_get__jsenum_Main_ComparableJsEnum (ref.as_non_null (local.get $this))(struct.get $jsenum.Main.$LambdaImplementor$3.vtable $m_get__jsenum_Main_ComparableJsEnum (struct.get $jsenum.Main.$LambdaImplementor$3 $vtable(local.get $this)))))
 )
)
(elem declare func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$3)

;;; void <anonymous> implements JsFunctionSuppiler<ComparableJsEnum>.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$3
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (if (global.get $$class-initialized@jsenum.Main.$LambdaImplementor$3)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (global.set $$class-initialized@jsenum.Main.$LambdaImplementor$3 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:144:30
  (call $$clinit__void_<once>_@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor )
 )
)

;;; Class<T> <anonymous> implements JsFunctionSuppiler<ComparableJsEnum>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.$LambdaImplementor$3
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.$LambdaImplementor$3)))
   (then
    (return (global.get $$class@jsenum.Main.$LambdaImplementor$3))
   )
  )
  (global.set $$class@jsenum.Main.$LambdaImplementor$3 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.$LambdaImplementor$3 )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.JsFunctionSuppiler.$LambdaAdaptor )))
  (return (global.get $$class@jsenum.Main.$LambdaImplementor$3))
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$4 [methods]

;;; <anonymous> implements Supplier<ComparableJsEnum> <anonymous> implements Supplier<ComparableJsEnum>.$create()
(func $$create__@jsenum.Main.$LambdaImplementor$4
 (result (ref null $jsenum.Main.$LambdaImplementor$4))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
 (local $$instance (ref null $jsenum.Main.$LambdaImplementor$4))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (call $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$4 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (local.set $$instance (struct.new $jsenum.Main.$LambdaImplementor$4 (global.get $jsenum.Main.$LambdaImplementor$4.vtable) (global.get $jsenum.Main.$LambdaImplementor$4.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (call $$ctor__void_$p_jsenum_Main_$LambdaImplementor$4@jsenum.Main.$LambdaImplementor$4 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements Supplier<ComparableJsEnum>.$ctor()
(func $$ctor__void_$p_jsenum_Main_$LambdaImplementor$4@jsenum.Main.$LambdaImplementor$4
 (param $this (ref null $jsenum.Main.$LambdaImplementor$4))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (call $$ctor__void_$p_jsenum_Main_Supplier_$LambdaAdaptor@jsenum.Main.Supplier.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; ComparableJsEnum <anonymous> implements Supplier<ComparableJsEnum>.get()
(func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$4
 (type $function.m_get__jsenum_Main_ComparableJsEnum)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
 (local $this (ref null $jsenum.Main.$LambdaImplementor$4))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$4) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:43
  (return (block (result (ref null $jsenum.Main.ComparableJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum )
   (global.get $ONE@jsenum.Main.ComparableJsEnum)
  ))
 )
)
(elem declare func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$4)

;;; ComparableJsEnum <anonymous> implements Supplier<ComparableJsEnum>.get()
(func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$4
 (type $function.m_get__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
 (local $this (ref null $jsenum.Main.$LambdaImplementor$4))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$4) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (return (call_ref $function.m_get__jsenum_Main_ComparableJsEnum (ref.as_non_null (local.get $this))(struct.get $jsenum.Main.$LambdaImplementor$4.vtable $m_get__jsenum_Main_ComparableJsEnum (struct.get $jsenum.Main.$LambdaImplementor$4 $vtable(local.get $this)))))
 )
)
(elem declare func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$4)

;;; void <anonymous> implements Supplier<ComparableJsEnum>.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$4
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (if (global.get $$class-initialized@jsenum.Main.$LambdaImplementor$4)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (global.set $$class-initialized@jsenum.Main.$LambdaImplementor$4 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:37
  (call $$clinit__void_<once>_@jsenum.Main.Supplier.$LambdaAdaptor )
 )
)

;;; Class<T> <anonymous> implements Supplier<ComparableJsEnum>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.$LambdaImplementor$4
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.$LambdaImplementor$4)))
   (then
    (return (global.get $$class@jsenum.Main.$LambdaImplementor$4))
   )
  )
  (global.set $$class@jsenum.Main.$LambdaImplementor$4 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.$LambdaImplementor$4 )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Supplier.$LambdaAdaptor )))
  (return (global.get $$class@jsenum.Main.$LambdaImplementor$4))
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$5 [methods]

;;; <anonymous> implements Supplier<Supplier<ComparableJsEnum>> <anonymous> implements Supplier<Supplier<ComparableJsEnum>>.$create()
(func $$create__@jsenum.Main.$LambdaImplementor$5
 (result (ref null $jsenum.Main.$LambdaImplementor$5))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
 (local $$instance (ref null $jsenum.Main.$LambdaImplementor$5))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (call $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$5 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (local.set $$instance (struct.new $jsenum.Main.$LambdaImplementor$5 (global.get $jsenum.Main.$LambdaImplementor$5.vtable) (global.get $jsenum.Main.$LambdaImplementor$5.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (call $$ctor__void_$p_jsenum_Main_$LambdaImplementor$5@jsenum.Main.$LambdaImplementor$5 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements Supplier<Supplier<ComparableJsEnum>>.$ctor()
(func $$ctor__void_$p_jsenum_Main_$LambdaImplementor$5@jsenum.Main.$LambdaImplementor$5
 (param $this (ref null $jsenum.Main.$LambdaImplementor$5))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (call $$ctor__void_$p_jsenum_Main_Supplier_$LambdaAdaptor@jsenum.Main.Supplier.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; Supplier<ComparableJsEnum> <anonymous> implements Supplier<Supplier<ComparableJsEnum>>.get()
(func $m_get__jsenum_Main_Supplier@jsenum.Main.$LambdaImplementor$5
 (type $function.m_get__jsenum_Main_Supplier)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
 (local $this (ref null $jsenum.Main.$LambdaImplementor$5))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$5) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:36
  (return (call $$create__@jsenum.Main.$LambdaImplementor$4 ))
 )
)
(elem declare func $m_get__jsenum_Main_Supplier@jsenum.Main.$LambdaImplementor$5)

;;; Supplier<ComparableJsEnum> <anonymous> implements Supplier<Supplier<ComparableJsEnum>>.get()
(func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$5
 (type $function.m_get__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
 (local $this (ref null $jsenum.Main.$LambdaImplementor$5))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$5) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (return (call_ref $function.m_get__jsenum_Main_Supplier (ref.as_non_null (local.get $this))(struct.get $jsenum.Main.$LambdaImplementor$5.vtable $m_get__jsenum_Main_Supplier (struct.get $jsenum.Main.$LambdaImplementor$5 $vtable(local.get $this)))))
 )
)
(elem declare func $m_get__java_lang_Object@jsenum.Main.$LambdaImplementor$5)

;;; void <anonymous> implements Supplier<Supplier<ComparableJsEnum>>.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$5
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (if (global.get $$class-initialized@jsenum.Main.$LambdaImplementor$5)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (global.set $$class-initialized@jsenum.Main.$LambdaImplementor$5 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:145:30
  (call $$clinit__void_<once>_@jsenum.Main.Supplier.$LambdaAdaptor )
 )
)

;;; Class<T> <anonymous> implements Supplier<Supplier<ComparableJsEnum>>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.$LambdaImplementor$5
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.$LambdaImplementor$5)))
   (then
    (return (global.get $$class@jsenum.Main.$LambdaImplementor$5))
   )
  )
  (global.set $$class@jsenum.Main.$LambdaImplementor$5 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.$LambdaImplementor$5 )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Supplier.$LambdaAdaptor )))
  (return (global.get $$class@jsenum.Main.$LambdaImplementor$5))
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$6 [methods]

;;; <anonymous> implements SpecializedJsFunction<ComparableJsEnum> <anonymous> implements SpecializedJsFunction<ComparableJsEnum>.$create()
(func $$create__@jsenum.Main.$LambdaImplementor$6
 (result (ref null $jsenum.Main.$LambdaImplementor$6))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
 (local $$instance (ref null $jsenum.Main.$LambdaImplementor$6))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (call $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$6 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (local.set $$instance (struct.new $jsenum.Main.$LambdaImplementor$6 (global.get $jsenum.Main.$LambdaImplementor$6.vtable) (global.get $jsenum.Main.$LambdaImplementor$6.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (call $$ctor__void_$p_jsenum_Main_$LambdaImplementor$6@jsenum.Main.$LambdaImplementor$6 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements SpecializedJsFunction<ComparableJsEnum>.$ctor()
(func $$ctor__void_$p_jsenum_Main_$LambdaImplementor$6@jsenum.Main.$LambdaImplementor$6
 (param $this (ref null $jsenum.Main.$LambdaImplementor$6))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (call $$ctor__void_$p_jsenum_Main_SpecializedJsFunction_$LambdaAdaptor@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; ComparableJsEnum <anonymous> implements SpecializedJsFunction<ComparableJsEnum>.get(ComparableJsEnum e)
(func $m_get__jsenum_Main_ComparableJsEnum__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$6
 (type $function.m_get__jsenum_Main_ComparableJsEnum__jsenum_Main_ComparableJsEnum)
 (param $this.untyped (ref $java.lang.Object))
 (param $e (ref null $jsenum.Main.ComparableJsEnum))
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
 (local $this (ref null $jsenum.Main.$LambdaImplementor$6))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$6) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:48
  (return (local.get $e))
 )
)
(elem declare func $m_get__jsenum_Main_ComparableJsEnum__jsenum_Main_ComparableJsEnum@jsenum.Main.$LambdaImplementor$6)

;;; ComparableJsEnum <anonymous> implements SpecializedJsFunction<ComparableJsEnum>.get(T arg0)
(func $m_get__java_lang_Object__java_lang_Object@jsenum.Main.$LambdaImplementor$6
 (type $function.m_get__java_lang_Object__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
 (local $this (ref null $jsenum.Main.$LambdaImplementor$6))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$6) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (return (call_ref $function.m_get__jsenum_Main_ComparableJsEnum__jsenum_Main_ComparableJsEnum (ref.as_non_null (local.get $this))(ref.cast (ref null $jsenum.Main.ComparableJsEnum) (local.get $arg0))(struct.get $jsenum.Main.$LambdaImplementor$6.vtable $m_get__jsenum_Main_ComparableJsEnum__jsenum_Main_ComparableJsEnum (struct.get $jsenum.Main.$LambdaImplementor$6 $vtable(local.get $this)))))
 )
)
(elem declare func $m_get__java_lang_Object__java_lang_Object@jsenum.Main.$LambdaImplementor$6)

;;; void <anonymous> implements SpecializedJsFunction<ComparableJsEnum>.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$6
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (if (global.get $$class-initialized@jsenum.Main.$LambdaImplementor$6)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (global.set $$class-initialized@jsenum.Main.$LambdaImplementor$6 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:146:43
  (call $$clinit__void_<once>_@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor )
 )
)

;;; Class<T> <anonymous> implements SpecializedJsFunction<ComparableJsEnum>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.$LambdaImplementor$6
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.$LambdaImplementor$6)))
   (then
    (return (global.get $$class@jsenum.Main.$LambdaImplementor$6))
   )
  )
  (global.set $$class@jsenum.Main.$LambdaImplementor$6 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.$LambdaImplementor$6 )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SpecializedJsFunction.$LambdaAdaptor )))
  (return (global.get $$class@jsenum.Main.$LambdaImplementor$6))
 )
)

;;; Code for jsenum.Main.$LambdaImplementor$7 [methods]

;;; <anonymous> implements Consumer<SomeJsEnum> <anonymous> implements Consumer<SomeJsEnum>.$create()
(func $$create__@jsenum.Main.$LambdaImplementor$7
 (result (ref null $jsenum.Main.$LambdaImplementor$7))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
 (local $$instance (ref null $jsenum.Main.$LambdaImplementor$7))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (call $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$7 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (local.set $$instance (struct.new $jsenum.Main.$LambdaImplementor$7 (global.get $jsenum.Main.$LambdaImplementor$7.vtable) (global.get $jsenum.Main.$LambdaImplementor$7.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (call $$ctor__void_$p_jsenum_Main_$LambdaImplementor$7@jsenum.Main.$LambdaImplementor$7 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements Consumer<SomeJsEnum>.$ctor()
(func $$ctor__void_$p_jsenum_Main_$LambdaImplementor$7@jsenum.Main.$LambdaImplementor$7
 (param $this (ref null $jsenum.Main.$LambdaImplementor$7))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (call $$ctor__void_$p_jsenum_Main_Consumer_$LambdaAdaptor@jsenum.Main.Consumer.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; void <anonymous> implements Consumer<SomeJsEnum>.accept(SomeJsEnum arg0)
(func $m_accept__jsenum_Main_SomeJsEnum__void@jsenum.Main.$LambdaImplementor$7
 (type $function.m_accept__jsenum_Main_SomeJsEnum__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $jsenum.Main.SomeJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
 (local $this (ref null $jsenum.Main.$LambdaImplementor$7))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$7) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (drop (call $m_varargsConsumer__arrayOf_java_lang_Object__java_lang_Object@jsenum.Main (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (local.get $arg0)))))
 )
)
(elem declare func $m_accept__jsenum_Main_SomeJsEnum__void@jsenum.Main.$LambdaImplementor$7)

;;; void <anonymous> implements Consumer<SomeJsEnum>.accept(T arg0)
(func $m_accept__java_lang_Object__void@jsenum.Main.$LambdaImplementor$7
 (type $function.m_accept__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
 (local $this (ref null $jsenum.Main.$LambdaImplementor$7))
 (local.set $this (ref.cast (ref $jsenum.Main.$LambdaImplementor$7) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (call_ref $function.m_accept__jsenum_Main_SomeJsEnum__void (ref.as_non_null (local.get $this))(ref.cast (ref null $jsenum.Main.SomeJsEnum) (local.get $arg0))(struct.get $jsenum.Main.$LambdaImplementor$7.vtable $m_accept__jsenum_Main_SomeJsEnum__void (struct.get $jsenum.Main.$LambdaImplementor$7 $vtable(local.get $this))))
 )
)
(elem declare func $m_accept__java_lang_Object__void@jsenum.Main.$LambdaImplementor$7)

;;; void <anonymous> implements Consumer<SomeJsEnum>.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.$LambdaImplementor$7
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (if (global.get $$class-initialized@jsenum.Main.$LambdaImplementor$7)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (global.set $$class-initialized@jsenum.Main.$LambdaImplementor$7 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:326:36
  (call $$clinit__void_<once>_@jsenum.Main.Consumer.$LambdaAdaptor )
 )
)

;;; Class<T> <anonymous> implements Consumer<SomeJsEnum>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.$LambdaImplementor$7
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.$LambdaImplementor$7)))
   (then
    (return (global.get $$class@jsenum.Main.$LambdaImplementor$7))
   )
  )
  (global.set $$class@jsenum.Main.$LambdaImplementor$7 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.$LambdaImplementor$7 )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.Consumer.$LambdaAdaptor )))
  (return (global.get $$class@jsenum.Main.$LambdaImplementor$7))
 )
)

;;; Code for jsenum.Main.ComparableJsEnum [methods]

;;; ComparableJsEnum ComparableJsEnum.$create(String $name, int $ordinal)
(func $$create__java_lang_String__int@jsenum.Main.ComparableJsEnum
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
 (local $$instance (ref null $jsenum.Main.ComparableJsEnum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (local.set $$instance (struct.new $jsenum.Main.ComparableJsEnum (global.get $jsenum.Main.ComparableJsEnum.vtable) (global.get $jsenum.Main.ComparableJsEnum.itable) (i32.const 0) (ref.null $java.lang.String) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (call $$ctor__java_lang_String__int__void_$p_jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnum (ref.as_non_null (local.get $$instance))(local.get $$name)(local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (return (local.get $$instance))
 )
)

;;; void ComparableJsEnum.$ctor(String $name, int $ordinal)
(func $$ctor__java_lang_String__int__void_$p_jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnum
 (param $this (ref null $jsenum.Main.ComparableJsEnum))
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (struct.set $java.lang.Enum $name@java.lang.Enum (local.get $this) (local.get $$name))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (struct.set $java.lang.Enum $ordinal@java.lang.Enum (local.get $this) (local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (call $$ctor__java_lang_String__int__void_$p_java_lang_Enum@java.lang.Enum (ref.as_non_null (local.get $this))(local.get $$name)(local.get $$ordinal))
 )
)

;;; int ComparableJsEnum.getValue()
(func $m_getValue__int@jsenum.Main.ComparableJsEnum
 (type $function.m_getValue__int)
 (param $this.untyped (ref $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:43:15
 (local $this (ref null $jsenum.Main.ComparableJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnum) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:44:6
  (return (call $m_ordinal__int@java.lang.Enum (ref.as_non_null (local.get $this))))
 )
)
(elem declare func $m_getValue__int@jsenum.Main.ComparableJsEnum)

;;; void ComparableJsEnum.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.ComparableJsEnum
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (if (global.get $$class-initialized@jsenum.Main.ComparableJsEnum)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (global.set $$class-initialized@jsenum.Main.ComparableJsEnum (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:38:7
  (call $$clinit__void_<once>_@java.lang.Enum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:39:4
  (global.set $ZERO@jsenum.Main.ComparableJsEnum (call $$create__java_lang_String__int@jsenum.Main.ComparableJsEnum (ref.null $java.lang.String)(i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:40:4
  (global.set $ONE@jsenum.Main.ComparableJsEnum (call $$create__java_lang_String__int@jsenum.Main.ComparableJsEnum (ref.null $java.lang.String)(i32.const 1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:41:4
  (global.set $TWO@jsenum.Main.ComparableJsEnum (call $$create__java_lang_String__int@jsenum.Main.ComparableJsEnum (ref.null $java.lang.String)(i32.const 2)))
 )
)

;;; Class<T> ComparableJsEnum.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.ComparableJsEnum
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.ComparableJsEnum)))
   (then
    (return (global.get $$class@jsenum.Main.ComparableJsEnum))
   )
  )
  (global.set $$class@jsenum.Main.ComparableJsEnum (call $m_createForEnum__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.ComparableJsEnum )))
  (return (global.get $$class@jsenum.Main.ComparableJsEnum))
 )
)

;;; Class<?> ComparableJsEnum.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnum
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.ComparableJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnum) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.ComparableJsEnum ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnum)

;;; Code for jsenum.Main.IntJsEnum [methods]

;;; int IntJsEnum.getValue()
(func $m_getValue__int@jsenum.Main.IntJsEnum
 (type $function.m_getValue__int)
 (param $this.untyped (ref $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:56:15
 (local $this (ref null $jsenum.Main.IntJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.IntJsEnum) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:57:6
  (return (struct.get $jsenum.Main.IntJsEnum $value@jsenum.Main.IntJsEnum (local.get $this)))
 )
)
(elem declare func $m_getValue__int@jsenum.Main.IntJsEnum)

;;; IntJsEnum IntJsEnum.$create(String $name, int $ordinal, int value)
(func $$create__java_lang_String__int__int@jsenum.Main.IntJsEnum
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (param $value i32)
 (result (ref null $jsenum.Main.IntJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:60:4
 (local $$instance (ref null $jsenum.Main.IntJsEnum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:60:4
  (local.set $$instance (struct.new $jsenum.Main.IntJsEnum (global.get $jsenum.Main.IntJsEnum.vtable) (global.get $jsenum.Main.IntJsEnum.itable) (i32.const 0) (ref.null $java.lang.String) (i32.const 0) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:60:4
  (call $$ctor__java_lang_String__int__int__void_$p_jsenum_Main_IntJsEnum@jsenum.Main.IntJsEnum (ref.as_non_null (local.get $$instance))(local.get $$name)(local.get $$ordinal)(local.get $value))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:60:4
  (return (local.get $$instance))
 )
)

;;; void IntJsEnum.$ctor(String $name, int $ordinal, int value)
(func $$ctor__java_lang_String__int__int__void_$p_jsenum_Main_IntJsEnum@jsenum.Main.IntJsEnum
 (param $this (ref null $jsenum.Main.IntJsEnum))
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (param $value i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:60:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:60:4
  (struct.set $java.lang.Enum $name@java.lang.Enum (local.get $this) (local.get $$name))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:60:4
  (struct.set $java.lang.Enum $ordinal@java.lang.Enum (local.get $this) (local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:60:25
  (call $$ctor__java_lang_String__int__void_$p_java_lang_Enum@java.lang.Enum (ref.as_non_null (local.get $this))(local.get $$name)(local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:61:6
  (struct.set $jsenum.Main.IntJsEnum $value@jsenum.Main.IntJsEnum (local.get $this) (local.get $value))
 )
)

;;; void IntJsEnum.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.IntJsEnum
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:49:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:49:7
  (if (global.get $$class-initialized@jsenum.Main.IntJsEnum)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:49:7
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:49:7
  (global.set $$class-initialized@jsenum.Main.IntJsEnum (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:49:7
  (call $$clinit__void_<once>_@java.lang.Enum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:50:4
  (global.set $MINUSONE@jsenum.Main.IntJsEnum (call $$create__java_lang_String__int__int@jsenum.Main.IntJsEnum (ref.null $java.lang.String)(i32.const 0)(i32.const -1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:51:4
  (global.set $TWENTY@jsenum.Main.IntJsEnum (call $$create__java_lang_String__int__int@jsenum.Main.IntJsEnum (ref.null $java.lang.String)(i32.const 1)(i32.const 20)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:52:4
  (global.set $ELEVEN@jsenum.Main.IntJsEnum (call $$create__java_lang_String__int__int@jsenum.Main.IntJsEnum (ref.null $java.lang.String)(i32.const 2)(i32.const 11)))
 )
)

;;; Class<T> IntJsEnum.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.IntJsEnum
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.IntJsEnum)))
   (then
    (return (global.get $$class@jsenum.Main.IntJsEnum))
   )
  )
  (global.set $$class@jsenum.Main.IntJsEnum (call $m_createForEnum__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.IntJsEnum )))
  (return (global.get $$class@jsenum.Main.IntJsEnum))
 )
)

;;; Class<?> IntJsEnum.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.IntJsEnum
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.IntJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.IntJsEnum) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.IntJsEnum ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.IntJsEnum)

;;; Code for jsenum.Main.StringJsEnum [methods]

;;; String StringJsEnum.getValue()
(func $m_getValue__java_lang_String@jsenum.Main.StringJsEnum
 (type $function.m_getValue__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:72:18
 (local $this (ref null $jsenum.Main.StringJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.StringJsEnum) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:73:6
  (return (struct.get $jsenum.Main.StringJsEnum $value@jsenum.Main.StringJsEnum (local.get $this)))
 )
)
(elem declare func $m_getValue__java_lang_String@jsenum.Main.StringJsEnum)

;;; StringJsEnum StringJsEnum.$create(String $name, int $ordinal, String value)
(func $$create__java_lang_String__int__java_lang_String@jsenum.Main.StringJsEnum
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (param $value (ref null $java.lang.String))
 (result (ref null $jsenum.Main.StringJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:76:4
 (local $$instance (ref null $jsenum.Main.StringJsEnum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:76:4
  (local.set $$instance (struct.new $jsenum.Main.StringJsEnum (global.get $jsenum.Main.StringJsEnum.vtable) (global.get $jsenum.Main.StringJsEnum.itable) (i32.const 0) (ref.null $java.lang.String) (i32.const 0) (ref.null $java.lang.String)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:76:4
  (call $$ctor__java_lang_String__int__java_lang_String__void_$p_jsenum_Main_StringJsEnum@jsenum.Main.StringJsEnum (ref.as_non_null (local.get $$instance))(local.get $$name)(local.get $$ordinal)(local.get $value))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:76:4
  (return (local.get $$instance))
 )
)

;;; void StringJsEnum.$ctor(String $name, int $ordinal, String value)
(func $$ctor__java_lang_String__int__java_lang_String__void_$p_jsenum_Main_StringJsEnum@jsenum.Main.StringJsEnum
 (param $this (ref null $jsenum.Main.StringJsEnum))
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (param $value (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:76:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:76:4
  (struct.set $java.lang.Enum $name@java.lang.Enum (local.get $this) (local.get $$name))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:76:4
  (struct.set $java.lang.Enum $ordinal@java.lang.Enum (local.get $this) (local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:76:31
  (call $$ctor__java_lang_String__int__void_$p_java_lang_Enum@java.lang.Enum (ref.as_non_null (local.get $this))(local.get $$name)(local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:77:6
  (struct.set $jsenum.Main.StringJsEnum $value@jsenum.Main.StringJsEnum (local.get $this) (local.get $value))
 )
)

;;; void StringJsEnum.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.StringJsEnum
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:66:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:66:7
  (if (global.get $$class-initialized@jsenum.Main.StringJsEnum)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:66:7
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:66:7
  (global.set $$class-initialized@jsenum.Main.StringJsEnum (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:66:7
  (call $$clinit__void_<once>_@java.lang.Enum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:67:4
  (global.set $ONE@jsenum.Main.StringJsEnum (call $$create__java_lang_String__int__java_lang_String@jsenum.Main.StringJsEnum (ref.null $java.lang.String)(i32.const 0)(call $$getString_|ONE|__java_lang_String_<once>_@jsenum.Main.StringJsEnum )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:68:4
  (global.set $THREE@jsenum.Main.StringJsEnum (call $$create__java_lang_String__int__java_lang_String@jsenum.Main.StringJsEnum (ref.null $java.lang.String)(i32.const 1)(call $$getString_|THREE|__java_lang_String_<once>_@jsenum.Main.StringJsEnum )))
 )
)

;;; Class<T> StringJsEnum.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.StringJsEnum
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.StringJsEnum)))
   (then
    (return (global.get $$class@jsenum.Main.StringJsEnum))
   )
  )
  (global.set $$class@jsenum.Main.StringJsEnum (call $m_createForEnum__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.StringJsEnum )))
  (return (global.get $$class@jsenum.Main.StringJsEnum))
 )
)

;;; Class<?> StringJsEnum.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.StringJsEnum
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.StringJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.StringJsEnum) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.StringJsEnum ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.StringJsEnum)

;;; Code for jsenum.Main.NonNullableStringJsEnum [methods]

;;; String NonNullableStringJsEnum.getValue()
(func $m_getValue__java_lang_String@jsenum.Main.NonNullableStringJsEnum
 (type $function.m_getValue__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:88:18
 (local $this (ref null $jsenum.Main.NonNullableStringJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.NonNullableStringJsEnum) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:89:6
  (return (struct.get $jsenum.Main.NonNullableStringJsEnum $value@jsenum.Main.NonNullableStringJsEnum (local.get $this)))
 )
)
(elem declare func $m_getValue__java_lang_String@jsenum.Main.NonNullableStringJsEnum)

;;; NonNullableStringJsEnum NonNullableStringJsEnum.$create(String $name, int $ordinal, String value)
(func $$create__java_lang_String__int__java_lang_String@jsenum.Main.NonNullableStringJsEnum
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (param $value (ref null $java.lang.String))
 (result (ref null $jsenum.Main.NonNullableStringJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:92:4
 (local $$instance (ref null $jsenum.Main.NonNullableStringJsEnum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:92:4
  (local.set $$instance (struct.new $jsenum.Main.NonNullableStringJsEnum (global.get $jsenum.Main.NonNullableStringJsEnum.vtable) (global.get $jsenum.Main.NonNullableStringJsEnum.itable) (i32.const 0) (ref.null $java.lang.String) (i32.const 0) (ref.null $java.lang.String)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:92:4
  (call $$ctor__java_lang_String__int__java_lang_String__void_$p_jsenum_Main_NonNullableStringJsEnum@jsenum.Main.NonNullableStringJsEnum (ref.as_non_null (local.get $$instance))(local.get $$name)(local.get $$ordinal)(local.get $value))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:92:4
  (return (local.get $$instance))
 )
)

;;; void NonNullableStringJsEnum.$ctor(String $name, int $ordinal, String value)
(func $$ctor__java_lang_String__int__java_lang_String__void_$p_jsenum_Main_NonNullableStringJsEnum@jsenum.Main.NonNullableStringJsEnum
 (param $this (ref null $jsenum.Main.NonNullableStringJsEnum))
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (param $value (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:92:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:92:4
  (struct.set $java.lang.Enum $name@java.lang.Enum (local.get $this) (local.get $$name))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:92:4
  (struct.set $java.lang.Enum $ordinal@java.lang.Enum (local.get $this) (local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:92:42
  (call $$ctor__java_lang_String__int__void_$p_java_lang_Enum@java.lang.Enum (ref.as_non_null (local.get $this))(local.get $$name)(local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:93:6
  (struct.set $jsenum.Main.NonNullableStringJsEnum $value@jsenum.Main.NonNullableStringJsEnum (local.get $this) (local.get $value))
 )
)

;;; void NonNullableStringJsEnum.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.NonNullableStringJsEnum
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:82:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:82:7
  (if (global.get $$class-initialized@jsenum.Main.NonNullableStringJsEnum)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:82:7
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:82:7
  (global.set $$class-initialized@jsenum.Main.NonNullableStringJsEnum (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:82:7
  (call $$clinit__void_<once>_@java.lang.Enum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:83:4
  (global.set $ONE@jsenum.Main.NonNullableStringJsEnum (call $$create__java_lang_String__int__java_lang_String@jsenum.Main.NonNullableStringJsEnum (ref.null $java.lang.String)(i32.const 0)(call $$getString_|ONE|__java_lang_String_<once>_@jsenum.Main.StringJsEnum )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:84:4
  (global.set $THREE@jsenum.Main.NonNullableStringJsEnum (call $$create__java_lang_String__int__java_lang_String@jsenum.Main.NonNullableStringJsEnum (ref.null $java.lang.String)(i32.const 1)(call $$getString_|THREE|__java_lang_String_<once>_@jsenum.Main.StringJsEnum )))
 )
)

;;; Class<T> NonNullableStringJsEnum.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.NonNullableStringJsEnum
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.NonNullableStringJsEnum)))
   (then
    (return (global.get $$class@jsenum.Main.NonNullableStringJsEnum))
   )
  )
  (global.set $$class@jsenum.Main.NonNullableStringJsEnum (call $m_createForEnum__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.NonNullableStringJsEnum )))
  (return (global.get $$class@jsenum.Main.NonNullableStringJsEnum))
 )
)

;;; Class<?> NonNullableStringJsEnum.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.NonNullableStringJsEnum
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.NonNullableStringJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.NonNullableStringJsEnum) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.NonNullableStringJsEnum ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.NonNullableStringJsEnum)

;;; Code for jsenum.Main.NativeStringEnum [methods]

;;; NativeStringEnum NativeStringEnum.$create(String $name, int $ordinal)
(func $$create__java_lang_String__int@jsenum.Main.NativeStringEnum
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (result (ref null $jsenum.Main.NativeStringEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
 (local $$instance (ref null $jsenum.Main.NativeStringEnum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (local.set $$instance (struct.new $jsenum.Main.NativeStringEnum (global.get $jsenum.Main.NativeStringEnum.vtable) (global.get $jsenum.Main.NativeStringEnum.itable) (i32.const 0) (ref.null $java.lang.String) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (call $$ctor__java_lang_String__int__void_$p_jsenum_Main_NativeStringEnum@jsenum.Main.NativeStringEnum (ref.as_non_null (local.get $$instance))(local.get $$name)(local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (return (local.get $$instance))
 )
)

;;; void NativeStringEnum.$ctor(String $name, int $ordinal)
(func $$ctor__java_lang_String__int__void_$p_jsenum_Main_NativeStringEnum@jsenum.Main.NativeStringEnum
 (param $this (ref null $jsenum.Main.NativeStringEnum))
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (struct.set $java.lang.Enum $name@java.lang.Enum (local.get $this) (local.get $$name))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (struct.set $java.lang.Enum $ordinal@java.lang.Enum (local.get $this) (local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (call $$ctor__java_lang_String__int__void_$p_java_lang_Enum@java.lang.Enum (ref.as_non_null (local.get $this))(local.get $$name)(local.get $$ordinal))
 )
)

;;; NativeStringEnum NativeStringEnum.valueOf(String name)
(func $m_valueOf__java_lang_String__jsenum_Main_NativeStringEnum@jsenum.Main.NativeStringEnum
 (param $name (ref null $java.lang.String))
 (result (ref null $jsenum.Main.NativeStringEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (if (ref.is_null (global.get $namesToValuesMap@jsenum.Main.NativeStringEnum))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
     (global.set $namesToValuesMap@jsenum.Main.NativeStringEnum (call $m_createMapFromValues__arrayOf_java_lang_Enum__java_util_Map@javaemul.internal.Enums (call $m_values_$private__arrayOf_jsenum_Main_NativeStringEnum@jsenum.Main.NativeStringEnum )))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (return (ref.cast (ref null $jsenum.Main.NativeStringEnum) (call $m_getValueFromNameAndMap__java_lang_String__java_util_Map__java_lang_Object@javaemul.internal.Enums (local.get $name)(global.get $namesToValuesMap@jsenum.Main.NativeStringEnum))))
 )
)

;;; NativeStringEnum[] NativeStringEnum.values()
(func $m_values__arrayOf_jsenum_Main_NativeStringEnum@jsenum.Main.NativeStringEnum
 (result (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (call $$clinit__void_<once>_@jsenum.Main.NativeStringEnum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (return (call $m_values_$private__arrayOf_jsenum_Main_NativeStringEnum@jsenum.Main.NativeStringEnum ))
 )
)

;;; NativeStringEnum[] NativeStringEnum.values_$private()
(func $m_values_$private__arrayOf_jsenum_Main_NativeStringEnum@jsenum.Main.NativeStringEnum
 (result (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (return (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (global.get $ONE@jsenum.Main.NativeStringEnum)(global.get $THREE@jsenum.Main.NativeStringEnum))))
 )
)

;;; void NativeStringEnum.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.NativeStringEnum
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (if (global.get $$class-initialized@jsenum.Main.NativeStringEnum)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (global.set $$class-initialized@jsenum.Main.NativeStringEnum (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:98:7
  (call $$clinit__void_<once>_@java.lang.Enum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:99:4
  (global.set $ONE@jsenum.Main.NativeStringEnum (call $$create__java_lang_String__int@jsenum.Main.NativeStringEnum (call $$getString_|ONE|__java_lang_String_<once>_@jsenum.Main.StringJsEnum )(i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:100:4
  (global.set $THREE@jsenum.Main.NativeStringEnum (call $$create__java_lang_String__int@jsenum.Main.NativeStringEnum (call $$getString_|THREE|__java_lang_String_<once>_@jsenum.Main.StringJsEnum )(i32.const 1)))
 )
)

;;; Class<T> NativeStringEnum.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.NativeStringEnum
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.NativeStringEnum)))
   (then
    (return (global.get $$class@jsenum.Main.NativeStringEnum))
   )
  )
  (global.set $$class@jsenum.Main.NativeStringEnum (call $m_createForEnum__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.NativeStringEnum )))
  (return (global.get $$class@jsenum.Main.NativeStringEnum))
 )
)

;;; Class<?> NativeStringEnum.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.NativeStringEnum
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.NativeStringEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.NativeStringEnum) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.NativeStringEnum ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.NativeStringEnum)

;;; Code for jsenum.Main.JsEnumWithRenamedProperties [methods]

;;; JsEnumWithRenamedProperties JsEnumWithRenamedProperties.$create(String $name, int $ordinal)
(func $$create__java_lang_String__int@jsenum.Main.JsEnumWithRenamedProperties
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (result (ref null $jsenum.Main.JsEnumWithRenamedProperties))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
 (local $$instance (ref null $jsenum.Main.JsEnumWithRenamedProperties))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (local.set $$instance (struct.new $jsenum.Main.JsEnumWithRenamedProperties (global.get $jsenum.Main.JsEnumWithRenamedProperties.vtable) (global.get $jsenum.Main.JsEnumWithRenamedProperties.itable) (i32.const 0) (ref.null $java.lang.String) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (call $$ctor__java_lang_String__int__void_$p_jsenum_Main_JsEnumWithRenamedProperties@jsenum.Main.JsEnumWithRenamedProperties (ref.as_non_null (local.get $$instance))(local.get $$name)(local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (return (local.get $$instance))
 )
)

;;; void JsEnumWithRenamedProperties.$ctor(String $name, int $ordinal)
(func $$ctor__java_lang_String__int__void_$p_jsenum_Main_JsEnumWithRenamedProperties@jsenum.Main.JsEnumWithRenamedProperties
 (param $this (ref null $jsenum.Main.JsEnumWithRenamedProperties))
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (struct.set $java.lang.Enum $name@java.lang.Enum (local.get $this) (local.get $$name))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (struct.set $java.lang.Enum $ordinal@java.lang.Enum (local.get $this) (local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (call $$ctor__java_lang_String__int__void_$p_java_lang_Enum@java.lang.Enum (ref.as_non_null (local.get $this))(local.get $$name)(local.get $$ordinal))
 )
)

;;; int JsEnumWithRenamedProperties.getValue()
(func $m_getValue__int@jsenum.Main.JsEnumWithRenamedProperties
 (type $function.m_getValue__int)
 (param $this.untyped (ref $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:265:15
 (local $this (ref null $jsenum.Main.JsEnumWithRenamedProperties))
 (local.set $this (ref.cast (ref $jsenum.Main.JsEnumWithRenamedProperties) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:266:6
  (return (call $m_ordinal__int@java.lang.Enum (ref.as_non_null (local.get $this))))
 )
)
(elem declare func $m_getValue__int@jsenum.Main.JsEnumWithRenamedProperties)

;;; void JsEnumWithRenamedProperties.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.JsEnumWithRenamedProperties
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (if (global.get $$class-initialized@jsenum.Main.JsEnumWithRenamedProperties)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (global.set $$class-initialized@jsenum.Main.JsEnumWithRenamedProperties (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:259:7
  (call $$clinit__void_<once>_@java.lang.Enum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:260:4
  (global.set $ZERO@jsenum.Main.JsEnumWithRenamedProperties (call $$create__java_lang_String__int@jsenum.Main.JsEnumWithRenamedProperties (ref.null $java.lang.String)(i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:262:4
  (global.set $ONE@jsenum.Main.JsEnumWithRenamedProperties (call $$create__java_lang_String__int@jsenum.Main.JsEnumWithRenamedProperties (ref.null $java.lang.String)(i32.const 1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:263:4
  (global.set $TWO@jsenum.Main.JsEnumWithRenamedProperties (call $$create__java_lang_String__int@jsenum.Main.JsEnumWithRenamedProperties (ref.null $java.lang.String)(i32.const 2)))
 )
)

;;; Class<T> JsEnumWithRenamedProperties.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.JsEnumWithRenamedProperties
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.JsEnumWithRenamedProperties)))
   (then
    (return (global.get $$class@jsenum.Main.JsEnumWithRenamedProperties))
   )
  )
  (global.set $$class@jsenum.Main.JsEnumWithRenamedProperties (call $m_createForEnum__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.JsEnumWithRenamedProperties )))
  (return (global.get $$class@jsenum.Main.JsEnumWithRenamedProperties))
 )
)

;;; Class<?> JsEnumWithRenamedProperties.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.JsEnumWithRenamedProperties
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.JsEnumWithRenamedProperties))
 (local.set $this (ref.cast (ref $jsenum.Main.JsEnumWithRenamedProperties) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.JsEnumWithRenamedProperties ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.JsEnumWithRenamedProperties)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImpl [methods]

;;; ComparableJsEnumSupplierConsumerImpl ComparableJsEnumSupplierConsumerImpl.$create()
(func $$create__@jsenum.Main.ComparableJsEnumSupplierConsumerImpl
 (result (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
 (local $$instance (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImpl )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (local.set $$instance (struct.new $jsenum.Main.ComparableJsEnumSupplierConsumerImpl (global.get $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.vtable) (global.get $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (call $$ctor__void_$p_jsenum_Main_ComparableJsEnumSupplierConsumerImpl@jsenum.Main.ComparableJsEnumSupplierConsumerImpl (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (return (local.get $$instance))
 )
)

;;; void ComparableJsEnumSupplierConsumerImpl.$ctor()
(func $$ctor__void_$p_jsenum_Main_ComparableJsEnumSupplierConsumerImpl@jsenum.Main.ComparableJsEnumSupplierConsumerImpl
 (param $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (call $$ctor__void_$p_jsenum_Main_SupplierConsumerImpl@jsenum.Main.SupplierConsumerImpl (ref.as_non_null (local.get $this)))
 )
)

;;; void ComparableJsEnumSupplierConsumerImpl.accept(ComparableJsEnum arg0)
(func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.ComparableJsEnumSupplierConsumerImpl
 (type $function.m_accept__jsenum_Main_ComparableJsEnum__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
 (local $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImpl) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (call $m_accept__java_lang_Object__void@jsenum.Main.SupplierConsumerImpl (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)

;;; ComparableJsEnum ComparableJsEnumSupplierConsumerImpl.get()
(func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnumSupplierConsumerImpl
 (type $function.m_get__jsenum_Main_ComparableJsEnum)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
 (local $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImpl) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (return (ref.cast (ref null $jsenum.Main.ComparableJsEnum) (call_ref $function.m_get__java_lang_Object (ref.as_non_null (local.get $this))(struct.get $jsenum.Main.ComparableJsEnumSupplierConsumerImpl.vtable $m_get__java_lang_Object (struct.get $jsenum.Main.ComparableJsEnumSupplierConsumerImpl $vtable(local.get $this))))))
 )
)
(elem declare func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)

;;; void ComparableJsEnumSupplierConsumerImpl.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImpl
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (if (global.get $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (global.set $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumerImpl (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:289:15
  (call $$clinit__void_<once>_@jsenum.Main.SupplierConsumerImpl )
 )
)

;;; Class<T> ComparableJsEnumSupplierConsumerImpl.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImpl
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)))
   (then
    (return (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
   )
  )
  (global.set $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImpl (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImpl )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SupplierConsumerImpl )))
  (return (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
 )
)

;;; Class<?> ComparableJsEnumSupplierConsumerImpl.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnumSupplierConsumerImpl
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImpl))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImpl) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImpl ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnumSupplierConsumerImpl)

;;; Code for jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides [methods]

;;; ComparableJsEnumSupplierConsumerImplWithOverrides ComparableJsEnumSupplierConsumerImplWithOverrides.$create()
(func $$create__@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 (result (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
 (local $$instance (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (call $$clinit__void_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (local.set $$instance (struct.new $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (global.get $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.vtable) (global.get $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (call $$ctor__void_$p_jsenum_Main_ComparableJsEnumSupplierConsumerImplWithOverrides@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (return (local.get $$instance))
 )
)

;;; void ComparableJsEnumSupplierConsumerImplWithOverrides.$ctor()
(func $$ctor__void_$p_jsenum_Main_ComparableJsEnumSupplierConsumerImplWithOverrides@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 (param $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (call $$ctor__void_$p_jsenum_Main_SupplierConsumerImpl@jsenum.Main.SupplierConsumerImpl (ref.as_non_null (local.get $this)))
 )
)

;;; void ComparableJsEnumSupplierConsumerImplWithOverrides.accept(ComparableJsEnum t)
(func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 (type $function.m_accept__jsenum_Main_ComparableJsEnum__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $t (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:295:16
 (local $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_accept__jsenum_Main_ComparableJsEnum__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)

;;; ComparableJsEnum ComparableJsEnumSupplierConsumerImplWithOverrides.get()
(func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 (type $function.m_get__jsenum_Main_ComparableJsEnum)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $jsenum.Main.ComparableJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:298:28
 (local $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:299:6
  (return (ref.null $jsenum.Main.ComparableJsEnum))
 )
)
(elem declare func $m_get__jsenum_Main_ComparableJsEnum@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)

;;; ComparableJsEnum ComparableJsEnumSupplierConsumerImplWithOverrides.get()
(func $m_get__java_lang_Object@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 (type $function.m_get__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
 (local $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (return (call_ref $function.m_get__jsenum_Main_ComparableJsEnum (ref.as_non_null (local.get $this))(struct.get $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.vtable $m_get__jsenum_Main_ComparableJsEnum (struct.get $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides $vtable(local.get $this)))))
 )
)
(elem declare func $m_get__java_lang_Object@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)

;;; void ComparableJsEnumSupplierConsumerImplWithOverrides.accept(T arg0)
(func $m_accept__java_lang_Object__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 (type $function.m_accept__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
 (local $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (call_ref $function.m_accept__jsenum_Main_ComparableJsEnum__void (ref.as_non_null (local.get $this))(ref.cast (ref null $jsenum.Main.ComparableJsEnum) (local.get $arg0))(struct.get $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides.vtable $m_accept__jsenum_Main_ComparableJsEnum__void (struct.get $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides $vtable(local.get $this))))
 )
)
(elem declare func $m_accept__java_lang_Object__void@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)

;;; void ComparableJsEnumSupplierConsumerImplWithOverrides.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (if (global.get $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (global.set $$class-initialized@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:292:15
  (call $$clinit__void_<once>_@jsenum.Main.SupplierConsumerImpl )
 )
)

;;; Class<T> ComparableJsEnumSupplierConsumerImplWithOverrides.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)))
   (then
    (return (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
   )
  )
  (global.set $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SupplierConsumerImpl )))
  (return (global.get $$class@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 )
)

;;; Class<?> ComparableJsEnumSupplierConsumerImplWithOverrides.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides))
 (local.set $this (ref.cast (ref $jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.ComparableJsEnumSupplierConsumerImplWithOverrides)

;;; Code for jsenum.Main.SomeJsEnum [methods]

;;; SomeJsEnum SomeJsEnum.$create(String $name, int $ordinal)
(func $$create__java_lang_String__int@jsenum.Main.SomeJsEnum
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (result (ref null $jsenum.Main.SomeJsEnum))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
 (local $$instance (ref null $jsenum.Main.SomeJsEnum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (local.set $$instance (struct.new $jsenum.Main.SomeJsEnum (global.get $jsenum.Main.SomeJsEnum.vtable) (global.get $jsenum.Main.SomeJsEnum.itable) (i32.const 0) (ref.null $java.lang.String) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (call $$ctor__java_lang_String__int__void_$p_jsenum_Main_SomeJsEnum@jsenum.Main.SomeJsEnum (ref.as_non_null (local.get $$instance))(local.get $$name)(local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (return (local.get $$instance))
 )
)

;;; void SomeJsEnum.$ctor(String $name, int $ordinal)
(func $$ctor__java_lang_String__int__void_$p_jsenum_Main_SomeJsEnum@jsenum.Main.SomeJsEnum
 (param $this (ref null $jsenum.Main.SomeJsEnum))
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (struct.set $java.lang.Enum $name@java.lang.Enum (local.get $this) (local.get $$name))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (struct.set $java.lang.Enum $ordinal@java.lang.Enum (local.get $this) (local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (call $$ctor__java_lang_String__int__void_$p_java_lang_Enum@java.lang.Enum (ref.as_non_null (local.get $this))(local.get $$name)(local.get $$ordinal))
 )
)

;;; void SomeJsEnum.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.SomeJsEnum
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (if (global.get $$class-initialized@jsenum.Main.SomeJsEnum)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (global.set $$class-initialized@jsenum.Main.SomeJsEnum (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:304:14
  (call $$clinit__void_<once>_@java.lang.Enum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:305:4
  (global.set $A@jsenum.Main.SomeJsEnum (call $$create__java_lang_String__int@jsenum.Main.SomeJsEnum (ref.null $java.lang.String)(i32.const 0)))
 )
)

;;; Class<T> SomeJsEnum.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SomeJsEnum
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.SomeJsEnum)))
   (then
    (return (global.get $$class@jsenum.Main.SomeJsEnum))
   )
  )
  (global.set $$class@jsenum.Main.SomeJsEnum (call $m_createForEnum__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.SomeJsEnum )))
  (return (global.get $$class@jsenum.Main.SomeJsEnum))
 )
)

;;; Class<?> SomeJsEnum.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.SomeJsEnum
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.SomeJsEnum))
 (local.set $this (ref.cast (ref $jsenum.Main.SomeJsEnum) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SomeJsEnum ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.SomeJsEnum)

;;; Code for jsenum.Main.SubtypeVarargs [methods]

;;; SubtypeVarargs SubtypeVarargs.$create()
(func $$create__@jsenum.Main.SubtypeVarargs
 (result (ref null $jsenum.Main.SubtypeVarargs))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:317:4
 (local $$instance (ref null $jsenum.Main.SubtypeVarargs))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:317:4
  (local.set $$instance (struct.new $jsenum.Main.SubtypeVarargs (global.get $jsenum.Main.SubtypeVarargs.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:317:4
  (call $$ctor__void_$p_jsenum_Main_SubtypeVarargs@jsenum.Main.SubtypeVarargs (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:317:4
  (return (local.get $$instance))
 )
)

;;; void SubtypeVarargs.$ctor()
(func $$ctor__void_$p_jsenum_Main_SubtypeVarargs@jsenum.Main.SubtypeVarargs
 (param $this (ref null $jsenum.Main.SubtypeVarargs))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:317:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:318:6
  (call $$ctor__arrayOf_java_lang_Object__void_$p_jsenum_Main_BaseVarargs@jsenum.Main.BaseVarargs (ref.as_non_null (local.get $this))(call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (block (result (ref null $jsenum.Main.SomeJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.SomeJsEnum )
   (global.get $A@jsenum.Main.SomeJsEnum)
  )(block (result (ref null $jsenum.Main.SomeJsEnum))
   (call $$clinit__void_<once>_@jsenum.Main.SomeJsEnum )
   (global.get $A@jsenum.Main.SomeJsEnum)
  ))))
 )
)

;;; void SubtypeVarargs.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.SubtypeVarargs
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:316:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:316:23
  (if (global.get $$class-initialized@jsenum.Main.SubtypeVarargs)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:316:23
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:316:23
  (global.set $$class-initialized@jsenum.Main.SubtypeVarargs (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:316:23
  (call $$clinit__void_<once>_@jsenum.Main.BaseVarargs )
 )
)

;;; Class<T> SubtypeVarargs.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SubtypeVarargs
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.SubtypeVarargs)))
   (then
    (return (global.get $$class@jsenum.Main.SubtypeVarargs))
   )
  )
  (global.set $$class@jsenum.Main.SubtypeVarargs (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.SubtypeVarargs )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.BaseVarargs )))
  (return (global.get $$class@jsenum.Main.SubtypeVarargs))
 )
)

;;; Class<?> SubtypeVarargs.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.SubtypeVarargs
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.SubtypeVarargs))
 (local.set $this (ref.cast (ref $jsenum.Main.SubtypeVarargs) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SubtypeVarargs ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.SubtypeVarargs)

;;; Code for jsenum.Main.SubtypeImplicitVarargs [methods]

;;; SubtypeImplicitVarargs SubtypeImplicitVarargs.$create()
(func $$create__@jsenum.Main.SubtypeImplicitVarargs
 (result (ref null $jsenum.Main.SubtypeImplicitVarargs))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
 (local $$instance (ref null $jsenum.Main.SubtypeImplicitVarargs))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
  (local.set $$instance (struct.new $jsenum.Main.SubtypeImplicitVarargs (global.get $jsenum.Main.SubtypeImplicitVarargs.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
  (call $$ctor__void_$p_jsenum_Main_SubtypeImplicitVarargs@jsenum.Main.SubtypeImplicitVarargs (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
  (return (local.get $$instance))
 )
)

;;; void SubtypeImplicitVarargs.$ctor()
(func $$ctor__void_$p_jsenum_Main_SubtypeImplicitVarargs@jsenum.Main.SubtypeImplicitVarargs
 (param $this (ref null $jsenum.Main.SubtypeImplicitVarargs))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
  (call $$ctor__arrayOf_java_lang_Object__void_$p_jsenum_Main_BaseVarargs@jsenum.Main.BaseVarargs (ref.as_non_null (local.get $this))(call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 0 )))
 )
)

;;; void SubtypeImplicitVarargs.$clinit()
(func $$clinit__void_<once>_@jsenum.Main.SubtypeImplicitVarargs
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
  (if (global.get $$class-initialized@jsenum.Main.SubtypeImplicitVarargs)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
  (global.set $$class-initialized@jsenum.Main.SubtypeImplicitVarargs (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsenum/readable-j2wasm.js/jsenum/Main.java:322:23
  (call $$clinit__void_<once>_@jsenum.Main.BaseVarargs )
 )
)

;;; Class<T> SubtypeImplicitVarargs.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SubtypeImplicitVarargs
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsenum.Main.SubtypeImplicitVarargs)))
   (then
    (return (global.get $$class@jsenum.Main.SubtypeImplicitVarargs))
   )
  )
  (global.set $$class@jsenum.Main.SubtypeImplicitVarargs (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsenum.Main_...|__java_lang_String_<once>_@jsenum.Main.SubtypeImplicitVarargs )(call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.BaseVarargs )))
  (return (global.get $$class@jsenum.Main.SubtypeImplicitVarargs))
 )
)

;;; Class<?> SubtypeImplicitVarargs.$getClassImpl()
(func $$getClassImpl__java_lang_Class@jsenum.Main.SubtypeImplicitVarargs
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $jsenum.Main.SubtypeImplicitVarargs))
 (local.set $this (ref.cast (ref $jsenum.Main.SubtypeImplicitVarargs) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@jsenum.Main.SubtypeImplicitVarargs ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@jsenum.Main.SubtypeImplicitVarargs)
