;;; Code for cast.CastGenerics.A [type definition]
(type $cast.CastGenerics.A.vtable (sub (struct
 (field $m_mA__void (ref $function.m_mA__void))
 ))
)

;;; Code for cast.CastGenerics.B [type definition]
(type $cast.CastGenerics.B.vtable (sub (struct
 (field $m_mB__void (ref $function.m_mB__void))
 ))
)

;;; Code for cast.CastGenerics.Empty1 [type definition]
(type $cast.CastGenerics.Empty1.vtable (sub (struct
 ))
)

;;; Code for cast.CastGenerics.Empty2 [type definition]
(type $cast.CastGenerics.Empty2.vtable (sub (struct
 ))
)

;;; Code for cast.CastGenerics [type definition]
(type $cast.CastGenerics.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_method__java_lang_Object_$pp_cast (ref $function.m_method__java_lang_Object_$pp_cast))
 (field $m_method__java_lang_Object__cast_CastGenerics_Empty1 (ref $function.m_method__java_lang_Object__cast_CastGenerics_Empty1))
 (field $m_outerGenericMethod__void (ref $function.m_outerGenericMethod__void))
 (field $m_testCastToMethodTypeVariable__void (ref $function.m_testCastToMethodTypeVariable__void))
 (field $m_testCastToRawToGeneric__cast_CastGenerics_Foo__cast_CastGenerics_Foo (ref $function.m_testCastToRawToGeneric__cast_CastGenerics_Foo__cast_CastGenerics_Foo))
 (field $m_testCastToTypeVariable__void (ref $function.m_testCastToTypeVariable__void))
 ))
)
(type $cast.CastGenerics (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastGenerics.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $field@cast.CastGenerics (mut (ref null $java.lang.Object)))
 ))
)

;;; Code for cast.CastGenerics.A.$LambdaAdaptor [type definition]
(type $cast.CastGenerics.A.$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_mA__void (ref $function.m_mA__void))
 ))
)
(type $cast.CastGenerics.A.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastGenerics.A.$LambdaAdaptor.vtable))
 (field $itable (ref $cast.CastGenerics.A.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastGenerics.B.$LambdaAdaptor [type definition]
(type $cast.CastGenerics.B.$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_mB__void (ref $function.m_mB__void))
 ))
)
(type $cast.CastGenerics.B.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastGenerics.B.$LambdaAdaptor.vtable))
 (field $itable (ref $cast.CastGenerics.B.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastGenerics.BaseImplementor [type definition]
(type $cast.CastGenerics.BaseImplementor.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_mA__void (ref $function.m_mA__void))
 (field $m_mB__void (ref $function.m_mB__void))
 ))
)
(type $cast.CastGenerics.BaseImplementor (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastGenerics.BaseImplementor.vtable))
 (field $itable (ref $cast.CastGenerics.BaseImplementor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastGenerics.Container [type definition]
(type $cast.CastGenerics.Container.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_$pp_cast (ref $function.m_get__java_lang_Object_$pp_cast))
 ))
)
(type $cast.CastGenerics.Container (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastGenerics.Container.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastGenerics.NullMarkedContainer [type definition]
(type $cast.CastGenerics.NullMarkedContainer.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_$pp_cast (ref $function.m_get__java_lang_Object_$pp_cast))
 ))
)
(type $cast.CastGenerics.NullMarkedContainer (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastGenerics.NullMarkedContainer.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $value@cast.CastGenerics.NullMarkedContainer (mut (ref null $java.lang.Object)))
 ))
)

;;; Code for cast.CastGenerics.Foo [type definition]
(type $cast.CastGenerics.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 $cast.CastGenerics.Foo (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastGenerics.Foo.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastGenerics.1Nested [type definition]
(type $cast.CastGenerics.1Nested.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 $cast.CastGenerics.1Nested (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastGenerics.1Nested.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@cast.CastGenerics.1Nested (mut (ref null $cast.CastGenerics)))
 ))
)

;;; Code for cast.CastPrimitives [type definition]
(type $cast.CastPrimitives.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_testImplicitArgumentCasts__void (ref $function.m_testImplicitArgumentCasts__void))
 (field $m_testImplicitArrayIndexCasts__arrayOf_byte__void (ref $function.m_testImplicitArrayIndexCasts__arrayOf_byte__void))
 (field $m_testImplicitLongAssignmentCasts__void (ref $function.m_testImplicitLongAssignmentCasts__void))
 (field $m_testLiteralToPrimitive__void (ref $function.m_testLiteralToPrimitive__void))
 (field $m_testPrimitiveCasts__void (ref $function.m_testPrimitiveCasts__void))
 (field $m_testReferenceToPrimitive__void (ref $function.m_testReferenceToPrimitive__void))
 (field $m_testUnboxAndWiden__void (ref $function.m_testUnboxAndWiden__void))
 ))
)
(type $cast.CastPrimitives (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastPrimitives.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastPrimitives.IntValueHolder [type definition]
(type $cast.CastPrimitives.IntValueHolder.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 $cast.CastPrimitives.IntValueHolder (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastPrimitives.IntValueHolder.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastPrimitives.LongValueHolder [type definition]
(type $cast.CastPrimitives.LongValueHolder.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 $cast.CastPrimitives.LongValueHolder (sub $java.lang.Object (struct
 (field $vtable (ref $cast.CastPrimitives.LongValueHolder.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.Casts [type definition]
(type $cast.Casts.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_testCasToInterface__void (ref $function.m_testCasToInterface__void))
 (field $m_testCaseMethodAfterInstanceOf__void (ref $function.m_testCaseMethodAfterInstanceOf__void))
 (field $m_testCastFieldAfterInstanceOf__void (ref $function.m_testCastFieldAfterInstanceOf__void))
 (field $m_testCastToArray__void (ref $function.m_testCastToArray__void))
 (field $m_testCastToBoxedType__void (ref $function.m_testCastToBoxedType__void))
 (field $m_testCastToClass__void (ref $function.m_testCastToClass__void))
 (field $m_testCastVariableAfterInstanceOf__void (ref $function.m_testCastVariableAfterInstanceOf__void))
 (field $m_testPrecedence__void (ref $function.m_testPrecedence__void))
 ))
)
(type $cast.Casts (sub $java.lang.Object (struct
 (field $vtable (ref $cast.Casts.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.Casts.Foo [type definition]
(type $cast.Casts.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))
 (field $m_method__java_lang_Object (ref $function.m_method__java_lang_Object))
 ))
)
(type $cast.Casts.Foo (sub $java.lang.Object (struct
 (field $vtable (ref $cast.Casts.Foo.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@cast.Casts.Foo (mut (ref null $cast.Casts)))
 (field $field@cast.Casts.Foo (mut (ref null $java.lang.Object)))
 ))
)

;;; Code for cast.CastGenerics.1 [type definition]
(type $cast.CastGenerics.1.vtable (sub $cast.CastGenerics.Foo.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 $cast.CastGenerics.1 (sub $cast.CastGenerics.Foo (struct
 (field $vtable (ref $cast.CastGenerics.1.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastGenerics.Implementor [type definition]
(type $cast.CastGenerics.Implementor.vtable (sub $cast.CastGenerics.BaseImplementor.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_mA__void (ref $function.m_mA__void))
 (field $m_mB__void (ref $function.m_mB__void))
 ))
)
(type $cast.CastGenerics.Implementor (sub $cast.CastGenerics.BaseImplementor (struct
 (field $vtable (ref $cast.CastGenerics.Implementor.vtable))
 (field $itable (ref $cast.CastGenerics.Implementor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for cast.CastGenerics.A [imports]

;;; Code for cast.CastGenerics.B [imports]

;;; Code for cast.CastGenerics.Empty1 [imports]

;;; Code for cast.CastGenerics.Empty2 [imports]

;;; Code for cast.CastGenerics [imports]

;;; Code for cast.CastGenerics.A.$LambdaAdaptor [imports]

;;; Code for cast.CastGenerics.B.$LambdaAdaptor [imports]

;;; Code for cast.CastGenerics.BaseImplementor [imports]

;;; Code for cast.CastGenerics.Container [imports]

;;; Code for cast.CastGenerics.NullMarkedContainer [imports]

;;; Code for cast.CastGenerics.Foo [imports]

;;; Code for cast.CastGenerics.1Nested [imports]

;;; Code for cast.CastPrimitives [imports]

;;; Code for cast.CastPrimitives.IntValueHolder [imports]

;;; Code for cast.CastPrimitives.LongValueHolder [imports]

;;; Code for cast.Casts [imports]

;;; Code for cast.Casts.Foo [imports]

;;; Code for cast.CastGenerics.1 [imports]

;;; Code for cast.CastGenerics.Implementor [imports]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

;;; Code for cast.CastGenerics [vtable.init]
(global $cast.CastGenerics.vtable (ref $cast.CastGenerics.vtable)
 (struct.new $cast.CastGenerics.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastGenerics)
  (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_method__java_lang_Object_$pp_cast@cast.CastGenerics)
  (ref.func $m_method__java_lang_Object__cast_CastGenerics_Empty1@cast.CastGenerics)
  (ref.func $m_outerGenericMethod__void@cast.CastGenerics)
  (ref.func $m_testCastToMethodTypeVariable__void@cast.CastGenerics)
  (ref.func $m_testCastToRawToGeneric__cast_CastGenerics_Foo__cast_CastGenerics_Foo@cast.CastGenerics)
  (ref.func $m_testCastToTypeVariable__void@cast.CastGenerics)
 )
)

;;; Code for cast.CastGenerics.1 [vtable.init]
(global $cast.CastGenerics.1.vtable (ref $cast.CastGenerics.1.vtable)
 (struct.new $cast.CastGenerics.1.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastGenerics.1)
  (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 cast.CastGenerics.Implementor [vtable.init]
(global $cast.CastGenerics.Implementor.vtable (ref $cast.CastGenerics.Implementor.vtable)
 (struct.new $cast.CastGenerics.Implementor.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastGenerics.Implementor)
  (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_mA__void@cast.CastGenerics.Implementor)
  (ref.func $m_mB__void@cast.CastGenerics.Implementor)
 )
)
(global $cast.CastGenerics.A.vtable@$cast.CastGenerics.Implementor (ref $cast.CastGenerics.A.vtable)
 (struct.new $cast.CastGenerics.A.vtable
  (ref.func $m_mA__void@cast.CastGenerics.Implementor)
 )
)
(global $cast.CastGenerics.B.vtable@$cast.CastGenerics.Implementor (ref $cast.CastGenerics.B.vtable)
 (struct.new $cast.CastGenerics.B.vtable
  (ref.func $m_mB__void@cast.CastGenerics.Implementor)
 )
)

;;; Code for cast.CastGenerics.Container [vtable.init]
(global $cast.CastGenerics.Container.vtable (ref $cast.CastGenerics.Container.vtable)
 (struct.new $cast.CastGenerics.Container.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastGenerics.Container)
  (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_$pp_cast@cast.CastGenerics.Container)
 )
)

;;; Code for cast.CastGenerics.NullMarkedContainer [vtable.init]
(global $cast.CastGenerics.NullMarkedContainer.vtable (ref $cast.CastGenerics.NullMarkedContainer.vtable)
 (struct.new $cast.CastGenerics.NullMarkedContainer.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastGenerics.NullMarkedContainer)
  (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_$pp_cast@cast.CastGenerics.NullMarkedContainer)
 )
)

;;; Code for cast.CastGenerics.Foo [vtable.init]
(global $cast.CastGenerics.Foo.vtable (ref $cast.CastGenerics.Foo.vtable)
 (struct.new $cast.CastGenerics.Foo.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastGenerics.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 cast.CastGenerics.1Nested [vtable.init]
(global $cast.CastGenerics.1Nested.vtable (ref $cast.CastGenerics.1Nested.vtable)
 (struct.new $cast.CastGenerics.1Nested.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastGenerics.1Nested)
  (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 cast.CastPrimitives [vtable.init]
(global $cast.CastPrimitives.vtable (ref $cast.CastPrimitives.vtable)
 (struct.new $cast.CastPrimitives.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastPrimitives)
  (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_testImplicitArgumentCasts__void@cast.CastPrimitives)
  (ref.func $m_testImplicitArrayIndexCasts__arrayOf_byte__void@cast.CastPrimitives)
  (ref.func $m_testImplicitLongAssignmentCasts__void@cast.CastPrimitives)
  (ref.func $m_testLiteralToPrimitive__void@cast.CastPrimitives)
  (ref.func $m_testPrimitiveCasts__void@cast.CastPrimitives)
  (ref.func $m_testReferenceToPrimitive__void@cast.CastPrimitives)
  (ref.func $m_testUnboxAndWiden__void@cast.CastPrimitives)
 )
)

;;; Code for cast.CastPrimitives.IntValueHolder [vtable.init]
(global $cast.CastPrimitives.IntValueHolder.vtable (ref $cast.CastPrimitives.IntValueHolder.vtable)
 (struct.new $cast.CastPrimitives.IntValueHolder.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastPrimitives.IntValueHolder)
  (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 cast.CastPrimitives.LongValueHolder [vtable.init]
(global $cast.CastPrimitives.LongValueHolder.vtable (ref $cast.CastPrimitives.LongValueHolder.vtable)
 (struct.new $cast.CastPrimitives.LongValueHolder.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.CastPrimitives.LongValueHolder)
  (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 cast.Casts [vtable.init]
(global $cast.Casts.vtable (ref $cast.Casts.vtable)
 (struct.new $cast.Casts.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.Casts)
  (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_testCasToInterface__void@cast.Casts)
  (ref.func $m_testCaseMethodAfterInstanceOf__void@cast.Casts)
  (ref.func $m_testCastFieldAfterInstanceOf__void@cast.Casts)
  (ref.func $m_testCastToArray__void@cast.Casts)
  (ref.func $m_testCastToBoxedType__void@cast.Casts)
  (ref.func $m_testCastToClass__void@cast.Casts)
  (ref.func $m_testCastVariableAfterInstanceOf__void@cast.Casts)
  (ref.func $m_testPrecedence__void@cast.Casts)
 )
)

;;; Code for cast.Casts.Foo [vtable.init]
(global $cast.Casts.Foo.vtable (ref $cast.Casts.Foo.vtable)
 (struct.new $cast.Casts.Foo.vtable
  (ref.func $$getClassImpl__java_lang_Class@cast.Casts.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)
  (ref.func $m_method__java_lang_Object@cast.Casts.Foo)
 )
)

;;; Code for cast.CastGenerics.A [methods]

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

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

;;; Code for cast.CastGenerics.B [methods]

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

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

;;; Code for cast.CastGenerics.Empty1 [methods]

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

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

;;; Code for cast.CastGenerics.Empty2 [methods]

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

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

;;; Code for cast.CastGenerics [methods]

;;; CastGenerics<T, E> CastGenerics.$create()
(func $$create__@cast.CastGenerics
 (result (ref null $cast.CastGenerics))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:21:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:21:13
  (call $$clinit__void_<once>_@cast.CastGenerics )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:21:13
  (return (call $$create_$private__@cast.CastGenerics ))
 )
)

;;; CastGenerics<T, E> CastGenerics.$create_$private()
(func $$create_$private__@cast.CastGenerics
 (result (ref null $cast.CastGenerics))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:21:13
 (local $$instance (ref null $cast.CastGenerics))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:21:13
  (local.set $$instance (struct.new $cast.CastGenerics (global.get $cast.CastGenerics.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:21:13
  (call $$ctor__void_$p_cast_CastGenerics@cast.CastGenerics (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:21:13
  (return (local.get $$instance))
 )
)

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

;;; T CastGenerics.method()
(func $m_method__java_lang_Object_$pp_cast@cast.CastGenerics
 (type $function.m_method__java_lang_Object_$pp_cast)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:25:4
 (local $this (ref null $cast.CastGenerics))
 (local.set $this (ref.cast (ref $cast.CastGenerics) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:26:4
  (return (ref.null $java.lang.Object))
 )
)
(elem declare func $m_method__java_lang_Object_$pp_cast@cast.CastGenerics)

;;; void CastGenerics.testErasureCast()
(func $m_testErasureCast__void@cast.CastGenerics
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:64:52
 (local $str (ref null $java.lang.String))
 (local $$qualifier (ref null $cast.CastGenerics))
 (local $containerT (ref null $cast.CastGenerics.Container))
 (local $$qualifier_1 (ref null $java.lang.Object))
 (local $$qualifier_2 (ref null $java.lang.Object))
 (local $containerU (ref null $cast.CastGenerics.Container))
 (local $$qualifier_3 (ref null $java.lang.Object))
 (local $$qualifier_4 (ref null $java.lang.Object))
 (local $containerArrT (ref null $cast.CastGenerics.Container))
 (local $arrT (ref null $javaemul.internal.WasmArray.OfObject))
 (local $$qualifier_5 (ref null $java.lang.Object))
 (local $$qualifier_6 (ref null $java.lang.Object))
 (local $arrA (ref null $javaemul.internal.WasmArray.OfObject))
 (local $arrB (ref null $javaemul.internal.WasmArray.OfObject))
 (local $containerArrU (ref null $cast.CastGenerics.Container))
 (local $arrU (ref null $javaemul.internal.WasmArray.OfObject))
 (local $$qualifier_7 (ref null $java.lang.Object))
 (local $$qualifier_8 (ref null $java.lang.Object))
 (local $containerBase (ref null $cast.CastGenerics.Container))
 (local $$qualifier_9 (ref null $cast.CastGenerics.BaseImplementor))
 (local $$qualifier_10 (ref null $cast.CastGenerics.BaseImplementor))
 (local $containerImplementor (ref null $cast.CastGenerics.Container))
 (local $$qualifier_11 (ref null $cast.CastGenerics.Implementor))
 (local $$qualifier_12 (ref null $cast.CastGenerics.Implementor))
 (local $strictlyA (ref null $cast.CastGenerics.Container))
 (local $oA (ref null $java.lang.Object))
 (local $a (ref null $java.lang.Object))
 (local $extendsA (ref null $cast.CastGenerics.Container))
 (local $superA (ref null $cast.CastGenerics.Container))
 (local $strictlyString (ref null $cast.CastGenerics.Container))
 (local $extendsString (ref null $cast.CastGenerics.Container))
 (local $superString (ref null $cast.CastGenerics.Container))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:64:70
  (call $$clinit__void_<once>_@cast.CastGenerics )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:65:4
  (local.set $str (ref.cast (ref null $java.lang.String) (struct.get $cast.CastGenerics $field@cast.CastGenerics (call $$create_$private__@cast.CastGenerics ))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:66:4
  (local.set $str (ref.cast (ref null $java.lang.String) (block (result (ref null $java.lang.Object))
   (local.set $$qualifier (call $$create_$private__@cast.CastGenerics ))
   (call_ref $function.m_method__java_lang_Object_$pp_cast (ref.as_non_null (local.get $$qualifier))(struct.get $cast.CastGenerics.vtable $m_method__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics $vtable(local.get $$qualifier))))
  )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:68:4
  (local.set $containerT (ref.null $cast.CastGenerics.Container))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:69:4
   (local.set $$qualifier_1 (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerT))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerT)))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:69:4
   (call_ref $function.m_mA__void (ref.as_non_null (local.get $$qualifier_1))(struct.get $cast.CastGenerics.A.vtable $m_mA__void (ref.cast (ref $cast.CastGenerics.A.vtable) (call $get.itable.$cast.CastGenerics.A (local.get $$qualifier_1)))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:70:4
   (local.set $$qualifier_2 (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerT))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerT)))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:70:4
   (call_ref $function.m_mB__void (ref.as_non_null (local.get $$qualifier_2))(struct.get $cast.CastGenerics.B.vtable $m_mB__void (ref.cast (ref $cast.CastGenerics.B.vtable) (call $get.itable.$cast.CastGenerics.B (local.get $$qualifier_2)))))
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:72:4
  (local.set $containerU (ref.null $cast.CastGenerics.Container))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:73:4
   (local.set $$qualifier_3 (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerU))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerU)))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:73:4
   (call_ref $function.m_mA__void (ref.as_non_null (local.get $$qualifier_3))(struct.get $cast.CastGenerics.A.vtable $m_mA__void (ref.cast (ref $cast.CastGenerics.A.vtable) (call $get.itable.$cast.CastGenerics.A (local.get $$qualifier_3)))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:74:4
   (local.set $$qualifier_4 (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerU))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerU)))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:74:4
   (call_ref $function.m_mB__void (ref.as_non_null (local.get $$qualifier_4))(struct.get $cast.CastGenerics.B.vtable $m_mB__void (ref.cast (ref $cast.CastGenerics.B.vtable) (call $get.itable.$cast.CastGenerics.B (local.get $$qualifier_4)))))
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:76:4
  (local.set $containerArrT (ref.null $cast.CastGenerics.Container))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:77:4
  (local.set $arrT (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerArrT))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerArrT))))))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:78:4
   (local.set $$qualifier_5 (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arrT)) (i32.const 0)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:78:4
   (call_ref $function.m_mA__void (ref.as_non_null (local.get $$qualifier_5))(struct.get $cast.CastGenerics.A.vtable $m_mA__void (ref.cast (ref $cast.CastGenerics.A.vtable) (call $get.itable.$cast.CastGenerics.A (local.get $$qualifier_5)))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:79:4
   (local.set $$qualifier_6 (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arrT)) (i32.const 0)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:79:4
   (call_ref $function.m_mB__void (ref.as_non_null (local.get $$qualifier_6))(struct.get $cast.CastGenerics.B.vtable $m_mB__void (ref.cast (ref $cast.CastGenerics.B.vtable) (call $get.itable.$cast.CastGenerics.B (local.get $$qualifier_6)))))
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:81:4
  (local.set $arrA (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerArrT))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerArrT))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:82:4
  (local.set $arrB (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerArrT))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerArrT))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:84:4
  (local.set $containerArrU (ref.null $cast.CastGenerics.Container))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:85:4
  (local.set $arrU (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerArrU))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerArrU))))))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:86:4
   (local.set $$qualifier_7 (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arrU)) (i32.const 0)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:86:4
   (call_ref $function.m_mA__void (ref.as_non_null (local.get $$qualifier_7))(struct.get $cast.CastGenerics.A.vtable $m_mA__void (ref.cast (ref $cast.CastGenerics.A.vtable) (call $get.itable.$cast.CastGenerics.A (local.get $$qualifier_7)))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:87:4
   (local.set $$qualifier_8 (array.get $java.lang.Object.array (struct.get $javaemul.internal.WasmArray.OfObject $elements@javaemul.internal.WasmArray.OfObject (local.get $arrU)) (i32.const 0)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:87:4
   (call_ref $function.m_mB__void (ref.as_non_null (local.get $$qualifier_8))(struct.get $cast.CastGenerics.B.vtable $m_mB__void (ref.cast (ref $cast.CastGenerics.B.vtable) (call $get.itable.$cast.CastGenerics.B (local.get $$qualifier_8)))))
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:89:4
  (local.set $arrA (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerArrU))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerArrU))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:90:4
  (local.set $arrB (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerArrU))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerArrU))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:92:4
  (local.set $containerBase (ref.null $cast.CastGenerics.Container))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:93:4
   (local.set $$qualifier_9 (ref.cast (ref null $cast.CastGenerics.BaseImplementor) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerBase))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerBase))))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:93:4
   (call_ref $function.m_mA__void (ref.as_non_null (local.get $$qualifier_9))(struct.get $cast.CastGenerics.BaseImplementor.vtable $m_mA__void (struct.get $cast.CastGenerics.BaseImplementor $vtable(local.get $$qualifier_9))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:94:4
   (local.set $$qualifier_10 (ref.cast (ref null $cast.CastGenerics.BaseImplementor) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerBase))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerBase))))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:94:4
   (call_ref $function.m_mB__void (ref.as_non_null (local.get $$qualifier_10))(struct.get $cast.CastGenerics.BaseImplementor.vtable $m_mB__void (struct.get $cast.CastGenerics.BaseImplementor $vtable(local.get $$qualifier_10))))
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:96:4
  (local.set $containerImplementor (ref.null $cast.CastGenerics.Container))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:97:4
   (local.set $$qualifier_11 (ref.cast (ref null $cast.CastGenerics.Implementor) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerImplementor))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerImplementor))))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:97:4
   (call_ref $function.m_mA__void (ref.as_non_null (local.get $$qualifier_11))(struct.get $cast.CastGenerics.Implementor.vtable $m_mA__void (struct.get $cast.CastGenerics.Implementor $vtable(local.get $$qualifier_11))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:98:4
   (local.set $$qualifier_12 (ref.cast (ref null $cast.CastGenerics.Implementor) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $containerImplementor))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $containerImplementor))))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:98:4
   (call_ref $function.m_mB__void (ref.as_non_null (local.get $$qualifier_12))(struct.get $cast.CastGenerics.Implementor.vtable $m_mB__void (struct.get $cast.CastGenerics.Implementor $vtable(local.get $$qualifier_12))))
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:100:4
  (local.set $strictlyA (ref.null $cast.CastGenerics.Container))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:101:4
  (local.set $oA (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $strictlyA))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $strictlyA)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:102:4
  (local.set $a (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $strictlyA))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $strictlyA)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:104:4
  (local.set $extendsA (ref.null $cast.CastGenerics.Container))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:105:4
  (local.set $oA (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $extendsA))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $extendsA)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:106:4
  (local.set $a (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $extendsA))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $extendsA)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:108:4
  (local.set $superA (ref.null $cast.CastGenerics.Container))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:109:4
  (local.set $oA (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $superA))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $superA)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:111:4
  (local.set $strictlyString (ref.null $cast.CastGenerics.Container))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:112:4
  (local.set $str (ref.cast (ref null $java.lang.String) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $strictlyString))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $strictlyString))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:114:4
  (local.set $extendsString (ref.null $cast.CastGenerics.Container))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:115:4
  (local.set $str (ref.cast (ref null $java.lang.String) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $extendsString))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $extendsString))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:117:4
  (local.set $superString (ref.null $cast.CastGenerics.Container))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:118:4
  (local.set $oA (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $superString))(struct.get $cast.CastGenerics.Container.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.Container $vtable(local.get $superString)))))
 )
)

;;; void CastGenerics.testErasureCastInNullMarkedCode()
(func $m_testErasureCastInNullMarkedCode__void@cast.CastGenerics
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:122:21
 (local $container (ref null $cast.CastGenerics.NullMarkedContainer))
 (local $s (ref null $java.lang.String))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:122:55
  (call $$clinit__void_<once>_@cast.CastGenerics )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:123:4
  (local.set $container (call $$create__java_lang_Object@cast.CastGenerics.NullMarkedContainer (call $$getString_|abc|__java_lang_String_<once>_@cast.CastGenerics )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:124:4
  (local.set $s (ref.cast (ref null $java.lang.String) (call_ref $function.m_get__java_lang_Object_$pp_cast (ref.as_non_null (local.get $container))(struct.get $cast.CastGenerics.NullMarkedContainer.vtable $m_get__java_lang_Object_$pp_cast (struct.get $cast.CastGenerics.NullMarkedContainer $vtable(local.get $container))))))
 )
)

;;; void CastGenerics.testCastToParamterizedType()
(func $m_testCastToParamterizedType__void@cast.CastGenerics
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:127:21
 (local $o (ref null $java.lang.Object))
 (local $cc (ref null $cast.CastGenerics))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:127:50
  (call $$clinit__void_<once>_@cast.CastGenerics )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:128:4
  (local.set $o (call $$create__int@java.lang.Integer (i32.const 1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:129:4
  (local.set $cc (ref.cast (ref null $cast.CastGenerics) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:130:4
  (local.set $cc (ref.cast (ref null $cast.CastGenerics) (local.get $o)))
 )
)

;;; void CastGenerics.testCastToTypeVariable()
(func $m_testCastToTypeVariable__void@cast.CastGenerics
 (type $function.m_testCastToTypeVariable__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:133:14
 (local $o (ref null $java.lang.Object))
 (local $e (ref null $java.lang.Number))
 (local $t (ref null $java.lang.Object))
 (local $es (ref null $javaemul.internal.WasmArray.OfObject))
 (local $ts (ref null $javaemul.internal.WasmArray.OfObject))
 (local $this (ref null $cast.CastGenerics))
 (local.set $this (ref.cast (ref $cast.CastGenerics) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:134:4
  (local.set $o (call $$create__int@java.lang.Integer (i32.const 1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:135:4
  (local.set $e (ref.cast (ref null $java.lang.Number) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:136:4
  (local.set $t (local.get $o))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:137:4
  (local.set $es (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:138:4
  (local.set $ts (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (local.get $o)))
 )
)
(elem declare func $m_testCastToTypeVariable__void@cast.CastGenerics)

;;; void CastGenerics.testCastToMethodTypeVariable()
(func $m_testCastToMethodTypeVariable__void@cast.CastGenerics
 (type $function.m_testCastToMethodTypeVariable__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:141:37
 (local $o (ref null $java.lang.Object))
 (local $s (ref null $java.lang.Object))
 (local $c (ref null $java.lang.Object))
 (local $this (ref null $cast.CastGenerics))
 (local.set $this (ref.cast (ref $cast.CastGenerics) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:142:4
  (local.set $o (call $$create__int@java.lang.Integer (i32.const 1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:143:4
  (local.set $s (local.get $o))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:144:4
  (local.set $c (ref.cast (ref null $cast.CastGenerics) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:145:4
  (local.set $c (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:146:4
  (local.set $c (ref.cast (ref null $java.lang.Enum) (local.get $o)))
 )
)
(elem declare func $m_testCastToMethodTypeVariable__void@cast.CastGenerics)

;;; Foo<String> CastGenerics.testCastToRawToGeneric(Foo<Object> foo)
(func $m_testCastToRawToGeneric__cast_CastGenerics_Foo__cast_CastGenerics_Foo@cast.CastGenerics
 (type $function.m_testCastToRawToGeneric__cast_CastGenerics_Foo__cast_CastGenerics_Foo)
 (param $this.untyped (ref $java.lang.Object))
 (param $foo (ref null $cast.CastGenerics.Foo))
 (result (ref null $cast.CastGenerics.Foo))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:149:21
 (local $this (ref null $cast.CastGenerics))
 (local.set $this (ref.cast (ref $cast.CastGenerics) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:150:4
  (return (ref.cast (ref null $cast.CastGenerics.Foo) (ref.cast (ref null $cast.CastGenerics.Foo) (local.get $foo))))
 )
)
(elem declare func $m_testCastToRawToGeneric__cast_CastGenerics_Foo__cast_CastGenerics_Foo@cast.CastGenerics)

;;; void CastGenerics.outerGenericMethod()
(func $m_outerGenericMethod__void@cast.CastGenerics
 (type $function.m_outerGenericMethod__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:157:32
 (local $this (ref null $cast.CastGenerics))
 (local.set $this (ref.cast (ref $cast.CastGenerics) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_outerGenericMethod__void@cast.CastGenerics)

;;; EE CastGenerics.method(Object o)
(func $m_method__java_lang_Object__cast_CastGenerics_Empty1@cast.CastGenerics
 (type $function.m_method__java_lang_Object__cast_CastGenerics_Empty1)
 (param $this.untyped (ref $java.lang.Object))
 (param $o (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:169:45
 (local $this (ref null $cast.CastGenerics))
 (local.set $this (ref.cast (ref $cast.CastGenerics) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:170:4
  (if (if (result i32) (ref.is_null (local.get $o))
    (then (i32.const 0))
    (else 
     (ref.test (ref $cast.CastGenerics.Empty1.vtable) (call $get.itable.$cast.CastGenerics.Empty1 (local.get $o) ))
    )
   )
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:171:6
     (return (local.get $o))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:173:4
  (return (ref.null $java.lang.Object))
 )
)
(elem declare func $m_method__java_lang_Object__cast_CastGenerics_Empty1@cast.CastGenerics)

;;; Foo<T> CastGenerics.doSomething()
(func $m_doSomething__cast_CastGenerics_Foo@cast.CastGenerics
 (result (ref null $cast.CastGenerics.Foo))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:177:27
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:177:41
  (call $$clinit__void_<once>_@cast.CastGenerics )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:4
  (return (call $$create__@cast.CastGenerics.1 ))
 )
)

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

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

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

;;; Code for cast.CastGenerics.A.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_cast_CastGenerics_A_$LambdaAdaptor@cast.CastGenerics.A.$LambdaAdaptor
 (param $this (ref null $cast.CastGenerics.A.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:29:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.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>_@cast.CastGenerics.A.$LambdaAdaptor
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:29:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:29:12
  (if (global.get $$class-initialized@cast.CastGenerics.A.$LambdaAdaptor)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:29:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:29:12
  (global.set $$class-initialized@cast.CastGenerics.A.$LambdaAdaptor (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:29:12
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

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

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

;;; Code for cast.CastGenerics.B.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_cast_CastGenerics_B_$LambdaAdaptor@cast.CastGenerics.B.$LambdaAdaptor
 (param $this (ref null $cast.CastGenerics.B.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:33:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.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>_@cast.CastGenerics.B.$LambdaAdaptor
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:33:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:33:12
  (if (global.get $$class-initialized@cast.CastGenerics.B.$LambdaAdaptor)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:33:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:33:12
  (global.set $$class-initialized@cast.CastGenerics.B.$LambdaAdaptor (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:33:12
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

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

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

;;; Code for cast.CastGenerics.BaseImplementor [methods]

;;; void BaseImplementor.$ctor()
(func $$ctor__void_$p_cast_CastGenerics_BaseImplementor@cast.CastGenerics.BaseImplementor
 (param $this (ref null $cast.CastGenerics.BaseImplementor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:37:32
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:37:32
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for cast.CastGenerics.Container [methods]

;;; Container<T> Container.$create()
(func $$create__@cast.CastGenerics.Container
 (result (ref null $cast.CastGenerics.Container))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:45:23
 (local $$instance (ref null $cast.CastGenerics.Container))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:45:23
  (local.set $$instance (struct.new $cast.CastGenerics.Container (global.get $cast.CastGenerics.Container.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:45:23
  (call $$ctor__void_$p_cast_CastGenerics_Container@cast.CastGenerics.Container (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:45:23
  (return (local.get $$instance))
 )
)

;;; void Container.$ctor()
(func $$ctor__void_$p_cast_CastGenerics_Container@cast.CastGenerics.Container
 (param $this (ref null $cast.CastGenerics.Container))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:45:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:45:23
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; T Container.get()
(func $m_get__java_lang_Object_$pp_cast@cast.CastGenerics.Container
 (type $function.m_get__java_lang_Object_$pp_cast)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:46:6
 (local $this (ref null $cast.CastGenerics.Container))
 (local.set $this (ref.cast (ref $cast.CastGenerics.Container) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:47:6
  (return (ref.null $java.lang.Object))
 )
)
(elem declare func $m_get__java_lang_Object_$pp_cast@cast.CastGenerics.Container)

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

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

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

;;; Code for cast.CastGenerics.NullMarkedContainer [methods]

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

;;; void NullMarkedContainer.$ctor(T value)
(func $$ctor__java_lang_Object__void_$p_cast_CastGenerics_NullMarkedContainer@cast.CastGenerics.NullMarkedContainer
 (param $this (ref null $cast.CastGenerics.NullMarkedContainer))
 (param $value (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:55:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:55:33
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:56:6
  (struct.set $cast.CastGenerics.NullMarkedContainer $value@cast.CastGenerics.NullMarkedContainer (local.get $this) (local.get $value))
 )
)

;;; T NullMarkedContainer.get()
(func $m_get__java_lang_Object_$pp_cast@cast.CastGenerics.NullMarkedContainer
 (type $function.m_get__java_lang_Object_$pp_cast)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:59:6
 (local $this (ref null $cast.CastGenerics.NullMarkedContainer))
 (local.set $this (ref.cast (ref $cast.CastGenerics.NullMarkedContainer) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:60:6
  (return (struct.get $cast.CastGenerics.NullMarkedContainer $value@cast.CastGenerics.NullMarkedContainer (local.get $this)))
 )
)
(elem declare func $m_get__java_lang_Object_$pp_cast@cast.CastGenerics.NullMarkedContainer)

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

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

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

;;; Code for cast.CastGenerics.Foo [methods]

;;; Foo<V> Foo.$create()
(func $$create__@cast.CastGenerics.Foo
 (result (ref null $cast.CastGenerics.Foo))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:181:22
 (local $$instance (ref null $cast.CastGenerics.Foo))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:181:22
  (call $$clinit__void_<once>_@cast.CastGenerics.Foo )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:181:22
  (local.set $$instance (struct.new $cast.CastGenerics.Foo (global.get $cast.CastGenerics.Foo.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:181:22
  (call $$ctor__void_$p_cast_CastGenerics_Foo@cast.CastGenerics.Foo (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:181:22
  (return (local.get $$instance))
 )
)

;;; void Foo.$ctor()
(func $$ctor__void_$p_cast_CastGenerics_Foo@cast.CastGenerics.Foo
 (param $this (ref null $cast.CastGenerics.Foo))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:181:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:181:22
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for cast.CastGenerics.1Nested [methods]

;;; Nested<SS, TT, T, E> Nested.$create(CastGenerics<T, E> $outer_this)
(func $$create__cast_CastGenerics@cast.CastGenerics.1Nested
 (param $$outer_this (ref null $cast.CastGenerics))
 (result (ref null $cast.CastGenerics.1Nested))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:158:10
 (local $$instance (ref null $cast.CastGenerics.1Nested))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:158:10
  (call $$clinit__void_<once>_@cast.CastGenerics.1Nested )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:158:10
  (local.set $$instance (struct.new $cast.CastGenerics.1Nested (global.get $cast.CastGenerics.1Nested.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $cast.CastGenerics)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:158:10
  (call $$ctor__cast_CastGenerics__void_$p_cast_CastGenerics_1Nested@cast.CastGenerics.1Nested (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:158:10
  (return (local.get $$instance))
 )
)

;;; void Nested.$ctor(CastGenerics<T, E> $outer_this)
(func $$ctor__cast_CastGenerics__void_$p_cast_CastGenerics_1Nested@cast.CastGenerics.1Nested
 (param $this (ref null $cast.CastGenerics.1Nested))
 (param $$outer_this (ref null $cast.CastGenerics))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:158:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:158:10
  (struct.set $cast.CastGenerics.1Nested $$outer_this@cast.CastGenerics.1Nested (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:158:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void Nested.nestedGenericMethod(Object o)
(func $m_nestedGenericMethod__java_lang_Object__void_$p_cast_CastGenerics_1Nested@cast.CastGenerics.1Nested
 (param $this (ref null $cast.CastGenerics.1Nested))
 (param $o (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:159:19
 (local $t (ref null $java.lang.Enum))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:160:8
  (local.set $t (ref.cast (ref null $java.lang.Enum) (local.get $o)))
 )
)

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

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

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

;;; Code for cast.CastPrimitives [methods]

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

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

;;; void CastPrimitives.testPrimitiveCasts()
(func $m_testPrimitiveCasts__void@cast.CastPrimitives
 (type $function.m_testPrimitiveCasts__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:19:14
 (local $b i32)
 (local $c i32)
 (local $s i32)
 (local $i i32)
 (local $l i64)
 (local $f f32)
 (local $d f64)
 (local $this (ref null $cast.CastPrimitives))
 (local.set $this (ref.cast (ref $cast.CastPrimitives) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:20:4
  (local.set $b (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:21:4
  (local.set $c (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:22:4
  (local.set $s (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:23:4
  (local.set $i (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:24:4
  (local.set $l (i64.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:25:4
  (local.set $f (f32.const 1.100000023841858))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:26:4
  (local.set $d (f64.const 1.1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:28:4
  (local.set $b (local.get $b))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:29:4
  (local.set $c (call $m_widenByteToChar__byte__int@javaemul.internal.Primitives (local.get $b)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:30:4
  (local.set $s (local.get $b))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:31:4
  (local.set $i (local.get $b))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:32:4
  (local.set $l (i64.extend_i32_s (local.get $b)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:33:4
  (local.set $f (f32.convert_i32_s (local.get $b)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:34:4
  (local.set $d (f64.convert_i32_s (local.get $b)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:36:4
  (local.set $b (i32.extend8_s (local.get $c)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:37:4
  (local.set $c (local.get $c))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:38:4
  (local.set $s (i32.extend16_s (local.get $c)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:39:4
  (local.set $i (local.get $c))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:40:4
  (local.set $l (i64.extend_i32_u (local.get $c)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:41:4
  (local.set $f (f32.convert_i32_u (local.get $c)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:42:4
  (local.set $d (f64.convert_i32_u (local.get $c)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:44:4
  (local.set $b (i32.extend8_s (local.get $s)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:45:4
  (local.set $c (call $m_narrowShortToChar__short__int@javaemul.internal.Primitives (local.get $s)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:46:4
  (local.set $s (local.get $s))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:47:4
  (local.set $i (local.get $s))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:48:4
  (local.set $l (i64.extend_i32_s (local.get $s)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:49:4
  (local.set $f (f32.convert_i32_s (local.get $s)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:50:4
  (local.set $d (f64.convert_i32_s (local.get $s)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:52:4
  (local.set $b (i32.extend8_s (local.get $i)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:53:4
  (local.set $c (call $m_narrowIntToChar__int__int@javaemul.internal.Primitives (local.get $i)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:54:4
  (local.set $s (i32.extend16_s (local.get $i)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:55:4
  (local.set $i (local.get $i))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:56:4
  (local.set $l (i64.extend_i32_s (local.get $i)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:57:4
  (local.set $f (f32.convert_i32_s (local.get $i)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:58:4
  (local.set $d (f64.convert_i32_s (local.get $i)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:60:4
  (local.set $b (call $m_narrowLongToByte__long__int@javaemul.internal.Primitives (local.get $l)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:61:4
  (local.set $c (call $m_narrowLongToChar__long__int@javaemul.internal.Primitives (local.get $l)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:62:4
  (local.set $s (call $m_narrowLongToShort__long__int@javaemul.internal.Primitives (local.get $l)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:63:4
  (local.set $i (i32.wrap_i64 (local.get $l)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:64:4
  (local.set $l (local.get $l))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:65:4
  (local.set $f (f32.convert_i64_s (local.get $l)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:66:4
  (local.set $d (f64.convert_i64_s (local.get $l)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:68:4
  (local.set $b (call $m_narrowFloatToByte__float__int@javaemul.internal.Primitives (local.get $f)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:69:4
  (local.set $c (call $m_narrowFloatToChar__float__int@javaemul.internal.Primitives (local.get $f)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:70:4
  (local.set $s (call $m_narrowFloatToShort__float__int@javaemul.internal.Primitives (local.get $f)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:71:4
  (local.set $i (i32.trunc_sat_f32_s (local.get $f)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:72:4
  (local.set $l (i64.trunc_sat_f32_s (local.get $f)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:73:4
  (local.set $f (local.get $f))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:74:4
  (local.set $d (f64.promote_f32 (local.get $f)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:76:4
  (local.set $b (call $m_narrowDoubleToByte__double__int@javaemul.internal.Primitives (local.get $d)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:77:4
  (local.set $c (call $m_narrowDoubleToChar__double__int@javaemul.internal.Primitives (local.get $d)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:78:4
  (local.set $s (call $m_narrowDoubleToShort__double__int@javaemul.internal.Primitives (local.get $d)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:79:4
  (local.set $i (i32.trunc_sat_f64_s (local.get $d)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:80:4
  (local.set $l (i64.trunc_sat_f64_s (local.get $d)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:81:4
  (local.set $f (f32.demote_f64 (local.get $d)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:82:4
  (local.set $d (local.get $d))
 )
)
(elem declare func $m_testPrimitiveCasts__void@cast.CastPrimitives)

;;; void CastPrimitives.testReferenceToPrimitive()
(func $m_testReferenceToPrimitive__void@cast.CastPrimitives
 (type $function.m_testReferenceToPrimitive__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:85:14
 (local $o (ref null $java.lang.Object))
 (local $bool i32)
 (local $b i32)
 (local $c i32)
 (local $s i32)
 (local $i i32)
 (local $l i64)
 (local $f f32)
 (local $d f64)
 (local $this (ref null $cast.CastPrimitives))
 (local.set $this (ref.cast (ref $cast.CastPrimitives) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:86:4
  (local.set $o (call $$create__@java.lang.Object ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:87:4
  (local.set $bool (call $m_booleanValue__boolean@java.lang.Boolean (ref.as_non_null (ref.cast (ref null $java.lang.Boolean) (local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:88:4
  (local.set $b (call $m_byteValue__byte@java.lang.Byte (ref.as_non_null (ref.cast (ref null $java.lang.Byte) (local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:89:4
  (local.set $c (call $m_charValue__char@java.lang.Character (ref.as_non_null (ref.cast (ref null $java.lang.Character) (local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:90:4
  (local.set $s (call $m_shortValue__short@java.lang.Short (ref.as_non_null (ref.cast (ref null $java.lang.Short) (local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:91:4
  (local.set $i (call $m_intValue__int@java.lang.Integer (ref.as_non_null (ref.cast (ref null $java.lang.Integer) (local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:92:4
  (local.set $l (call $m_longValue__long@java.lang.Long (ref.as_non_null (ref.cast (ref null $java.lang.Long) (local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:93:4
  (local.set $f (call $m_floatValue__float@java.lang.Float (ref.as_non_null (ref.cast (ref null $java.lang.Float) (local.get $o)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:94:4
  (local.set $d (call $m_doubleValue__double@java.lang.Double (ref.as_non_null (ref.cast (ref null $java.lang.Double) (local.get $o)))))
 )
)
(elem declare func $m_testReferenceToPrimitive__void@cast.CastPrimitives)

;;; void CastPrimitives.testLiteralToPrimitive()
(func $m_testLiteralToPrimitive__void@cast.CastPrimitives
 (type $function.m_testLiteralToPrimitive__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:97:14
 (local $b i32)
 (local $c i32)
 (local $s i32)
 (local $i i32)
 (local $l i64)
 (local $f f32)
 (local $d f64)
 (local $this (ref null $cast.CastPrimitives))
 (local.set $this (ref.cast (ref $cast.CastPrimitives) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:98:4
  
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:99:4
  
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:100:4
  
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:101:4
  
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:102:4
  
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:103:4
  
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:104:4
  
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:106:4
  (local.set $b (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:107:4
  (local.set $c (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:108:4
  (local.set $s (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:109:4
  (local.set $i (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:110:4
  (local.set $l (i64.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:111:4
  (local.set $f (f32.const 1.0))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:112:4
  (local.set $d (f64.const 1.0))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:114:4
  (local.set $b (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:115:4
  (local.set $c (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:116:4
  (local.set $s (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:117:4
  (local.set $i (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:118:4
  (local.set $l (i64.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:119:4
  (local.set $f (f32.const 1.0))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:120:4
  (local.set $d (f64.const 1.0))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:122:4
  (local.set $b (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:123:4
  (local.set $c (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:124:4
  (local.set $s (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:125:4
  (local.set $i (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:126:4
  (local.set $l (i64.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:127:4
  (local.set $f (f32.const 1.2000000476837158))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:128:4
  (local.set $d (f64.const 1.2000000476837158))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:130:4
  (local.set $b (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:131:4
  (local.set $c (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:132:4
  (local.set $s (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:133:4
  (local.set $i (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:134:4
  (local.set $l (i64.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:135:4
  (local.set $f (f32.const 1.2))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:136:4
  (local.set $d (f64.const 1.2))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:138:4
  (local.set $b (i32.const 97))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:139:4
  (local.set $c (i32.const 97))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:140:4
  (local.set $s (i32.const 97))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:141:4
  (local.set $i (i32.const 97))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:142:4
  (local.set $l (i64.const 97))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:143:4
  (local.set $f (f32.const 97.0))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:144:4
  (local.set $d (f64.const 97.0))
 )
)
(elem declare func $m_testLiteralToPrimitive__void@cast.CastPrimitives)

;;; void CastPrimitives.testUnboxAndWiden()
(func $m_testUnboxAndWiden__void@cast.CastPrimitives
 (type $function.m_testUnboxAndWiden__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:147:14
 (local $boxedByte (ref null $java.lang.Byte))
 (local $s i32)
 (local $i i32)
 (local $l i64)
 (local $f f32)
 (local $d f64)
 (local $this (ref null $cast.CastPrimitives))
 (local.set $this (ref.cast (ref $cast.CastPrimitives) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:148:4
  (local.set $boxedByte (call $m_valueOf__byte__java_lang_Byte@java.lang.Byte (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:151:4
  (local.set $s (call $m_byteValue__byte@java.lang.Byte (ref.as_non_null (local.get $boxedByte))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:152:4
  (local.set $i (call $m_byteValue__byte@java.lang.Byte (ref.as_non_null (local.get $boxedByte))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:153:4
  (local.set $l (i64.extend_i32_s (call $m_byteValue__byte@java.lang.Byte (ref.as_non_null (local.get $boxedByte)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:154:4
  (local.set $f (f32.convert_i32_s (call $m_byteValue__byte@java.lang.Byte (ref.as_non_null (local.get $boxedByte)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:155:4
  (local.set $d (f64.convert_i32_s (call $m_byteValue__byte@java.lang.Byte (ref.as_non_null (local.get $boxedByte)))))
 )
)
(elem declare func $m_testUnboxAndWiden__void@cast.CastPrimitives)

;;; void CastPrimitives.testImplicitArgumentCasts()
(func $m_testImplicitArgumentCasts__void@cast.CastPrimitives
 (type $function.m_testImplicitArgumentCasts__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:158:14
 (local $b i32)
 (local $c i32)
 (local $s i32)
 (local $i i32)
 (local $l i64)
 (local $f f32)
 (local $d f64)
 (local $this (ref null $cast.CastPrimitives))
 (local.set $this (ref.cast (ref $cast.CastPrimitives) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:159:4
  (local.set $b (i32.const 127))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:160:4
  (local.set $c (i32.const 65535))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:161:4
  (local.set $s (i32.const 32767))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:162:4
  (local.set $i (i32.const 2147483647))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:163:4
  (local.set $l (i64.const 9223372036854775807))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:164:4
  (local.set $f (f32.const 3.4028234663852886E38))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:165:4
  (local.set $d (f64.const 1.7976931348623157E308))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:167:4
  (drop (call $m_getShort__short__short@cast.CastPrimitives (local.get $b)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:168:4
  (drop (call $m_getInt__int__int@cast.CastPrimitives (local.get $b)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:169:4
  (drop (call $m_getLong__long__long@cast.CastPrimitives (i64.extend_i32_s (local.get $b))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:170:4
  (drop (call $m_getFloat__float__float@cast.CastPrimitives (f32.convert_i32_s (local.get $b))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:171:4
  (drop (call $m_getDouble__double__double@cast.CastPrimitives (f64.convert_i32_s (local.get $b))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:173:4
  (drop (call $m_getFloat__float__float@cast.CastPrimitives (f32.convert_i64_s (local.get $l))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:174:4
  (drop (call $m_getDouble__double__double@cast.CastPrimitives (f64.convert_i64_s (local.get $l))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:175:4
  (drop (call $m_getDouble__double__double@cast.CastPrimitives (f64.promote_f32 (local.get $f))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:178:4
  (drop (call $$create__int@cast.CastPrimitives.IntValueHolder (local.get $b)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:179:4
  (drop (call $$create__int@cast.CastPrimitives.IntValueHolder (local.get $c)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:180:4
  (drop (call $$create__int@cast.CastPrimitives.IntValueHolder (local.get $s)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:182:4
  (drop (call $$create__long@cast.CastPrimitives.LongValueHolder (i64.extend_i32_s (local.get $b))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:183:4
  (drop (call $$create__long@cast.CastPrimitives.LongValueHolder (i64.extend_i32_u (local.get $c))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:184:4
  (drop (call $$create__long@cast.CastPrimitives.LongValueHolder (i64.extend_i32_s (local.get $i))))
 )
)
(elem declare func $m_testImplicitArgumentCasts__void@cast.CastPrimitives)

;;; void CastPrimitives.testImplicitArrayIndexCasts(byte[] array)
(func $m_testImplicitArrayIndexCasts__arrayOf_byte__void@cast.CastPrimitives
 (type $function.m_testImplicitArrayIndexCasts__arrayOf_byte__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $array (ref null $javaemul.internal.WasmArray.OfByte))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:187:14
 (local $b i32)
 (local $c i32)
 (local $s i32)
 (local $i i32)
 (local $result i32)
 (local $this (ref null $cast.CastPrimitives))
 (local.set $this (ref.cast (ref $cast.CastPrimitives) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:188:4
  (local.set $b (i32.const 127))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:189:4
  (local.set $c (i32.const 65535))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:190:4
  (local.set $s (i32.const 32767))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:191:4
  (local.set $i (i32.const 2147483647))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:193:4
  
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:194:4
  (local.set $result (array.get_s $byte.array (struct.get $javaemul.internal.WasmArray.OfByte $elements@javaemul.internal.WasmArray.OfByte (local.get $array)) (local.get $b)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:195:4
  (local.set $result (array.get_s $byte.array (struct.get $javaemul.internal.WasmArray.OfByte $elements@javaemul.internal.WasmArray.OfByte (local.get $array)) (local.get $c)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:196:4
  (local.set $result (array.get_s $byte.array (struct.get $javaemul.internal.WasmArray.OfByte $elements@javaemul.internal.WasmArray.OfByte (local.get $array)) (local.get $s)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:197:4
  (local.set $result (array.get_s $byte.array (struct.get $javaemul.internal.WasmArray.OfByte $elements@javaemul.internal.WasmArray.OfByte (local.get $array)) (local.get $i)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:199:4
  (local.set $result (array.get_s $byte.array (struct.get $javaemul.internal.WasmArray.OfByte $elements@javaemul.internal.WasmArray.OfByte (local.get $array)) (i32.const 1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:200:4
  (local.set $result (array.get_s $byte.array (struct.get $javaemul.internal.WasmArray.OfByte $elements@javaemul.internal.WasmArray.OfByte (local.get $array)) (i32.const 97)))
 )
)
(elem declare func $m_testImplicitArrayIndexCasts__arrayOf_byte__void@cast.CastPrimitives)

;;; short CastPrimitives.getShort(short value)
(func $m_getShort__short__short@cast.CastPrimitives
 (param $value i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:203:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:204:4
  (return (local.get $value))
 )
)

;;; int CastPrimitives.getInt(int value)
(func $m_getInt__int__int@cast.CastPrimitives
 (param $value i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:207:21
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:208:4
  (return (local.get $value))
 )
)

;;; long CastPrimitives.getLong(long value)
(func $m_getLong__long__long@cast.CastPrimitives
 (param $value i64)
 (result i64)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:211:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:212:4
  (return (local.get $value))
 )
)

;;; float CastPrimitives.getFloat(float value)
(func $m_getFloat__float__float@cast.CastPrimitives
 (param $value f32)
 (result f32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:215:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:216:4
  (return (local.get $value))
 )
)

;;; double CastPrimitives.getDouble(double value)
(func $m_getDouble__double__double@cast.CastPrimitives
 (param $value f64)
 (result f64)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:219:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:220:4
  (return (local.get $value))
 )
)

;;; void CastPrimitives.testImplicitLongAssignmentCasts()
(func $m_testImplicitLongAssignmentCasts__void@cast.CastPrimitives
 (type $function.m_testImplicitLongAssignmentCasts__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:231:14
 (local $fbyte i32)
 (local $fchar i32)
 (local $fshort i32)
 (local $fint i32)
 (local $flong i64)
 (local $ffloat f32)
 (local $fdouble f64)
 (local $tlong i64)
 (local $this (ref null $cast.CastPrimitives))
 (local.set $this (ref.cast (ref $cast.CastPrimitives) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:232:4
  (local.set $fbyte (i32.const 11))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:233:4
  (local.set $fchar (i32.const 12))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:234:4
  (local.set $fshort (i32.const 13))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:235:4
  (local.set $fint (i32.const 14))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:236:4
  (local.set $flong (i64.const 15))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:237:4
  (local.set $ffloat (f32.const 16.0))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:238:4
  (local.set $fdouble (f64.const 17.0))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:241:4
  (local.set $tlong (i64.const 0))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:245:6
   (local.set $tlong (i64.extend_i32_s (local.get $fbyte)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:246:6
   (local.set $tlong (local.get $flong))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:252:6
   (local.set $tlong (i64.extend_i32_s (local.get $fint)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:253:6
   (local.set $tlong (i64.add (local.get $tlong) (i64.extend_i32_s (local.get $fint))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:254:6
   (local.set $tlong (i64.shl (local.get $tlong) (i64.extend_i32_s (local.get $fint))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:260:6
   (local.set $tlong (i64.add (local.get $tlong) (i64.extend_i32_u (local.get $fchar))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:261:6
   (local.set $tlong (i64.add (local.get $tlong) (local.get $flong)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:262:6
   (local.set $tlong (i64.trunc_sat_f32_s (f32.add (f32.convert_i64_s (local.get $tlong)) (local.get $ffloat))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:268:6
   (local.set $tlong (i64.mul (local.get $flong) (i64.extend_i32_s (local.get $fint))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:269:6
   (local.set $tlong (i64.shr_s (local.get $flong) (i64.extend_i32_s (local.get $fint))))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:275:6
   (local.set $tlong (i64.add (local.get $flong) (i64.extend_i32_s (local.get $fshort))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:276:6
   (local.set $tlong (i64.add (local.get $flong) (local.get $flong)))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:281:6
   (local.set $tlong (i64.shl (local.get $flong) (local.get $tlong)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:282:6
   (local.set $tlong (i64.shl (local.get $tlong) (local.get $flong)))
  )
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:286:6
   (local.set $tlong (i64.add (i64.extend_i32_s (i32.add (i32.const 0) (i32.const 1))) (i64.const 2)))
  )
 )
)
(elem declare func $m_testImplicitLongAssignmentCasts__void@cast.CastPrimitives)

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

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

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

;;; Code for cast.CastPrimitives.IntValueHolder [methods]

;;; IntValueHolder IntValueHolder.$create(int value)
(func $$create__int@cast.CastPrimitives.IntValueHolder
 (param $value i32)
 (result (ref null $cast.CastPrimitives.IntValueHolder))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:224:4
 (local $$instance (ref null $cast.CastPrimitives.IntValueHolder))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:224:4
  (call $$clinit__void_<once>_@cast.CastPrimitives.IntValueHolder )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:224:4
  (local.set $$instance (struct.new $cast.CastPrimitives.IntValueHolder (global.get $cast.CastPrimitives.IntValueHolder.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:224:4
  (call $$ctor__int__void_$p_cast_CastPrimitives_IntValueHolder@cast.CastPrimitives.IntValueHolder (ref.as_non_null (local.get $$instance))(local.get $value))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:224:4
  (return (local.get $$instance))
 )
)

;;; void IntValueHolder.$ctor(int value)
(func $$ctor__int__void_$p_cast_CastPrimitives_IntValueHolder@cast.CastPrimitives.IntValueHolder
 (param $this (ref null $cast.CastPrimitives.IntValueHolder))
 (param $value i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:224:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:224:30
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for cast.CastPrimitives.LongValueHolder [methods]

;;; LongValueHolder LongValueHolder.$create(long value)
(func $$create__long@cast.CastPrimitives.LongValueHolder
 (param $value i64)
 (result (ref null $cast.CastPrimitives.LongValueHolder))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:228:4
 (local $$instance (ref null $cast.CastPrimitives.LongValueHolder))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:228:4
  (call $$clinit__void_<once>_@cast.CastPrimitives.LongValueHolder )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:228:4
  (local.set $$instance (struct.new $cast.CastPrimitives.LongValueHolder (global.get $cast.CastPrimitives.LongValueHolder.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:228:4
  (call $$ctor__long__void_$p_cast_CastPrimitives_LongValueHolder@cast.CastPrimitives.LongValueHolder (ref.as_non_null (local.get $$instance))(local.get $value))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:228:4
  (return (local.get $$instance))
 )
)

;;; void LongValueHolder.$ctor(long value)
(func $$ctor__long__void_$p_cast_CastPrimitives_LongValueHolder@cast.CastPrimitives.LongValueHolder
 (param $this (ref null $cast.CastPrimitives.LongValueHolder))
 (param $value i64)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:228:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastPrimitives.java:228:32
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for cast.Casts [methods]

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

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

;;; void Casts.testCastToClass()
(func $m_testCastToClass__void@cast.Casts
 (type $function.m_testCastToClass__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:22:14
 (local $o (ref null $java.lang.Object))
 (local $c (ref null $cast.Casts))
 (local $this (ref null $cast.Casts))
 (local.set $this (ref.cast (ref $cast.Casts) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:23:4
  (local.set $o (call $$create__@java.lang.Object ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:24:4
  (local.set $c (ref.cast (ref null $cast.Casts) (local.get $o)))
 )
)
(elem declare func $m_testCastToClass__void@cast.Casts)

;;; void Casts.testCasToInterface()
(func $m_testCasToInterface__void@cast.Casts
 (type $function.m_testCasToInterface__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:27:14
 (local $o (ref null $java.lang.Object))
 (local $s (ref null $java.lang.Object))
 (local $this (ref null $cast.Casts))
 (local.set $this (ref.cast (ref $cast.Casts) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:28:4
  (local.set $o (call $$create__@java.lang.Object ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:29:4
  (local.set $s (local.get $o))
 )
)
(elem declare func $m_testCasToInterface__void@cast.Casts)

;;; void Casts.testCastToBoxedType()
(func $m_testCastToBoxedType__void@cast.Casts
 (type $function.m_testCastToBoxedType__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:32:14
 (local $o (ref null $java.lang.Object))
 (local $b (ref null $java.lang.Byte))
 (local $d (ref null $java.lang.Double))
 (local $f (ref null $java.lang.Float))
 (local $i (ref null $java.lang.Integer))
 (local $l (ref null $java.lang.Long))
 (local $s (ref null $java.lang.Short))
 (local $n (ref null $java.lang.Number))
 (local $c (ref null $java.lang.Character))
 (local $bool (ref null $java.lang.Boolean))
 (local $this (ref null $cast.Casts))
 (local.set $this (ref.cast (ref $cast.Casts) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:33:4
  (local.set $o (call $$create__int@java.lang.Integer (i32.const 1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:34:4
  (local.set $b (ref.cast (ref null $java.lang.Byte) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:35:4
  (local.set $d (ref.cast (ref null $java.lang.Double) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:36:4
  (local.set $f (ref.cast (ref null $java.lang.Float) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:37:4
  (local.set $i (ref.cast (ref null $java.lang.Integer) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:38:4
  (local.set $l (ref.cast (ref null $java.lang.Long) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:39:4
  (local.set $s (ref.cast (ref null $java.lang.Short) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:40:4
  (local.set $n (ref.cast (ref null $java.lang.Number) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:41:4
  (local.set $c (ref.cast (ref null $java.lang.Character) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:42:4
  (local.set $bool (ref.cast (ref null $java.lang.Boolean) (local.get $o)))
 )
)
(elem declare func $m_testCastToBoxedType__void@cast.Casts)

;;; void Casts.testCastToArray()
(func $m_testCastToArray__void@cast.Casts
 (type $function.m_testCastToArray__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:45:14
 (local $foo (ref null $java.lang.Object))
 (local $bar (ref null $java.lang.Object))
 (local $this (ref null $cast.Casts))
 (local.set $this (ref.cast (ref $cast.Casts) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:46:4
  (local.set $foo (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:47:4
  (local.set $bar (ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (ref.null $java.lang.Object)))
 )
)
(elem declare func $m_testCastToArray__void@cast.Casts)

;;; void Casts.functionForInstanceofTest()
(func $m_functionForInstanceofTest__void_$p_cast_Casts@cast.Casts
 (param $this (ref null $cast.Casts))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:50:15
 (block
 )
)

;;; void Casts.testCastVariableAfterInstanceOf()
(func $m_testCastVariableAfterInstanceOf__void@cast.Casts
 (type $function.m_testCastVariableAfterInstanceOf__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:52:14
 (local $o (ref null $java.lang.Object))
 (local $c (ref null $cast.Casts))
 (local $cAvoidsCastsTo (ref null $cast.Casts))
 (local $cNotAvoidCastsTo (ref null $cast.Casts))
 (local $cAvoidsCastsTo_1 (ref null $cast.Casts))
 (local $cNotAvoidCastsTo_1 (ref null $cast.Casts))
 (local $cAvoidsCastsTo_2 (ref null $cast.Casts))
 (local $cAvoidCastsTo (ref null $cast.Casts))
 (local $cAvoidsCastsTo_3 (ref null $cast.Casts))
 (local $cNotAvoidCastsTo_2 (ref null $cast.Casts))
 (local $c_1 (ref null $cast.Casts))
 (local $this (ref null $cast.Casts))
 (local.set $this (ref.cast (ref $cast.Casts) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:53:4
  (local.set $o (call $$create__@java.lang.Object ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:54:4
  (if (ref.test (ref $cast.Casts) (local.get $o))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:55:6
     (local.set $c (ref.cast (ref null $cast.Casts) (local.get $o)))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:57:4
  (if (ref.test (ref $cast.Casts) (local.get $o))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:58:6
     (local.set $cAvoidsCastsTo (ref.cast (ref null $cast.Casts) (local.get $o)))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:59:6
     (local.set $o (call $$create__@java.lang.Object ))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:60:6
     (local.set $cNotAvoidCastsTo (ref.cast (ref null $cast.Casts) (local.get $o)))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:62:4
  (if (ref.test (ref $cast.Casts) (local.get $o))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:63:6
     (local.set $cAvoidsCastsTo_1 (ref.cast (ref null $cast.Casts) (local.get $o)))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:64:6
     (local.set $o (call $$create__cast_Casts@cast.Casts.Foo (local.get $this)))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:65:6
     (local.set $cNotAvoidCastsTo_1 (ref.cast (ref null $cast.Casts) (local.get $o)))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:67:4
  (if (ref.test (ref $cast.Casts) (local.get $o))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:68:6
     (local.set $cAvoidsCastsTo_2 (ref.cast (ref null $cast.Casts) (local.get $o)))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:69:6
     (local.set $o (call $$create__@java.lang.Object ))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:70:6
     (local.set $cAvoidCastsTo (ref.cast (ref null $cast.Casts) (local.get $o)))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:72:4
  (if (ref.test (ref $cast.Casts) (local.get $o))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:73:6
     (local.set $cAvoidsCastsTo_3 (ref.cast (ref null $cast.Casts) (local.get $o)))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:74:6
     (call $m_functionForInstanceofTest__void_$p_cast_Casts@cast.Casts (ref.as_non_null (local.get $this)))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:75:6
     (local.set $cNotAvoidCastsTo_2 (ref.cast (ref null $cast.Casts) (local.get $o)))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:78:4
  (local.set $c_1 (if (result (ref null $cast.Casts)) (ref.test (ref $cast.Casts) (local.get $o)) (then (ref.cast (ref null $cast.Casts) (local.get $o))) (else (ref.null $cast.Casts))))
 )
)
(elem declare func $m_testCastVariableAfterInstanceOf__void@cast.Casts)

;;; void Casts.testCastFieldAfterInstanceOf()
(func $m_testCastFieldAfterInstanceOf__void@cast.Casts
 (type $function.m_testCastFieldAfterInstanceOf__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:90:14
 (local $foo (ref null $cast.Casts.Foo))
 (local $c (ref null $cast.Casts))
 (local $cAvoidsCastsTo (ref null $cast.Casts))
 (local $cNotAvoidCastsTo (ref null $cast.Casts))
 (local $cAvoidsCastsTo_1 (ref null $cast.Casts))
 (local $cNotAvoidCastsTo_1 (ref null $cast.Casts))
 (local $cAvoidsCastsTo_2 (ref null $cast.Casts))
 (local $cNotAvoidCastsTo_2 (ref null $cast.Casts))
 (local $c_1 (ref null $cast.Casts))
 (local $this (ref null $cast.Casts))
 (local.set $this (ref.cast (ref $cast.Casts) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:91:4
  (local.set $foo (call $$create__cast_Casts@cast.Casts.Foo (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:92:4
  (if (ref.test (ref $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo)))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:93:6
     (local.set $c (ref.cast (ref null $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo))))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:95:4
  (if (ref.test (ref $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo)))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:96:6
     (local.set $cAvoidsCastsTo (ref.cast (ref null $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo))))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:97:6
     (struct.set $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo) (call $$create__@java.lang.Object ))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:98:6
     (local.set $cNotAvoidCastsTo (ref.cast (ref null $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo))))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:100:4
  (if (ref.test (ref $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo)))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:101:6
     (local.set $cAvoidsCastsTo_1 (ref.cast (ref null $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo))))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:102:6
     (local.set $foo (call $$create__cast_Casts@cast.Casts.Foo (local.get $this)))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:103:6
     (local.set $cNotAvoidCastsTo_1 (ref.cast (ref null $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo))))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:105:4
  (if (ref.test (ref $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo)))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:106:6
     (local.set $cAvoidsCastsTo_2 (ref.cast (ref null $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo))))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:107:6
     (call $m_functionForInstanceofTest__void_$p_cast_Casts@cast.Casts (ref.as_non_null (local.get $this)))
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:108:6
     (local.set $cNotAvoidCastsTo_2 (ref.cast (ref null $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo))))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:111:4
  (local.set $c_1 (if (result (ref null $cast.Casts)) (ref.test (ref $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo))) (then (ref.cast (ref null $cast.Casts) (struct.get $cast.Casts.Foo $field@cast.Casts.Foo (local.get $foo)))) (else (ref.null $cast.Casts))))
 )
)
(elem declare func $m_testCastFieldAfterInstanceOf__void@cast.Casts)

;;; void Casts.testCaseMethodAfterInstanceOf()
(func $m_testCaseMethodAfterInstanceOf__void@cast.Casts
 (type $function.m_testCaseMethodAfterInstanceOf__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:114:14
 (local $foo (ref null $cast.Casts.Foo))
 (local $cNotAvoidCastsTo (ref null $cast.Casts))
 (local $c (ref null $cast.Casts))
 (local $this (ref null $cast.Casts))
 (local.set $this (ref.cast (ref $cast.Casts) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:115:4
  (local.set $foo (call $$create__cast_Casts@cast.Casts.Foo (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:116:4
  (if (ref.test (ref $cast.Casts) (call_ref $function.m_method__java_lang_Object (ref.as_non_null (local.get $foo))(struct.get $cast.Casts.Foo.vtable $m_method__java_lang_Object (struct.get $cast.Casts.Foo $vtable(local.get $foo)))))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:117:6
     (local.set $cNotAvoidCastsTo (ref.cast (ref null $cast.Casts) (call_ref $function.m_method__java_lang_Object (ref.as_non_null (local.get $foo))(struct.get $cast.Casts.Foo.vtable $m_method__java_lang_Object (struct.get $cast.Casts.Foo $vtable(local.get $foo))))))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:120:4
  (local.set $c (if (result (ref null $cast.Casts)) (ref.test (ref $cast.Casts) (call_ref $function.m_method__java_lang_Object (ref.as_non_null (local.get $foo))(struct.get $cast.Casts.Foo.vtable $m_method__java_lang_Object (struct.get $cast.Casts.Foo $vtable(local.get $foo))))) (then (ref.cast (ref null $cast.Casts) (call_ref $function.m_method__java_lang_Object (ref.as_non_null (local.get $foo))(struct.get $cast.Casts.Foo.vtable $m_method__java_lang_Object (struct.get $cast.Casts.Foo $vtable(local.get $foo)))))) (else (ref.null $cast.Casts))))
 )
)
(elem declare func $m_testCaseMethodAfterInstanceOf__void@cast.Casts)

;;; void Casts.testPrecedence()
(func $m_testPrecedence__void@cast.Casts
 (type $function.m_testPrecedence__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:123:14
 (local $foo (ref null $java.lang.Object))
 (local $bar (ref null $java.lang.Object))
 (local $notString (ref null $java.lang.Integer))
 (local $s1 (ref null $java.lang.String))
 (local $s2 (ref null $java.lang.String))
 (local $this (ref null $cast.Casts))
 (local.set $this (ref.cast (ref $cast.Casts) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:124:4
  (local.set $foo (call $$getString_|foo|__java_lang_String_<once>_@cast.Casts ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:125:4
  (local.set $bar (call $$getString_|bar|__java_lang_String_<once>_@cast.Casts ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:126:4
  (local.set $notString (call $m_valueOf__int__java_lang_Integer@java.lang.Integer (i32.const 123)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:127:4
  (local.set $s1 (ref.cast (ref null $java.lang.String) (if (result (ref null $java.lang.Object)) (i32.const 0) (then (local.get $foo)) (else (local.get $bar)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:128:4
  (local.set $s2 (ref.cast (ref null $java.lang.String) (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $$getString_|foo|__java_lang_String_<once>_@cast.Casts )(call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (local.get $notString)))))
 )
)
(elem declare func $m_testPrecedence__void@cast.Casts)

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

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

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

;;; Code for cast.Casts.Foo [methods]

;;; Foo Foo.$create(Casts $outer_this)
(func $$create__cast_Casts@cast.Casts.Foo
 (param $$outer_this (ref null $cast.Casts))
 (result (ref null $cast.Casts.Foo))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
 (local $$instance (ref null $cast.Casts.Foo))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
  (call $$clinit__void_<once>_@cast.Casts.Foo )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
  (local.set $$instance (struct.new $cast.Casts.Foo (global.get $cast.Casts.Foo.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $cast.Casts) (ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
  (call $$ctor__cast_Casts__void_$p_cast_Casts_Foo@cast.Casts.Foo (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
  (return (local.get $$instance))
 )
)

;;; void Foo.$ctor(Casts $outer_this)
(func $$ctor__cast_Casts__void_$p_cast_Casts_Foo@cast.Casts.Foo
 (param $this (ref null $cast.Casts.Foo))
 (param $$outer_this (ref null $cast.Casts))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
  (struct.set $cast.Casts.Foo $$outer_this@cast.Casts.Foo (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
  (call $$init__void_$p_cast_Casts_Foo@cast.Casts.Foo (ref.as_non_null (local.get $this)))
 )
)

;;; Object Foo.method()
(func $m_method__java_lang_Object@cast.Casts.Foo
 (type $function.m_method__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:85:18
 (local $this (ref null $cast.Casts.Foo))
 (local.set $this (ref.cast (ref $cast.Casts.Foo) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:86:6
  (return (call $$create__@java.lang.Object ))
 )
)
(elem declare func $m_method__java_lang_Object@cast.Casts.Foo)

;;; void Foo.$init()
(func $$init__void_$p_cast_Casts_Foo@cast.Casts.Foo
 (param $this (ref null $cast.Casts.Foo))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:82:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/Casts.java:83:4
  (struct.set $cast.Casts.Foo $field@cast.Casts.Foo (local.get $this) (call $$create__@java.lang.Object ))
 )
)

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

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

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

;;; Code for cast.CastGenerics.1 [methods]

;;; <anonymous> extends Foo<T><T> <anonymous> extends Foo<T>.$create()
(func $$create__@cast.CastGenerics.1
 (result (ref null $cast.CastGenerics.1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
 (local $$instance (ref null $cast.CastGenerics.1))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
  (call $$clinit__void_<once>_@cast.CastGenerics.1 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
  (local.set $$instance (struct.new $cast.CastGenerics.1 (global.get $cast.CastGenerics.1.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
  (call $$ctor__void_$p_cast_CastGenerics_1@cast.CastGenerics.1 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
  (return (local.get $$instance))
 )
)

;;; void <anonymous> extends Foo<T>.$ctor()
(func $$ctor__void_$p_cast_CastGenerics_1@cast.CastGenerics.1
 (param $this (ref null $cast.CastGenerics.1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
  (call $$ctor__void_$p_cast_CastGenerics_Foo@cast.CastGenerics.Foo (ref.as_non_null (local.get $this)))
 )
)

;;; void <anonymous> extends Foo<T>.$clinit()
(func $$clinit__void_<once>_@cast.CastGenerics.1
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
  (if (global.get $$class-initialized@cast.CastGenerics.1)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
  (global.set $$class-initialized@cast.CastGenerics.1 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:178:24
  (call $$clinit__void_<once>_@cast.CastGenerics.Foo )
 )
)

;;; Class<T> <anonymous> extends Foo<T>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@cast.CastGenerics.1
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@cast.CastGenerics.1)))
   (then
    (return (global.get $$class@cast.CastGenerics.1))
   )
  )
  (global.set $$class@cast.CastGenerics.1 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|cast.CastGen...|__java_lang_String_<once>_@cast.CastGenerics.1 )(call $$getClassMetadata__java_lang_Class_<once>_@cast.CastGenerics.Foo )))
  (return (global.get $$class@cast.CastGenerics.1))
 )
)

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

;;; Code for cast.CastGenerics.Implementor [methods]

;;; Implementor Implementor.$create()
(func $$create__@cast.CastGenerics.Implementor
 (result (ref null $cast.CastGenerics.Implementor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:39:23
 (local $$instance (ref null $cast.CastGenerics.Implementor))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:39:23
  (local.set $$instance (struct.new $cast.CastGenerics.Implementor (global.get $cast.CastGenerics.Implementor.vtable) (global.get $cast.CastGenerics.Implementor.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:39:23
  (call $$ctor__void_$p_cast_CastGenerics_Implementor@cast.CastGenerics.Implementor (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:39:23
  (return (local.get $$instance))
 )
)

;;; void Implementor.$ctor()
(func $$ctor__void_$p_cast_CastGenerics_Implementor@cast.CastGenerics.Implementor
 (param $this (ref null $cast.CastGenerics.Implementor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:39:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:39:23
  (call $$ctor__void_$p_cast_CastGenerics_BaseImplementor@cast.CastGenerics.BaseImplementor (ref.as_non_null (local.get $this)))
 )
)

;;; void Implementor.mA()
(func $m_mA__void@cast.CastGenerics.Implementor
 (type $function.m_mA__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:40:16
 (local $this (ref null $cast.CastGenerics.Implementor))
 (local.set $this (ref.cast (ref $cast.CastGenerics.Implementor) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_mA__void@cast.CastGenerics.Implementor)

;;; void Implementor.mB()
(func $m_mB__void@cast.CastGenerics.Implementor
 (type $function.m_mB__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/cast/readable-j2wasm.js/cast/CastGenerics.java:42:16
 (local $this (ref null $cast.CastGenerics.Implementor))
 (local.set $this (ref.cast (ref $cast.CastGenerics.Implementor) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_mB__void@cast.CastGenerics.Implementor)

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

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

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