;;; Code for jsnonnull.Main.MyFunction [type definition]
(type $jsnonnull.Main.MyFunction.vtable (sub (struct
 (field $m_x__java_lang_String__java_lang_String (ref $function.m_x__java_lang_String__java_lang_String))
 ))
)

;;; Code for jsnonnull.Main.NonNullableTemplatedReturn [type definition]
(type $jsnonnull.Main.NonNullableTemplatedReturn.vtable (sub (struct
 (field $m_getArray__arrayOf_java_lang_Object (ref $function.m_getArray__arrayOf_java_lang_Object))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 ))
)

;;; Code for jsnonnull.Main.NonNullableTemplate [type definition]
(type $jsnonnull.Main.NonNullableTemplate.vtable (sub (struct
 (field $m_getArray__arrayOf_java_lang_Object (ref $function.m_getArray__arrayOf_java_lang_Object))
 (field $m_get__java_lang_Object (ref $function.m_get__java_lang_Object))
 ))
)

;;; Code for jsnonnull.Main [type definition]
(type $jsnonnull.Main.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_m1__java_lang_String__java_util_List__java_lang_String__java_lang_String (ref $function.m_m1__java_lang_String__java_util_List__java_lang_String__java_lang_String))
 (field $m_m2__java_lang_String__java_util_List__java_lang_String (ref $function.m_m2__java_lang_String__java_util_List__java_lang_String))
 (field $m_m3__java_lang_String__arrayOf_java_lang_String__java_lang_String (ref $function.m_m3__java_lang_String__arrayOf_java_lang_String__java_lang_String))
 (field $m_m4__jsnonnull_Main_MyFunction__void (ref $function.m_m4__jsnonnull_Main_MyFunction__void))
 ))
)
(type $jsnonnull.Main (sub $java.lang.Object (struct
 (field $vtable (ref $jsnonnull.Main.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $f10@jsnonnull.Main (mut (ref null $javaemul.internal.WasmArray.OfObject)))
 (field $f12@jsnonnull.Main (mut (ref null $java.lang.Object)))
 (field $f1@jsnonnull.Main (mut (ref null $java.lang.String)))
 (field $f2@jsnonnull.Main (mut (ref null $java.lang.String)))
 (field $f4@jsnonnull.Main (mut (ref null $java.lang.Object)))
 (field $f5@jsnonnull.Main (mut (ref null $java.lang.Object)))
 (field $f6@jsnonnull.Main (mut (ref null $java.lang.Object)))
 (field $f7@jsnonnull.Main (mut (ref null $java.lang.Object)))
 (field $f8@jsnonnull.Main (mut (ref null $javaemul.internal.WasmArray.OfObject)))
 (field $f9@jsnonnull.Main (mut (ref null $javaemul.internal.WasmArray.OfObject)))
 ))
)

;;; Code for jsnonnull.Main.MyFunction.$LambdaAdaptor [type definition]
(type $jsnonnull.Main.MyFunction.$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_x__java_lang_String__java_lang_String (ref $function.m_x__java_lang_String__java_lang_String))
 ))
)
(type $jsnonnull.Main.MyFunction.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $jsnonnull.Main.MyFunction.$LambdaAdaptor.vtable))
 (field $itable (ref $jsnonnull.Main.MyFunction.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsnonnull.Main.StringComparator [type definition]
(type $jsnonnull.Main.StringComparator.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_compare__java_lang_Object__java_lang_Object__int (ref $function.m_compare__java_lang_Object__java_lang_Object__int))
 (field $m_compare__java_lang_String__java_lang_String__int (ref $function.m_compare__java_lang_String__java_lang_String__int))
 (field $m_reversed__java_util_Comparator (ref $function.m_reversed__java_util_Comparator))
 (field $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator (ref $function.m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator))
 (field $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator (ref $function.m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator))
 (field $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator (ref $function.m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator))
 (field $m_thenComparing__java_util_Comparator__java_util_Comparator (ref $function.m_thenComparing__java_util_Comparator__java_util_Comparator))
 (field $m_thenComparing__java_util_function_Function__java_util_Comparator (ref $function.m_thenComparing__java_util_function_Function__java_util_Comparator))
 (field $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator (ref $function.m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator))
 ))
)
(type $jsnonnull.Main.StringComparator (sub $java.lang.Object (struct
 (field $vtable (ref $jsnonnull.Main.StringComparator.vtable))
 (field $itable (ref $jsnonnull.Main.StringComparator.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsnonnull.Main.NullableStringComparator [type definition]
(type $jsnonnull.Main.NullableStringComparator.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_compare__java_lang_Object__java_lang_Object__int (ref $function.m_compare__java_lang_Object__java_lang_Object__int))
 (field $m_compare__java_lang_String__java_lang_String__int (ref $function.m_compare__java_lang_String__java_lang_String__int))
 (field $m_reversed__java_util_Comparator (ref $function.m_reversed__java_util_Comparator))
 (field $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator (ref $function.m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator))
 (field $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator (ref $function.m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator))
 (field $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator (ref $function.m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator))
 (field $m_thenComparing__java_util_Comparator__java_util_Comparator (ref $function.m_thenComparing__java_util_Comparator__java_util_Comparator))
 (field $m_thenComparing__java_util_function_Function__java_util_Comparator (ref $function.m_thenComparing__java_util_function_Function__java_util_Comparator))
 (field $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator (ref $function.m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator))
 ))
)
(type $jsnonnull.Main.NullableStringComparator (sub $java.lang.Object (struct
 (field $vtable (ref $jsnonnull.Main.NullableStringComparator.vtable))
 (field $itable (ref $jsnonnull.Main.NullableStringComparator.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsnonnull.Main.NonNullableStringSubNullableComparator [type definition]
(type $jsnonnull.Main.NonNullableStringSubNullableComparator.vtable (sub $jsnonnull.Main.NullableStringComparator.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_compare__java_lang_Object__java_lang_Object__int (ref $function.m_compare__java_lang_Object__java_lang_Object__int))
 (field $m_compare__java_lang_String__java_lang_String__int (ref $function.m_compare__java_lang_String__java_lang_String__int))
 (field $m_reversed__java_util_Comparator (ref $function.m_reversed__java_util_Comparator))
 (field $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator (ref $function.m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator))
 (field $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator (ref $function.m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator))
 (field $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator (ref $function.m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator))
 (field $m_thenComparing__java_util_Comparator__java_util_Comparator (ref $function.m_thenComparing__java_util_Comparator__java_util_Comparator))
 (field $m_thenComparing__java_util_function_Function__java_util_Comparator (ref $function.m_thenComparing__java_util_function_Function__java_util_Comparator))
 (field $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator (ref $function.m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator))
 ))
)
(type $jsnonnull.Main.NonNullableStringSubNullableComparator (sub $jsnonnull.Main.NullableStringComparator (struct
 (field $vtable (ref $jsnonnull.Main.NonNullableStringSubNullableComparator.vtable))
 (field $itable (ref $jsnonnull.Main.NonNullableStringSubNullableComparator.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsnonnull.Main.MyFunction [imports]

;;; Code for jsnonnull.Main.NonNullableTemplatedReturn [imports]

;;; Code for jsnonnull.Main.NonNullableTemplate [imports]

;;; Code for jsnonnull.Main [imports]

;;; Code for jsnonnull.Main.MyFunction.$LambdaAdaptor [imports]

;;; Code for jsnonnull.Main.StringComparator [imports]

;;; Code for jsnonnull.Main.NullableStringComparator [imports]

;;; Code for jsnonnull.Main.NonNullableStringSubNullableComparator [imports]

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

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

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

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

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

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

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

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

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

;;; Code for jsnonnull.Main.StringComparator [vtable.init]
(global $jsnonnull.Main.StringComparator.vtable (ref $jsnonnull.Main.StringComparator.vtable)
 (struct.new $jsnonnull.Main.StringComparator.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsnonnull.Main.StringComparator)
  (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_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.StringComparator)
  (ref.func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.StringComparator)
  (ref.func $m_reversed__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.StringComparator)
 )
)
(global $java.util.Comparator.vtable@$jsnonnull.Main.StringComparator (ref $java.util.Comparator.vtable)
 (struct.new $java.util.Comparator.vtable
  (ref.func $m_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.StringComparator)
  (ref.func $m_reversed__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.StringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.StringComparator)
 )
)

;;; Code for jsnonnull.Main.NullableStringComparator [vtable.init]
(global $jsnonnull.Main.NullableStringComparator.vtable (ref $jsnonnull.Main.NullableStringComparator.vtable)
 (struct.new $jsnonnull.Main.NullableStringComparator.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsnonnull.Main.NullableStringComparator)
  (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_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_reversed__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
 )
)
(global $java.util.Comparator.vtable@$jsnonnull.Main.NullableStringComparator (ref $java.util.Comparator.vtable)
 (struct.new $java.util.Comparator.vtable
  (ref.func $m_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_reversed__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
 )
)

;;; Code for jsnonnull.Main.NonNullableStringSubNullableComparator [vtable.init]
(global $jsnonnull.Main.NonNullableStringSubNullableComparator.vtable (ref $jsnonnull.Main.NonNullableStringSubNullableComparator.vtable)
 (struct.new $jsnonnull.Main.NonNullableStringSubNullableComparator.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsnonnull.Main.NonNullableStringSubNullableComparator)
  (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_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.NonNullableStringSubNullableComparator)
  (ref.func $m_reversed__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
 )
)
(global $java.util.Comparator.vtable@$jsnonnull.Main.NonNullableStringSubNullableComparator (ref $java.util.Comparator.vtable)
 (struct.new $java.util.Comparator.vtable
  (ref.func $m_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_reversed__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
  (ref.func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)
 )
)

;;; Code for jsnonnull.Main.MyFunction [methods]

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

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

;;; Code for jsnonnull.Main.NonNullableTemplatedReturn [methods]

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

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

;;; Code for jsnonnull.Main.NonNullableTemplate [methods]

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

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

;;; Code for jsnonnull.Main [methods]

;;; Main Main.$create(String a)
(func $$create__java_lang_String@jsnonnull.Main
 (param $a (ref null $java.lang.String))
 (result (ref null $jsnonnull.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:42:9
 (local $$instance (ref null $jsnonnull.Main))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:42:9
  (call $$clinit__void_<once>_@jsnonnull.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:42:9
  (local.set $$instance (struct.new $jsnonnull.Main (global.get $jsnonnull.Main.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $javaemul.internal.WasmArray.OfObject) (ref.null $java.lang.Object) (ref.null $java.lang.String) (ref.null $java.lang.String) (ref.null $java.lang.Object) (ref.null $java.lang.Object) (ref.null $java.lang.Object) (ref.null $java.lang.Object) (ref.null $javaemul.internal.WasmArray.OfObject) (ref.null $javaemul.internal.WasmArray.OfObject)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:42:9
  (call $$ctor__java_lang_String__void_$p_jsnonnull_Main@jsnonnull.Main (ref.as_non_null (local.get $$instance))(local.get $a))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:42:9
  (return (local.get $$instance))
 )
)

;;; void Main.$ctor(String a)
(func $$ctor__java_lang_String__void_$p_jsnonnull_Main@jsnonnull.Main
 (param $this (ref null $jsnonnull.Main))
 (param $a (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:42:9
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:42:35
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:42:35
  (call $$init__void_$p_jsnonnull_Main@jsnonnull.Main (ref.as_non_null (local.get $this)))
 )
)

;;; String Main.m1(String a, List<Double> b, String c)
(func $m_m1__java_lang_String__java_util_List__java_lang_String__java_lang_String@jsnonnull.Main
 (type $function.m_m1__java_lang_String__java_util_List__java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $a (ref null $java.lang.String))
 (param $b (ref null $java.lang.Object))
 (param $c (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:45:16
 (local $this (ref null $jsnonnull.Main))
 (local.set $this (ref.cast (ref $jsnonnull.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:46:4
  (return (call $$getString_||__java_lang_String_<once>_@jsnonnull.Main ))
 )
)
(elem declare func $m_m1__java_lang_String__java_util_List__java_lang_String__java_lang_String@jsnonnull.Main)

;;; String Main.m2(String a, List<Double> b)
(func $m_m2__java_lang_String__java_util_List__java_lang_String@jsnonnull.Main
 (type $function.m_m2__java_lang_String__java_util_List__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $a (ref null $java.lang.String))
 (param $b (ref null $java.lang.Object))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:49:16
 (local $this (ref null $jsnonnull.Main))
 (local.set $this (ref.cast (ref $jsnonnull.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:50:4
  (return (call $$getString_||__java_lang_String_<once>_@jsnonnull.Main ))
 )
)
(elem declare func $m_m2__java_lang_String__java_util_List__java_lang_String@jsnonnull.Main)

;;; String Main.m3(String a, String... args)
(func $m_m3__java_lang_String__arrayOf_java_lang_String__java_lang_String@jsnonnull.Main
 (type $function.m_m3__java_lang_String__arrayOf_java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $a (ref null $java.lang.String))
 (param $args (ref null $javaemul.internal.WasmArray.OfObject))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:54:16
 (local $this (ref null $jsnonnull.Main))
 (local.set $this (ref.cast (ref $jsnonnull.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:55:4
  (return (ref.null $java.lang.String))
 )
)
(elem declare func $m_m3__java_lang_String__arrayOf_java_lang_String__java_lang_String@jsnonnull.Main)

;;; void Main.m4(MyFunction f)
(func $m_m4__jsnonnull_Main_MyFunction__void@jsnonnull.Main
 (type $function.m_m4__jsnonnull_Main_MyFunction__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $f (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:58:14
 (local $this (ref null $jsnonnull.Main))
 (local.set $this (ref.cast (ref $jsnonnull.Main) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_m4__jsnonnull_Main_MyFunction__void@jsnonnull.Main)

;;; void Main.$init()
(func $$init__void_$p_jsnonnull_Main@jsnonnull.Main
 (param $this (ref null $jsnonnull.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:26:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:27:2
  (struct.set $jsnonnull.Main $f1@jsnonnull.Main (local.get $this) (call $$getString_|Hello|__java_lang_String_<once>_@jsnonnull.Main ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:28:2
  (struct.set $jsnonnull.Main $f2@jsnonnull.Main (local.get $this) (ref.null $java.lang.String))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:29:2
  (struct.set $jsnonnull.Main $f4@jsnonnull.Main (local.get $this) (call $$create__@java.util.ArrayList ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:30:2
  (struct.set $jsnonnull.Main $f5@jsnonnull.Main (local.get $this) (call $$create__@java.util.ArrayList ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:31:2
  (struct.set $jsnonnull.Main $f6@jsnonnull.Main (local.get $this) (call $$create__@java.util.ArrayList ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:32:2
  (struct.set $jsnonnull.Main $f7@jsnonnull.Main (local.get $this) (ref.null $java.lang.Object))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:33:2
  (struct.set $jsnonnull.Main $f8@jsnonnull.Main (local.get $this) (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 0 )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:35:2
  (struct.set $jsnonnull.Main $f9@jsnonnull.Main (local.get $this) (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 0 )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:37:2
  (struct.set $jsnonnull.Main $f10@jsnonnull.Main (local.get $this) (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 0 )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:39:2
  (struct.set $jsnonnull.Main $f12@jsnonnull.Main (local.get $this) (call $$create__@java.util.ArrayList ))
 )
)

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

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

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

;;; Code for jsnonnull.Main.MyFunction.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsnonnull.Main.StringComparator [methods]

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

;;; void StringComparator.$ctor()
(func $$ctor__void_$p_jsnonnull_Main_StringComparator@jsnonnull.Main.StringComparator
 (param $this (ref null $jsnonnull.Main.StringComparator))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; int StringComparator.compare(String a, String b)
(func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.StringComparator
 (type $function.m_compare__java_lang_String__java_lang_String__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $a (ref null $java.lang.String))
 (param $b (ref null $java.lang.String))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:68:15
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:69:6
  (return (i32.const 0))
 )
)
(elem declare func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.StringComparator)

;;; int StringComparator.compare(T arg0, T arg1)
(func $m_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.StringComparator
 (type $function.m_compare__java_lang_Object__java_lang_Object__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (return (call_ref $function.m_compare__java_lang_String__java_lang_String__int (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.String) (local.get $arg0))(ref.cast (ref null $java.lang.String) (local.get $arg1))(struct.get $jsnonnull.Main.StringComparator.vtable $m_compare__java_lang_String__java_lang_String__int (struct.get $jsnonnull.Main.StringComparator $vtable(local.get $this)))))
 )
)
(elem declare func $m_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.StringComparator)

;;; Comparator<String> StringComparator.reversed()
(func $m_reversed__java_util_Comparator@jsnonnull.Main.StringComparator
 (type $function.m_reversed__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (return (call $m_reversed__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))))
 )
)
(elem declare func $m_reversed__java_util_Comparator@jsnonnull.Main.StringComparator)

;;; Comparator<String> StringComparator.thenComparing(Comparator<? super String> arg0)
(func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.StringComparator
 (type $function.m_thenComparing__java_util_Comparator__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (return (call $m_thenComparing__java_util_Comparator__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.StringComparator)

;;; Comparator<String> StringComparator.thenComparing(Function<? super String, ? extends U> arg0)
(func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.StringComparator
 (type $function.m_thenComparing__java_util_function_Function__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (return (call $m_thenComparing__java_util_function_Function__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.StringComparator)

;;; Comparator<String> StringComparator.thenComparing(Function<? super String, ? extends U> arg0, Comparator<? super U> arg1)
(func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.StringComparator
 (type $function.m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (return (call $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)(local.get $arg1)))
 )
)
(elem declare func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.StringComparator)

;;; Comparator<String> StringComparator.thenComparingDouble(ToDoubleFunction<? super String> arg0)
(func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.StringComparator
 (type $function.m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (return (call $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.StringComparator)

;;; Comparator<String> StringComparator.thenComparingInt(ToIntFunction<? super String> arg0)
(func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.StringComparator
 (type $function.m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (return (call $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.StringComparator)

;;; Comparator<String> StringComparator.thenComparingLong(ToLongFunction<? super String> arg0)
(func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.StringComparator
 (type $function.m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
 (local $this (ref null $jsnonnull.Main.StringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.StringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:66:22
  (return (call $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.StringComparator)

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

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

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

;;; Code for jsnonnull.Main.NullableStringComparator [methods]

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

;;; void NullableStringComparator.$ctor()
(func $$ctor__void_$p_jsnonnull_Main_NullableStringComparator@jsnonnull.Main.NullableStringComparator
 (param $this (ref null $jsnonnull.Main.NullableStringComparator))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; int NullableStringComparator.compare(String a, String b)
(func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.NullableStringComparator
 (type $function.m_compare__java_lang_String__java_lang_String__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $a (ref null $java.lang.String))
 (param $b (ref null $java.lang.String))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:76:15
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:77:6
  (return (i32.const 0))
 )
)
(elem declare func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.NullableStringComparator)

;;; int NullableStringComparator.compare(T arg0, T arg1)
(func $m_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.NullableStringComparator
 (type $function.m_compare__java_lang_Object__java_lang_Object__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (return (call_ref $function.m_compare__java_lang_String__java_lang_String__int (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.String) (local.get $arg0))(ref.cast (ref null $java.lang.String) (local.get $arg1))(struct.get $jsnonnull.Main.NullableStringComparator.vtable $m_compare__java_lang_String__java_lang_String__int (struct.get $jsnonnull.Main.NullableStringComparator $vtable(local.get $this)))))
 )
)
(elem declare func $m_compare__java_lang_Object__java_lang_Object__int@jsnonnull.Main.NullableStringComparator)

;;; Comparator<String> NullableStringComparator.reversed()
(func $m_reversed__java_util_Comparator@jsnonnull.Main.NullableStringComparator
 (type $function.m_reversed__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (return (call $m_reversed__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))))
 )
)
(elem declare func $m_reversed__java_util_Comparator@jsnonnull.Main.NullableStringComparator)

;;; Comparator<String> NullableStringComparator.thenComparing(Comparator<? super String> arg0)
(func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator
 (type $function.m_thenComparing__java_util_Comparator__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (return (call $m_thenComparing__java_util_Comparator__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparing__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)

;;; Comparator<String> NullableStringComparator.thenComparing(Function<? super String, ? extends U> arg0)
(func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.NullableStringComparator
 (type $function.m_thenComparing__java_util_function_Function__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (return (call $m_thenComparing__java_util_function_Function__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparing__java_util_function_Function__java_util_Comparator@jsnonnull.Main.NullableStringComparator)

;;; Comparator<String> NullableStringComparator.thenComparing(Function<? super String, ? extends U> arg0, Comparator<? super U> arg1)
(func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator
 (type $function.m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (return (call $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)(local.get $arg1)))
 )
)
(elem declare func $m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator@jsnonnull.Main.NullableStringComparator)

;;; Comparator<String> NullableStringComparator.thenComparingDouble(ToDoubleFunction<? super String> arg0)
(func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator
 (type $function.m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (return (call $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)

;;; Comparator<String> NullableStringComparator.thenComparingInt(ToIntFunction<? super String> arg0)
(func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator
 (type $function.m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (return (call $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)

;;; Comparator<String> NullableStringComparator.thenComparingLong(ToLongFunction<? super String> arg0)
(func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator
 (type $function.m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
 (local $this (ref null $jsnonnull.Main.NullableStringComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NullableStringComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:74:22
  (return (call $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@java.util.Comparator (ref.as_non_null (local.get $this))(local.get $arg0)))
 )
)
(elem declare func $m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator@jsnonnull.Main.NullableStringComparator)

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

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

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

;;; Code for jsnonnull.Main.NonNullableStringSubNullableComparator [methods]

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

;;; void NonNullableStringSubNullableComparator.$ctor()
(func $$ctor__void_$p_jsnonnull_Main_NonNullableStringSubNullableComparator@jsnonnull.Main.NonNullableStringSubNullableComparator
 (param $this (ref null $jsnonnull.Main.NonNullableStringSubNullableComparator))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:81:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:81:22
  (call $$ctor__void_$p_jsnonnull_Main_NullableStringComparator@jsnonnull.Main.NullableStringComparator (ref.as_non_null (local.get $this)))
 )
)

;;; int NonNullableStringSubNullableComparator.compare(String a, String b)
(func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.NonNullableStringSubNullableComparator
 (type $function.m_compare__java_lang_String__java_lang_String__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $a (ref null $java.lang.String))
 (param $b (ref null $java.lang.String))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:85:15
 (local $this (ref null $jsnonnull.Main.NonNullableStringSubNullableComparator))
 (local.set $this (ref.cast (ref $jsnonnull.Main.NonNullableStringSubNullableComparator) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsnonnull/readable-j2wasm.js/jsnonnull/Main.java:86:6
  (return (i32.const 0))
 )
)
(elem declare func $m_compare__java_lang_String__java_lang_String__int@jsnonnull.Main.NonNullableStringSubNullableComparator)

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

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

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