;;; Code for jsfunction.JsFunctionOptimization.F [type definition]
(type $jsfunction.JsFunctionOptimization.F.vtable (sub (struct
 (field $m_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)

;;; Code for jsfunction.Main.Function [type definition]
(type $jsfunction.Main.Function.vtable (sub (struct
 (field $m_apply__java_lang_Object__java_lang_Object (ref $function.m_apply__java_lang_Object__java_lang_Object))
 ))
)

;;; Code for jsfunction.Main.JsFunctionInterface [type definition]
(type $jsfunction.Main.JsFunctionInterface.vtable (sub (struct
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 (field $m_overlayMethod__int (ref $function.m_overlayMethod__int))
 ))
)

;;; Code for jsfunction.Main.JsFunctionVarargs [type definition]
(type $jsfunction.Main.JsFunctionVarargs.vtable (sub (struct
 (field $m_m__int__arrayOf_int__int (ref $function.m_m__int__arrayOf_int__int))
 ))
)

;;; Code for jsfunction.Main.ForEachCallBack [type definition]
(type $jsfunction.Main.ForEachCallBack.vtable (sub (struct
 (field $m_onInvoke__java_lang_Object__int__arrayOf_java_lang_Object__java_lang_Object (ref $function.m_onInvoke__java_lang_Object__int__arrayOf_java_lang_Object__java_lang_Object))
 ))
)

;;; Code for jsfunction.Main.ElementalJsFunction [type definition]
(type $jsfunction.Main.ElementalJsFunction.vtable (sub (struct
 (field $m_call__arrayOf_java_lang_Object__java_lang_Object (ref $function.m_call__arrayOf_java_lang_Object__java_lang_Object))
 ))
)

;;; Code for jsfunction.Main.JsFunctionVarargsGenerics [type definition]
(type $jsfunction.Main.JsFunctionVarargsGenerics.vtable (sub (struct
 (field $m_m__int__arrayOf_java_lang_Object__int (ref $function.m_m__int__arrayOf_java_lang_Object__int))
 ))
)

;;; Code for jsfunction.Main.SimpleJsFunction [type definition]
(type $jsfunction.Main.SimpleJsFunction.vtable (sub (struct
 (field $m_m__void (ref $function.m_m__void))
 ))
)

;;; Code for jsfunction.Main.JsFunctionOptional [type definition]
(type $jsfunction.Main.JsFunctionOptional.vtable (sub (struct
 (field $m_m__int__java_lang_Double__int (ref $function.m_m__int__java_lang_Double__int))
 ))
)

;;; Code for jsfunction.Main.ParametricJsFunction [type definition]
(type $jsfunction.Main.ParametricJsFunction.vtable (sub (struct
 (field $m_call__java_lang_Object__void (ref $function.m_call__java_lang_Object__void))
 ))
)

;;; Code for jsfunction.Main.ApiWithMethodReturningParametricJsFunction [type definition]
(type $jsfunction.Main.ApiWithMethodReturningParametricJsFunction.vtable (sub (struct
 (field $m_anApi__jsfunction_Main_ParametricJsFunction (ref $function.m_anApi__jsfunction_Main_ParametricJsFunction))
 ))
)

;;; Code for jsfunction.Main.JsBiFunction [type definition]
(type $jsfunction.Main.JsBiFunction.vtable (sub (struct
 (field $m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object))
 ))
)

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay [type definition]
(type $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay.vtable (sub (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 ))
)
(type $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay (sub (struct
 (field $vtable (ref $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay.vtable))
 (field $itable (ref $itable))
 ))
)

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

;;; Code for jsfunction.JsFunctionOptimization.F.$LambdaAdaptor [type definition]
(type $jsfunction.JsFunctionOptimization.F.$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_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor.vtable))
 (field $itable (ref $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.1.1.2.1 [type definition]
(type $jsfunction.JsFunctionOptimization.1.1.2.1.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_sayHey__java_lang_String (ref $function.m_sayHey__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.1.1.2.1 (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.1.1.2.1.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@jsfunction.JsFunctionOptimization.1.1.2.1 (mut (ref null $jsfunction.JsFunctionOptimization.1.1.2)))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.1.1.2 [type definition]
(type $jsfunction.JsFunctionOptimization.1.1.2.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_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.1.1.2 (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.1.1.2.vtable))
 (field $itable (ref $jsfunction.JsFunctionOptimization.1.1.2.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$captured_r@jsfunction.JsFunctionOptimization.1.1.2 (mut i32))
 (field $$captured_var@jsfunction.JsFunctionOptimization.1.1.2 (mut i32))
 (field $$captured_x@jsfunction.JsFunctionOptimization.1.1.2 (mut (ref null $java.lang.String)))
 (field $$outer_this@jsfunction.JsFunctionOptimization.1.1.2 (mut (ref null $jsfunction.JsFunctionOptimization.1.1)))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.1.1 [type definition]
(type $jsfunction.JsFunctionOptimization.1.1.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_m__void_$pp_jsfunction (ref $function.m_m__void_$pp_jsfunction))
 ))
)
(type $jsfunction.JsFunctionOptimization.1.1 (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.1.1.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$captured_r@jsfunction.JsFunctionOptimization.1.1 (mut i32))
 (field $$captured_x@jsfunction.JsFunctionOptimization.1.1 (mut (ref null $java.lang.String)))
 (field $$outer_this@jsfunction.JsFunctionOptimization.1.1 (mut (ref null $jsfunction.JsFunctionOptimization.1)))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.1 [type definition]
(type $jsfunction.JsFunctionOptimization.1.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_m__void_$pp_jsfunction (ref $function.m_m__void_$pp_jsfunction))
 ))
)
(type $jsfunction.JsFunctionOptimization.1 (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.1.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$captured_r@jsfunction.JsFunctionOptimization.1 (mut i32))
 (field $$outer_this@jsfunction.JsFunctionOptimization.1 (mut (ref null $jsfunction.JsFunctionOptimization)))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.4 [type definition]
(type $jsfunction.JsFunctionOptimization.4.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_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.4 (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.4.vtable))
 (field $itable (ref $jsfunction.JsFunctionOptimization.4.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@jsfunction.JsFunctionOptimization.4 (mut (ref null $jsfunction.JsFunctionOptimization)))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.5 [type definition]
(type $jsfunction.JsFunctionOptimization.5.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_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.5 (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.5.vtable))
 (field $itable (ref $jsfunction.JsFunctionOptimization.5.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@jsfunction.JsFunctionOptimization.5 (mut (ref null $jsfunction.JsFunctionOptimization)))
 ))
)

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

;;; Code for jsfunction.Main [type definition]
(type $jsfunction.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_acceptsJsFunctionInVarargs__arrayOf_jsfunction_Main_SimpleJsFunction__void_$pp_jsfunction (ref $function.m_acceptsJsFunctionInVarargs__arrayOf_jsfunction_Main_SimpleJsFunction__void_$pp_jsfunction))
 (field $m_acceptsVarargsJsFunctionWithParemetrizedTypeInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction (ref $function.m_acceptsVarargsJsFunctionWithParemetrizedTypeInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction))
 (field $m_acceptsVarargsJsFunctionWithParemetrizedType__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction (ref $function.m_acceptsVarargsJsFunctionWithParemetrizedType__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction))
 (field $m_acceptsVarargsJsFunctionWithTypeVariableInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction (ref $function.m_acceptsVarargsJsFunctionWithTypeVariableInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction))
 (field $m_acceptsVarargsJsFunctionWithTypeVariable__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction (ref $function.m_acceptsVarargsJsFunctionWithTypeVariable__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction))
 (field $m_testFunctionExpressionTypeReplacement__void_$pp_jsfunction (ref $function.m_testFunctionExpressionTypeReplacement__void_$pp_jsfunction))
 (field $m_testJsFunctionClassLiterals__void_$pp_jsfunction (ref $function.m_testJsFunctionClassLiterals__void_$pp_jsfunction))
 (field $m_testJsFunctionErasureCasts__void (ref $function.m_testJsFunctionErasureCasts__void))
 (field $m_testJsFunctionOptional__void_$pp_jsfunction (ref $function.m_testJsFunctionOptional__void_$pp_jsfunction))
 (field $m_testJsFunctionPropertyCall__void_$pp_jsfunction (ref $function.m_testJsFunctionPropertyCall__void_$pp_jsfunction))
 (field $m_testJsFunctionThis__void (ref $function.m_testJsFunctionThis__void))
 (field $m_testJsFunctionVarargsInnerClass__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction (ref $function.m_testJsFunctionVarargsInnerClass__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction))
 (field $m_testJsFunctionVarargs__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction (ref $function.m_testJsFunctionVarargs__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction))
 (field $m_testJsFunction__void (ref $function.m_testJsFunction__void))
 (field $m_testJsFunctionsCapturingLocal__void (ref $function.m_testJsFunctionsCapturingLocal__void))
 (field $m_testVarArgsMethodReferenceToJsFuncion__void (ref $function.m_testVarArgsMethodReferenceToJsFuncion__void))
 ))
)
(type $jsfunction.Main (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $jsFunctionFieldParameterized@jsfunction.Main (mut (ref null $java.lang.Object)))
 (field $jsFunctionFieldWildcard@jsfunction.Main (mut (ref null $java.lang.Object)))
 ))
)

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

;;; Code for jsfunction.Main.JsFunctionInterface.$LambdaAdaptor [type definition]
(type $jsfunction.Main.JsFunctionInterface.$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_foo__int__int (ref $function.m_foo__int__int))
 (field $m_overlayMethod__int (ref $function.m_overlayMethod__int))
 ))
)
(type $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor.vtable))
 (field $itable (ref $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

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

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

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

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

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

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

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

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

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

;;; Code for jsfunction.Main.JsFunctionImplementation [type definition]
(type $jsfunction.Main.JsFunctionImplementation.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_foo__int__int (ref $function.m_foo__int__int))
 (field $m_overlayMethod__int (ref $function.m_overlayMethod__int))
 ))
)
(type $jsfunction.Main.JsFunctionImplementation (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.JsFunctionImplementation.vtable))
 (field $itable (ref $jsfunction.Main.JsFunctionImplementation.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $anotherStoredThis@jsfunction.Main.JsFunctionImplementation (mut (ref null $jsfunction.Main.JsFunctionImplementation)))
 (field $field@jsfunction.Main.JsFunctionImplementation (mut i32))
 (field $storedThis@jsfunction.Main.JsFunctionImplementation (mut (ref null $jsfunction.Main.JsFunctionImplementation)))
 ))
)

;;; Code for jsfunction.Main.TestCaptureOuterParametricClass [type definition]
(type $jsfunction.Main.TestCaptureOuterParametricClass.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_test__void (ref $function.m_test__void))
 ))
)
(type $jsfunction.Main.TestCaptureOuterParametricClass (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.TestCaptureOuterParametricClass.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.JsFunctionOptionalImpl [type definition]
(type $jsfunction.Main.JsFunctionOptionalImpl.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_m__int__java_lang_Double__int (ref $function.m_m__int__java_lang_Double__int))
 ))
)
(type $jsfunction.Main.JsFunctionOptionalImpl (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.JsFunctionOptionalImpl.vtable))
 (field $itable (ref $jsfunction.Main.JsFunctionOptionalImpl.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.Implementor [type definition]
(type $jsfunction.Main.Implementor.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_anApi__jsfunction_Main_ParametricJsFunction (ref $function.m_anApi__jsfunction_Main_ParametricJsFunction))
 ))
)
(type $jsfunction.Main.Implementor (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.Implementor.vtable))
 (field $itable (ref $jsfunction.Main.Implementor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.ParamtericImplementation [type definition]
(type $jsfunction.Main.ParamtericImplementation.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_call__java_lang_Object__void (ref $function.m_call__java_lang_Object__void))
 ))
)
(type $jsfunction.Main.ParamtericImplementation (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.ParamtericImplementation.vtable))
 (field $itable (ref $jsfunction.Main.ParamtericImplementation.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.ClassWithJsFunctionProperty [type definition]
(type $jsfunction.Main.ClassWithJsFunctionProperty.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_getFunction__jsfunction_Main_ParametricJsFunction_$pp_jsfunction (ref $function.m_getFunction__jsfunction_Main_ParametricJsFunction_$pp_jsfunction))
 ))
)
(type $jsfunction.Main.ClassWithJsFunctionProperty (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.ClassWithJsFunctionProperty.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $function@jsfunction.Main.ClassWithJsFunctionProperty (mut (ref null $java.lang.Object)))
 ))
)

;;; Code for jsfunction.Main.DoubleDoubleJsBiFunction [type definition]
(type $jsfunction.Main.DoubleDoubleJsBiFunction.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_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object))
 ))
)
(type $jsfunction.Main.DoubleDoubleJsBiFunction (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.DoubleDoubleJsBiFunction.vtable))
 (field $itable (ref $jsfunction.Main.DoubleDoubleJsBiFunction.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.TIntegerJsBiFunction [type definition]
(type $jsfunction.Main.TIntegerJsBiFunction.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_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object))
 ))
)
(type $jsfunction.Main.TIntegerJsBiFunction (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.TIntegerJsBiFunction.vtable))
 (field $itable (ref $jsfunction.Main.TIntegerJsBiFunction.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter [type definition]

;;; Code for jsfunction.Main.RecursiveParametricJsFunctionImplementation [type definition]
(type $jsfunction.Main.RecursiveParametricJsFunctionImplementation.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_call__java_lang_Object__void (ref $function.m_call__java_lang_Object__void))
 ))
)
(type $jsfunction.Main.RecursiveParametricJsFunctionImplementation (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.RecursiveParametricJsFunctionImplementation.vtable))
 (field $itable (ref $jsfunction.Main.RecursiveParametricJsFunctionImplementation.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.RecursiveJsFunctionImplementation [type definition]
(type $jsfunction.Main.RecursiveJsFunctionImplementation.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_call__java_lang_Object__void (ref $function.m_call__java_lang_Object__void))
 ))
)
(type $jsfunction.Main.RecursiveJsFunctionImplementation (sub $java.lang.Object (struct
 (field $vtable (ref $jsfunction.Main.RecursiveJsFunctionImplementation.vtable))
 (field $itable (ref $jsfunction.Main.RecursiveJsFunctionImplementation.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 [type definition]
(type $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.vtable (sub $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (sub $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.vtable))
 (field $itable (ref $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$captured_r1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (mut i32))
 (field $$captured_var1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (mut i32))
 (field $$captured_x1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (mut (ref null $java.lang.String)))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 [type definition]
(type $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2.vtable (sub $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (sub $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2.vtable))
 (field $itable (ref $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$captured_r@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (mut i32))
 (field $$captured_var@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (mut i32))
 (field $$captured_x@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (mut (ref null $java.lang.String)))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.$LambdaImplementor$3 [type definition]
(type $jsfunction.JsFunctionOptimization.$LambdaImplementor$3.vtable (sub $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.$LambdaImplementor$3 (sub $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.$LambdaImplementor$3.vtable))
 (field $itable (ref $jsfunction.JsFunctionOptimization.$LambdaImplementor$3.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.$LambdaImplementor$4 [type definition]
(type $jsfunction.JsFunctionOptimization.$LambdaImplementor$4.vtable (sub $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_m__java_lang_String__java_lang_String (ref $function.m_m__java_lang_String__java_lang_String))
 ))
)
(type $jsfunction.JsFunctionOptimization.$LambdaImplementor$4 (sub $jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.JsFunctionOptimization.$LambdaImplementor$4.vtable))
 (field $itable (ref $jsfunction.JsFunctionOptimization.$LambdaImplementor$4.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.$LambdaImplementor$1 [type definition]
(type $jsfunction.Main.$LambdaImplementor$1.vtable (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 (field $m_overlayMethod__int (ref $function.m_overlayMethod__int))
 ))
)
(type $jsfunction.Main.$LambdaImplementor$1 (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.Main.$LambdaImplementor$1.vtable))
 (field $itable (ref $jsfunction.Main.$LambdaImplementor$1.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$captured_n@jsfunction.Main.$LambdaImplementor$1 (mut i32))
 ))
)

;;; Code for jsfunction.Main.$LambdaImplementor$2 [type definition]
(type $jsfunction.Main.$LambdaImplementor$2.vtable (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 (field $m_overlayMethod__int (ref $function.m_overlayMethod__int))
 ))
)
(type $jsfunction.Main.$LambdaImplementor$2 (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.Main.$LambdaImplementor$2.vtable))
 (field $itable (ref $jsfunction.Main.$LambdaImplementor$2.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$captured_n@jsfunction.Main.$LambdaImplementor$2 (mut i32))
 ))
)

;;; Code for jsfunction.Main.$LambdaImplementor$3 [type definition]
(type $jsfunction.Main.$LambdaImplementor$3.vtable (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 (field $m_overlayMethod__int (ref $function.m_overlayMethod__int))
 ))
)
(type $jsfunction.Main.$LambdaImplementor$3 (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.Main.$LambdaImplementor$3.vtable))
 (field $itable (ref $jsfunction.Main.$LambdaImplementor$3.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@jsfunction.Main.$LambdaImplementor$3 (mut (ref null $jsfunction.Main)))
 ))
)

;;; Code for jsfunction.Main.$LambdaImplementor$4 [type definition]
(type $jsfunction.Main.$LambdaImplementor$4.vtable (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 (field $m_overlayMethod__int (ref $function.m_overlayMethod__int))
 ))
)
(type $jsfunction.Main.$LambdaImplementor$4 (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.Main.$LambdaImplementor$4.vtable))
 (field $itable (ref $jsfunction.Main.$LambdaImplementor$4.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@jsfunction.Main.$LambdaImplementor$4 (mut (ref null $jsfunction.Main)))
 ))
)

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

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

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

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

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

;;; Code for jsfunction.Main.$LambdaImplementor$10 [type definition]
(type $jsfunction.Main.$LambdaImplementor$10.vtable (sub $jsfunction.Main.ParametricJsFunction.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_call__java_lang_Object__void (ref $function.m_call__java_lang_Object__void))
 (field $m_call__java_lang_String__void (ref $function.m_call__java_lang_String__void))
 ))
)
(type $jsfunction.Main.$LambdaImplementor$10 (sub $jsfunction.Main.ParametricJsFunction.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.Main.$LambdaImplementor$10.vtable))
 (field $itable (ref $jsfunction.Main.$LambdaImplementor$10.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.$LambdaImplementor$11 [type definition]
(type $jsfunction.Main.$LambdaImplementor$11.vtable (sub $jsfunction.Main.ParametricJsFunction.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_call__java_lang_Object__void (ref $function.m_call__java_lang_Object__void))
 (field $m_call__java_lang_String__void (ref $function.m_call__java_lang_String__void))
 ))
)
(type $jsfunction.Main.$LambdaImplementor$11 (sub $jsfunction.Main.ParametricJsFunction.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.Main.$LambdaImplementor$11.vtable))
 (field $itable (ref $jsfunction.Main.$LambdaImplementor$11.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 [type definition]
(type $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12.vtable (sub $jsfunction.Main.Function.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_apply__java_lang_Object__java_lang_Object (ref $function.m_apply__java_lang_Object__java_lang_Object))
 ))
)
(type $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 (sub $jsfunction.Main.Function.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12.vtable))
 (field $itable (ref $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 [type definition]
(type $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13.vtable (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 (field $m_overlayMethod__int (ref $function.m_overlayMethod__int))
 ))
)
(type $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 (sub $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (struct
 (field $vtable (ref $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13.vtable))
 (field $itable (ref $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 (mut (ref null extern)))
 ))
)

;;; Code for jsfunction.JsFunctionOptimization.F [imports]

;;; Code for jsfunction.Main.Function [imports]

;;; Code for jsfunction.Main.JsFunctionInterface [imports]

;;; Code for jsfunction.Main.JsFunctionVarargs [imports]

;;; Code for jsfunction.Main.ForEachCallBack [imports]

;;; Code for jsfunction.Main.ElementalJsFunction [imports]

;;; Code for jsfunction.Main.JsFunctionVarargsGenerics [imports]

;;; Code for jsfunction.Main.SimpleJsFunction [imports]

;;; Code for jsfunction.Main.JsFunctionOptional [imports]

;;; Code for jsfunction.Main.ParametricJsFunction [imports]

;;; Code for jsfunction.Main.ApiWithMethodReturningParametricJsFunction [imports]

;;; Code for jsfunction.Main.JsBiFunction [imports]

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay [imports]

;;; Code for jsfunction.JsFunctionOptimization [imports]

;;; Code for jsfunction.JsFunctionOptimization.F.$LambdaAdaptor [imports]

;;; Code for jsfunction.JsFunctionOptimization.1.1.2.1 [imports]

;;; Code for jsfunction.JsFunctionOptimization.1.1.2 [imports]

;;; Code for jsfunction.JsFunctionOptimization.1.1 [imports]

;;; Code for jsfunction.JsFunctionOptimization.1 [imports]

;;; Code for jsfunction.JsFunctionOptimization.4 [imports]

;;; Code for jsfunction.JsFunctionOptimization.5 [imports]

;;; Code for jsfunction.JsFunctionOptimization.Holder [imports]

;;; Code for jsfunction.Main [imports]

;;; Code for jsfunction.Main.Function.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.JsFunctionInterface.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.JsFunctionVarargs.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.ForEachCallBack.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.ElementalJsFunction.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.JsFunctionVarargsGenerics.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.SimpleJsFunction.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.JsFunctionOptional.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.ParametricJsFunction.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.ApiWithMethodReturningParametricJsFunction.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.JsBiFunction.$LambdaAdaptor [imports]

;;; Code for jsfunction.Main.JsFunctionImplementation [imports]

;;; Code for jsfunction.Main.TestCaptureOuterParametricClass [imports]

;;; Code for jsfunction.Main.JsFunctionOptionalImpl [imports]

;;; Code for jsfunction.Main.Implementor [imports]

;;; Code for jsfunction.Main.ParamtericImplementation [imports]

;;; Code for jsfunction.Main.ClassWithJsFunctionProperty [imports]

;;; Code for jsfunction.Main.DoubleDoubleJsBiFunction [imports]

;;; Code for jsfunction.Main.TIntegerJsBiFunction [imports]

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter [imports]

;;; TestJsFunctionInJsOverlayCapturingOuter()
(func $m_<init>__@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter (import "imports" "Array.constructor") 
 (result (ref null extern))
)

;;; Code for jsfunction.Main.RecursiveParametricJsFunctionImplementation [imports]

;;; Code for jsfunction.Main.RecursiveJsFunctionImplementation [imports]

;;; Code for jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 [imports]

;;; Code for jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 [imports]

;;; Code for jsfunction.JsFunctionOptimization.$LambdaImplementor$3 [imports]

;;; Code for jsfunction.JsFunctionOptimization.$LambdaImplementor$4 [imports]

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

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

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

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

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

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

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

;;; Code for jsfunction.Main.$LambdaImplementor$8 [imports]

;;; Code for jsfunction.Main.$LambdaImplementor$9 [imports]

;;; Code for jsfunction.Main.$LambdaImplementor$10 [imports]

;;; Code for jsfunction.Main.$LambdaImplementor$11 [imports]

;;; Code for jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 [imports]

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 [imports]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

;;; Code for jsfunction.JsFunctionOptimization [vtable.init]
(global $jsfunction.JsFunctionOptimization.vtable (ref $jsfunction.JsFunctionOptimization.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization)
  (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_main__int__void@jsfunction.JsFunctionOptimization)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 [vtable.init]
(global $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.vtable (ref $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1)
 )
)
(global $jsfunction.JsFunctionOptimization.F.vtable@$jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (ref $jsfunction.JsFunctionOptimization.F.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.F.vtable
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 [vtable.init]
(global $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2.vtable (ref $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2)
 )
)
(global $jsfunction.JsFunctionOptimization.F.vtable@$jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (ref $jsfunction.JsFunctionOptimization.F.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.F.vtable
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.1.1.2.1 [vtable.init]
(global $jsfunction.JsFunctionOptimization.1.1.2.1.vtable (ref $jsfunction.JsFunctionOptimization.1.1.2.1.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.1.1.2.1.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.1.1.2.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)
  (ref.func $m_sayHey__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2.1)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.1.1.2 [vtable.init]
(global $jsfunction.JsFunctionOptimization.1.1.2.vtable (ref $jsfunction.JsFunctionOptimization.1.1.2.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.1.1.2.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.1.1.2)
  (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_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2)
 )
)
(global $jsfunction.JsFunctionOptimization.F.vtable@$jsfunction.JsFunctionOptimization.1.1.2 (ref $jsfunction.JsFunctionOptimization.F.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.F.vtable
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.1.1 [vtable.init]
(global $jsfunction.JsFunctionOptimization.1.1.vtable (ref $jsfunction.JsFunctionOptimization.1.1.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.1.1.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.1.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)
  (ref.func $m_m__void_$pp_jsfunction@jsfunction.JsFunctionOptimization.1.1)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.1 [vtable.init]
(global $jsfunction.JsFunctionOptimization.1.vtable (ref $jsfunction.JsFunctionOptimization.1.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.1.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.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)
  (ref.func $m_m__void_$pp_jsfunction@jsfunction.JsFunctionOptimization.1)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.$LambdaImplementor$3 [vtable.init]
(global $jsfunction.JsFunctionOptimization.$LambdaImplementor$3.vtable (ref $jsfunction.JsFunctionOptimization.$LambdaImplementor$3.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.$LambdaImplementor$3.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.$LambdaImplementor$3)
 )
)
(global $jsfunction.JsFunctionOptimization.F.vtable@$jsfunction.JsFunctionOptimization.$LambdaImplementor$3 (ref $jsfunction.JsFunctionOptimization.F.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.F.vtable
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.$LambdaImplementor$3)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.$LambdaImplementor$4 [vtable.init]
(global $jsfunction.JsFunctionOptimization.$LambdaImplementor$4.vtable (ref $jsfunction.JsFunctionOptimization.$LambdaImplementor$4.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.$LambdaImplementor$4.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.$LambdaImplementor$4)
 )
)
(global $jsfunction.JsFunctionOptimization.F.vtable@$jsfunction.JsFunctionOptimization.$LambdaImplementor$4 (ref $jsfunction.JsFunctionOptimization.F.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.F.vtable
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.$LambdaImplementor$4)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.4 [vtable.init]
(global $jsfunction.JsFunctionOptimization.4.vtable (ref $jsfunction.JsFunctionOptimization.4.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.4.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.4)
  (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_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.4)
 )
)
(global $jsfunction.JsFunctionOptimization.F.vtable@$jsfunction.JsFunctionOptimization.4 (ref $jsfunction.JsFunctionOptimization.F.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.F.vtable
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.4)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.5 [vtable.init]
(global $jsfunction.JsFunctionOptimization.5.vtable (ref $jsfunction.JsFunctionOptimization.5.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.5.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.5)
  (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_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.5)
 )
)
(global $jsfunction.JsFunctionOptimization.F.vtable@$jsfunction.JsFunctionOptimization.5 (ref $jsfunction.JsFunctionOptimization.F.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.F.vtable
  (ref.func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.5)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.Holder [vtable.init]
(global $jsfunction.JsFunctionOptimization.Holder.vtable (ref $jsfunction.JsFunctionOptimization.Holder.vtable)
 (struct.new $jsfunction.JsFunctionOptimization.Holder.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.JsFunctionOptimization.Holder)
  (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 jsfunction.Main [vtable.init]
(global $jsfunction.Main.vtable (ref $jsfunction.Main.vtable)
 (struct.new $jsfunction.Main.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.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_acceptsJsFunctionInVarargs__arrayOf_jsfunction_Main_SimpleJsFunction__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_acceptsVarargsJsFunctionWithParemetrizedTypeInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_acceptsVarargsJsFunctionWithParemetrizedType__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_acceptsVarargsJsFunctionWithTypeVariableInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_acceptsVarargsJsFunctionWithTypeVariable__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_testFunctionExpressionTypeReplacement__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_testJsFunctionClassLiterals__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_testJsFunctionErasureCasts__void@jsfunction.Main)
  (ref.func $m_testJsFunctionOptional__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_testJsFunctionPropertyCall__void_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_testJsFunctionThis__void@jsfunction.Main)
  (ref.func $m_testJsFunctionVarargsInnerClass__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_testJsFunctionVarargs__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction@jsfunction.Main)
  (ref.func $m_testJsFunction__void@jsfunction.Main)
  (ref.func $m_testJsFunctionsCapturingLocal__void@jsfunction.Main)
  (ref.func $m_testVarArgsMethodReferenceToJsFuncion__void@jsfunction.Main)
 )
)

;;; Code for jsfunction.Main.$LambdaImplementor$1 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$1.vtable (ref $jsfunction.Main.$LambdaImplementor$1.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$1.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$1)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)
(global $jsfunction.Main.JsFunctionInterface.vtable@$jsfunction.Main.$LambdaImplementor$1 (ref $jsfunction.Main.JsFunctionInterface.vtable)
 (struct.new $jsfunction.Main.JsFunctionInterface.vtable
  (ref.func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$1)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)

;;; Code for jsfunction.Main.$LambdaImplementor$2 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$2.vtable (ref $jsfunction.Main.$LambdaImplementor$2.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$2.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$2)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)
(global $jsfunction.Main.JsFunctionInterface.vtable@$jsfunction.Main.$LambdaImplementor$2 (ref $jsfunction.Main.JsFunctionInterface.vtable)
 (struct.new $jsfunction.Main.JsFunctionInterface.vtable
  (ref.func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$2)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)

;;; Code for jsfunction.Main.$LambdaImplementor$3 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$3.vtable (ref $jsfunction.Main.$LambdaImplementor$3.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$3.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$3)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)
(global $jsfunction.Main.JsFunctionInterface.vtable@$jsfunction.Main.$LambdaImplementor$3 (ref $jsfunction.Main.JsFunctionInterface.vtable)
 (struct.new $jsfunction.Main.JsFunctionInterface.vtable
  (ref.func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$3)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)

;;; Code for jsfunction.Main.$LambdaImplementor$4 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$4.vtable (ref $jsfunction.Main.$LambdaImplementor$4.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$4.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$4)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)
(global $jsfunction.Main.JsFunctionInterface.vtable@$jsfunction.Main.$LambdaImplementor$4 (ref $jsfunction.Main.JsFunctionInterface.vtable)
 (struct.new $jsfunction.Main.JsFunctionInterface.vtable
  (ref.func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$4)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)

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

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

;;; Code for jsfunction.Main.$LambdaImplementor$7 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$7.vtable (ref $jsfunction.Main.$LambdaImplementor$7.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$7.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.ForEachCallBack.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_onInvoke__java_lang_Object__int__arrayOf_java_lang_Object__java_lang_Object@jsfunction.Main.$LambdaImplementor$7)
  (ref.func $m_onInvoke__jsfunction_Main_ElementalJsFunction__int__arrayOf_jsfunction_Main_ElementalJsFunction__java_lang_Object@jsfunction.Main.$LambdaImplementor$7)
 )
)
(global $jsfunction.Main.ForEachCallBack.vtable@$jsfunction.Main.$LambdaImplementor$7 (ref $jsfunction.Main.ForEachCallBack.vtable)
 (struct.new $jsfunction.Main.ForEachCallBack.vtable
  (ref.func $m_onInvoke__java_lang_Object__int__arrayOf_java_lang_Object__java_lang_Object@jsfunction.Main.$LambdaImplementor$7)
 )
)

;;; Code for jsfunction.Main.$LambdaImplementor$8 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$8.vtable (ref $jsfunction.Main.$LambdaImplementor$8.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$8.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.JsFunctionOptional.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_m__int__java_lang_Double__int@jsfunction.Main.$LambdaImplementor$8)
 )
)
(global $jsfunction.Main.JsFunctionOptional.vtable@$jsfunction.Main.$LambdaImplementor$8 (ref $jsfunction.Main.JsFunctionOptional.vtable)
 (struct.new $jsfunction.Main.JsFunctionOptional.vtable
  (ref.func $m_m__int__java_lang_Double__int@jsfunction.Main.$LambdaImplementor$8)
 )
)

;;; Code for jsfunction.Main.$LambdaImplementor$9 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$9.vtable (ref $jsfunction.Main.$LambdaImplementor$9.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$9.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.ParametricJsFunction.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$9)
 )
)
(global $jsfunction.Main.ParametricJsFunction.vtable@$jsfunction.Main.$LambdaImplementor$9 (ref $jsfunction.Main.ParametricJsFunction.vtable)
 (struct.new $jsfunction.Main.ParametricJsFunction.vtable
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$9)
 )
)

;;; Code for jsfunction.Main.$LambdaImplementor$10 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$10.vtable (ref $jsfunction.Main.$LambdaImplementor$10.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$10.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.ParametricJsFunction.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$10)
  (ref.func $m_call__java_lang_String__void@jsfunction.Main.$LambdaImplementor$10)
 )
)
(global $jsfunction.Main.ParametricJsFunction.vtable@$jsfunction.Main.$LambdaImplementor$10 (ref $jsfunction.Main.ParametricJsFunction.vtable)
 (struct.new $jsfunction.Main.ParametricJsFunction.vtable
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$10)
 )
)

;;; Code for jsfunction.Main.$LambdaImplementor$11 [vtable.init]
(global $jsfunction.Main.$LambdaImplementor$11.vtable (ref $jsfunction.Main.$LambdaImplementor$11.vtable)
 (struct.new $jsfunction.Main.$LambdaImplementor$11.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.ParametricJsFunction.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$11)
  (ref.func $m_call__java_lang_String__void@jsfunction.Main.$LambdaImplementor$11)
 )
)
(global $jsfunction.Main.ParametricJsFunction.vtable@$jsfunction.Main.$LambdaImplementor$11 (ref $jsfunction.Main.ParametricJsFunction.vtable)
 (struct.new $jsfunction.Main.ParametricJsFunction.vtable
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$11)
 )
)

;;; Code for jsfunction.Main.JsFunctionImplementation [vtable.init]
(global $jsfunction.Main.JsFunctionImplementation.vtable (ref $jsfunction.Main.JsFunctionImplementation.vtable)
 (struct.new $jsfunction.Main.JsFunctionImplementation.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.JsFunctionImplementation)
  (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_foo__int__int@jsfunction.Main.JsFunctionImplementation)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionImplementation)
 )
)
(global $jsfunction.Main.JsFunctionInterface.vtable@$jsfunction.Main.JsFunctionImplementation (ref $jsfunction.Main.JsFunctionInterface.vtable)
 (struct.new $jsfunction.Main.JsFunctionInterface.vtable
  (ref.func $m_foo__int__int@jsfunction.Main.JsFunctionImplementation)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionImplementation)
 )
)

;;; Code for jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 [vtable.init]
(global $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12.vtable (ref $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12.vtable)
 (struct.new $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.Function.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_apply__java_lang_Object__java_lang_Object@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12)
 )
)
(global $jsfunction.Main.Function.vtable@$jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 (ref $jsfunction.Main.Function.vtable)
 (struct.new $jsfunction.Main.Function.vtable
  (ref.func $m_apply__java_lang_Object__java_lang_Object@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12)
 )
)

;;; Code for jsfunction.Main.TestCaptureOuterParametricClass [vtable.init]
(global $jsfunction.Main.TestCaptureOuterParametricClass.vtable (ref $jsfunction.Main.TestCaptureOuterParametricClass.vtable)
 (struct.new $jsfunction.Main.TestCaptureOuterParametricClass.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.TestCaptureOuterParametricClass)
  (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_test__void@jsfunction.Main.TestCaptureOuterParametricClass)
 )
)

;;; Code for jsfunction.Main.JsFunctionOptionalImpl [vtable.init]
(global $jsfunction.Main.JsFunctionOptionalImpl.vtable (ref $jsfunction.Main.JsFunctionOptionalImpl.vtable)
 (struct.new $jsfunction.Main.JsFunctionOptionalImpl.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.JsFunctionOptionalImpl)
  (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_m__int__java_lang_Double__int@jsfunction.Main.JsFunctionOptionalImpl)
 )
)
(global $jsfunction.Main.JsFunctionOptional.vtable@$jsfunction.Main.JsFunctionOptionalImpl (ref $jsfunction.Main.JsFunctionOptional.vtable)
 (struct.new $jsfunction.Main.JsFunctionOptional.vtable
  (ref.func $m_m__int__java_lang_Double__int@jsfunction.Main.JsFunctionOptionalImpl)
 )
)

;;; Code for jsfunction.Main.Implementor [vtable.init]
(global $jsfunction.Main.Implementor.vtable (ref $jsfunction.Main.Implementor.vtable)
 (struct.new $jsfunction.Main.Implementor.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.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_anApi__jsfunction_Main_ParametricJsFunction@jsfunction.Main.Implementor)
 )
)
(global $jsfunction.Main.ApiWithMethodReturningParametricJsFunction.vtable@$jsfunction.Main.Implementor (ref $jsfunction.Main.ApiWithMethodReturningParametricJsFunction.vtable)
 (struct.new $jsfunction.Main.ApiWithMethodReturningParametricJsFunction.vtable
  (ref.func $m_anApi__jsfunction_Main_ParametricJsFunction@jsfunction.Main.Implementor)
 )
)

;;; Code for jsfunction.Main.ParamtericImplementation [vtable.init]
(global $jsfunction.Main.ParamtericImplementation.vtable (ref $jsfunction.Main.ParamtericImplementation.vtable)
 (struct.new $jsfunction.Main.ParamtericImplementation.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.ParamtericImplementation)
  (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_call__java_lang_Object__void@jsfunction.Main.ParamtericImplementation)
 )
)
(global $jsfunction.Main.ParametricJsFunction.vtable@$jsfunction.Main.ParamtericImplementation (ref $jsfunction.Main.ParametricJsFunction.vtable)
 (struct.new $jsfunction.Main.ParametricJsFunction.vtable
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.ParamtericImplementation)
 )
)

;;; Code for jsfunction.Main.ClassWithJsFunctionProperty [vtable.init]
(global $jsfunction.Main.ClassWithJsFunctionProperty.vtable (ref $jsfunction.Main.ClassWithJsFunctionProperty.vtable)
 (struct.new $jsfunction.Main.ClassWithJsFunctionProperty.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.ClassWithJsFunctionProperty)
  (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_getFunction__jsfunction_Main_ParametricJsFunction_$pp_jsfunction@jsfunction.Main.ClassWithJsFunctionProperty)
 )
)

;;; Code for jsfunction.Main.DoubleDoubleJsBiFunction [vtable.init]
(global $jsfunction.Main.DoubleDoubleJsBiFunction.vtable (ref $jsfunction.Main.DoubleDoubleJsBiFunction.vtable)
 (struct.new $jsfunction.Main.DoubleDoubleJsBiFunction.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.DoubleDoubleJsBiFunction)
  (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_apply__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main.DoubleDoubleJsBiFunction)
 )
)
(global $jsfunction.Main.JsBiFunction.vtable@$jsfunction.Main.DoubleDoubleJsBiFunction (ref $jsfunction.Main.JsBiFunction.vtable)
 (struct.new $jsfunction.Main.JsBiFunction.vtable
  (ref.func $m_apply__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main.DoubleDoubleJsBiFunction)
 )
)

;;; Code for jsfunction.Main.TIntegerJsBiFunction [vtable.init]
(global $jsfunction.Main.TIntegerJsBiFunction.vtable (ref $jsfunction.Main.TIntegerJsBiFunction.vtable)
 (struct.new $jsfunction.Main.TIntegerJsBiFunction.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.TIntegerJsBiFunction)
  (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_apply__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction)
 )
)
(global $jsfunction.Main.JsBiFunction.vtable@$jsfunction.Main.TIntegerJsBiFunction (ref $jsfunction.Main.JsBiFunction.vtable)
 (struct.new $jsfunction.Main.JsBiFunction.vtable
  (ref.func $m_apply__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction)
 )
)

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 [vtable.init]
(global $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13.vtable (ref $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13.vtable)
 (struct.new $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_foo__int__int@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)
(global $jsfunction.Main.JsFunctionInterface.vtable@$jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 (ref $jsfunction.Main.JsFunctionInterface.vtable)
 (struct.new $jsfunction.Main.JsFunctionInterface.vtable
  (ref.func $m_foo__int__int@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13)
  (ref.func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)
 )
)

;;; Code for jsfunction.Main.RecursiveParametricJsFunctionImplementation [vtable.init]
(global $jsfunction.Main.RecursiveParametricJsFunctionImplementation.vtable (ref $jsfunction.Main.RecursiveParametricJsFunctionImplementation.vtable)
 (struct.new $jsfunction.Main.RecursiveParametricJsFunctionImplementation.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.RecursiveParametricJsFunctionImplementation)
  (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_call__java_lang_Object__void@jsfunction.Main.RecursiveParametricJsFunctionImplementation)
 )
)
(global $jsfunction.Main.ParametricJsFunction.vtable@$jsfunction.Main.RecursiveParametricJsFunctionImplementation (ref $jsfunction.Main.ParametricJsFunction.vtable)
 (struct.new $jsfunction.Main.ParametricJsFunction.vtable
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.RecursiveParametricJsFunctionImplementation)
 )
)

;;; Code for jsfunction.Main.RecursiveJsFunctionImplementation [vtable.init]
(global $jsfunction.Main.RecursiveJsFunctionImplementation.vtable (ref $jsfunction.Main.RecursiveJsFunctionImplementation.vtable)
 (struct.new $jsfunction.Main.RecursiveJsFunctionImplementation.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.RecursiveJsFunctionImplementation)
  (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_call__java_lang_Object__void@jsfunction.Main.RecursiveJsFunctionImplementation)
 )
)
(global $jsfunction.Main.ParametricJsFunction.vtable@$jsfunction.Main.RecursiveJsFunctionImplementation (ref $jsfunction.Main.ParametricJsFunction.vtable)
 (struct.new $jsfunction.Main.ParametricJsFunction.vtable
  (ref.func $m_call__java_lang_Object__void@jsfunction.Main.RecursiveJsFunctionImplementation)
 )
)

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay [vtable.init]
(global $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay.vtable (ref $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay.vtable)
 (struct.new $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay.vtable
  (ref.func $$getClassImpl__java_lang_Class@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay)
 )
)

;;; Code for jsfunction.JsFunctionOptimization.F [methods]

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

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

;;; Code for jsfunction.Main.Function [methods]

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

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

;;; Code for jsfunction.Main.JsFunctionInterface [methods]

;;; int JsFunctionInterface.overlayMethod()
(func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface
 (param $this (ref null $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:39:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:40:6
  (return (call_ref $function.m_foo__int__int (ref.as_non_null (local.get $this))(i32.const 42)(struct.get $jsfunction.Main.JsFunctionInterface.vtable $m_foo__int__int (ref.cast (ref $jsfunction.Main.JsFunctionInterface.vtable) (call $get.itable.$jsfunction.Main.JsFunctionInterface (local.get $this))))))
 )
)
(elem declare func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface)

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

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

;;; Code for jsfunction.Main.JsFunctionVarargs [methods]

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

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

;;; Code for jsfunction.Main.ForEachCallBack [methods]

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

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

;;; Code for jsfunction.Main.ElementalJsFunction [methods]

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

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

;;; Code for jsfunction.Main.JsFunctionVarargsGenerics [methods]

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

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

;;; Code for jsfunction.Main.SimpleJsFunction [methods]

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

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

;;; Code for jsfunction.Main.JsFunctionOptional [methods]

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

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

;;; Code for jsfunction.Main.ParametricJsFunction [methods]

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

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

;;; Code for jsfunction.Main.ApiWithMethodReturningParametricJsFunction [methods]

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

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

;;; Code for jsfunction.Main.JsBiFunction [methods]

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

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

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay [methods]

;;; void $Overlay.test__$devirt(TestJsFunctionInJsOverlayCapturingOuter $thisArg)
(func $m_test__$devirt__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter__void@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay
 (param $$thisArg (ref null extern))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:372:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:372:15
  (call $$clinit__void_<once>_@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:6
  (call $m_sort__$devirt_$private__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter__jsfunction_Main_JsFunctionInterface__void@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay (local.get $$thisArg)(call $$create__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 (local.get $$thisArg)))
 )
)

;;; void $Overlay.sort__$devirt(TestJsFunctionInJsOverlayCapturingOuter arg0, JsFunctionInterface arg1)
(func $m_sort__$devirt__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter__jsfunction_Main_JsFunctionInterface__void@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay
 (param $arg0 (ref null extern))
 (param $arg1 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:377:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:377:15
  (call $$clinit__void_<once>_@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:377:15
  (call $m_sort__$devirt_$private__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter__jsfunction_Main_JsFunctionInterface__void@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay (local.get $arg0)(local.get $arg1))
 )
)

;;; void $Overlay.sort__$devirt_$private(TestJsFunctionInJsOverlayCapturingOuter $thisArg, JsFunctionInterface func)
(func $m_sort__$devirt_$private__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter__jsfunction_Main_JsFunctionInterface__void@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$Overlay
 (param $$thisArg (ref null extern))
 (param $func (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:377:15
 (block
 )
)

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

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

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

;;; Code for jsfunction.JsFunctionOptimization [methods]

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

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

;;; void JsFunctionOptimization.main(int r)
(func $m_main__int__void@jsfunction.JsFunctionOptimization
 (type $function.m_main__int__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $r i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:27:14
 (local $f (ref null $java.lang.Object))
 (local $array (ref null $javaemul.internal.WasmArray.OfObject))
 (local $this (ref null $jsfunction.JsFunctionOptimization))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:4
  (drop (call $$create__jsfunction_JsFunctionOptimization__int@jsfunction.JsFunctionOptimization.1 (local.get $this)(local.get $r)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:80:4
  (local.set $f (call $$create__@jsfunction.JsFunctionOptimization.$LambdaImplementor$3 ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:88:4
  (local.set $array (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (call $$create__@jsfunction.JsFunctionOptimization.$LambdaImplementor$4 ))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:97:4
  (drop (call $$create__jsfunction_JsFunctionOptimization__java_lang_Object@jsfunction.JsFunctionOptimization.Holder (local.get $this)(call $$create__jsfunction_JsFunctionOptimization@jsfunction.JsFunctionOptimization.4 (local.get $this))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:105:4
  (drop (call $$create__jsfunction_JsFunctionOptimization__int__arrayOf_java_lang_Object@jsfunction.JsFunctionOptimization.Holder (local.get $this)(i32.const 1)(call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (call $$create__jsfunction_JsFunctionOptimization@jsfunction.JsFunctionOptimization.5 (local.get $this))))))
 )
)
(elem declare func $m_main__int__void@jsfunction.JsFunctionOptimization)

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

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

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

;;; Code for jsfunction.JsFunctionOptimization.F.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.JsFunctionOptimization.1.1.2.1 [methods]

;;; <anonymous> extends Object <anonymous> extends Object.$create(<anonymous> implements F $outer_this)
(func $$create__jsfunction_JsFunctionOptimization_1_1_2@jsfunction.JsFunctionOptimization.1.1.2.1
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization.1.1.2))
 (result (ref null $jsfunction.JsFunctionOptimization.1.1.2.1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.1.1.2.1))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1.2.1 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.1.1.2.1 (global.get $jsfunction.JsFunctionOptimization.1.1.2.1.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $jsfunction.JsFunctionOptimization.1.1.2)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (call $$ctor__jsfunction_JsFunctionOptimization_1_1_2__void_$p_jsfunction_JsFunctionOptimization_1_1_2_1@jsfunction.JsFunctionOptimization.1.1.2.1 (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (return (local.get $$instance))
 )
)

;;; void <anonymous> extends Object.$ctor(<anonymous> implements F $outer_this)
(func $$ctor__jsfunction_JsFunctionOptimization_1_1_2__void_$p_jsfunction_JsFunctionOptimization_1_1_2_1@jsfunction.JsFunctionOptimization.1.1.2.1
 (param $this (ref null $jsfunction.JsFunctionOptimization.1.1.2.1))
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization.1.1.2))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (struct.set $jsfunction.JsFunctionOptimization.1.1.2.1 $$outer_this@jsfunction.JsFunctionOptimization.1.1.2.1 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; String <anonymous> extends Object.sayHey()
(func $m_sayHey__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2.1
 (type $function.m_sayHey__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:67:40
 (local $this (ref null $jsfunction.JsFunctionOptimization.1.1.2.1))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.1.1.2.1) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:68:28
  (return (call $$getString_|Hey|__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1.1.2.1 ))
 )
)
(elem declare func $m_sayHey__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2.1)

;;; void <anonymous> extends Object.$clinit()
(func $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1.2.1
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (if (global.get $$class-initialized@jsfunction.JsFunctionOptimization.1.1.2.1)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (global.set $$class-initialized@jsfunction.JsFunctionOptimization.1.1.2.1 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:66:39
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

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

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

;;; Code for jsfunction.JsFunctionOptimization.1.1.2 [methods]

;;; <anonymous> implements F <anonymous> implements F.$create(<anonymous> extends Object $outer_this, int $captured_r, int $captured_var, String $captured_x)
(func $$create__jsfunction_JsFunctionOptimization_1_1__int__int__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization.1.1))
 (param $$captured_r i32)
 (param $$captured_var i32)
 (param $$captured_x (ref null $java.lang.String))
 (result (ref null $jsfunction.JsFunctionOptimization.1.1.2))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.1.1.2))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1.2 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.1.1.2 (global.get $jsfunction.JsFunctionOptimization.1.1.2.vtable) (global.get $jsfunction.JsFunctionOptimization.1.1.2.itable) (i32.const 0) (i32.const 0) (i32.const 0) (ref.null $java.lang.String) (ref.null $jsfunction.JsFunctionOptimization.1.1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (call $$ctor__jsfunction_JsFunctionOptimization_1_1__int__int__java_lang_String__void_$p_jsfunction_JsFunctionOptimization_1_1_2@jsfunction.JsFunctionOptimization.1.1.2 (ref.as_non_null (local.get $$instance))(local.get $$outer_this)(local.get $$captured_r)(local.get $$captured_var)(local.get $$captured_x))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements F.$ctor(<anonymous> extends Object $outer_this, int $captured_r, int $captured_var, String $captured_x)
(func $$ctor__jsfunction_JsFunctionOptimization_1_1__int__int__java_lang_String__void_$p_jsfunction_JsFunctionOptimization_1_1_2@jsfunction.JsFunctionOptimization.1.1.2
 (param $this (ref null $jsfunction.JsFunctionOptimization.1.1.2))
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization.1.1))
 (param $$captured_r i32)
 (param $$captured_var i32)
 (param $$captured_x (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (struct.set $jsfunction.JsFunctionOptimization.1.1.2 $$outer_this@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:27:29
  (struct.set $jsfunction.JsFunctionOptimization.1.1.2 $$captured_r@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this) (local.get $$captured_r))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:33:22
  (struct.set $jsfunction.JsFunctionOptimization.1.1.2 $$captured_var@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this) (local.get $$captured_var))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:30:15
  (struct.set $jsfunction.JsFunctionOptimization.1.1.2 $$captured_x@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this) (local.get $$captured_x))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; String <anonymous> implements F.m(String s)
(func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2
 (type $function.m_m__java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:58:32
 (local $r1 i32)
 (local $var1 i32)
 (local $x1 (ref null $java.lang.String))
 (local $$qualifier (ref null $jsfunction.JsFunctionOptimization.1.1.2.1))
 (local $this (ref null $jsfunction.JsFunctionOptimization.1.1.2))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.1.1.2) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:59:20
  (local.set $r1 (struct.get $jsfunction.JsFunctionOptimization.1.1.2 $$captured_r@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:60:20
  (local.set $var1 (struct.get $jsfunction.JsFunctionOptimization.1.1.2 $$captured_var@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:61:20
  (local.set $x1 (struct.get $jsfunction.JsFunctionOptimization.1.1.2 $$captured_x@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:62:20
  (return (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (call $m_valueOf__int__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.2 $$captured_r@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this))))(call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (local.get $s)))(call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.2 $$captured_x@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this))))(call $m_valueOf__int__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.2 $$captured_var@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this))))(call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (block (result (ref null $java.lang.String))
   (local.set $$qualifier (call $$create__jsfunction_JsFunctionOptimization_1_1_2@jsfunction.JsFunctionOptimization.1.1.2.1 (local.get $this)))
   (call_ref $function.m_sayHey__java_lang_String (ref.as_non_null (local.get $$qualifier))(struct.get $jsfunction.JsFunctionOptimization.1.1.2.1.vtable $m_sayHey__java_lang_String (struct.get $jsfunction.JsFunctionOptimization.1.1.2.1 $vtable(local.get $$qualifier))))
  ))))
 )
)
(elem declare func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2)

;;; void <anonymous> implements F.$clinit()
(func $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1.2
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (if (global.get $$class-initialized@jsfunction.JsFunctionOptimization.1.1.2)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (global.set $$class-initialized@jsfunction.JsFunctionOptimization.1.1.2 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:55:24
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

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

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

;;; Code for jsfunction.JsFunctionOptimization.1.1 [methods]

;;; <anonymous> extends Object <anonymous> extends Object.$create(<anonymous> extends Object $outer_this, int $captured_r, String $captured_x)
(func $$create__jsfunction_JsFunctionOptimization_1__int__java_lang_String@jsfunction.JsFunctionOptimization.1.1
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization.1))
 (param $$captured_r i32)
 (param $$captured_x (ref null $java.lang.String))
 (result (ref null $jsfunction.JsFunctionOptimization.1.1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:21
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.1.1))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:21
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:21
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.1.1 (global.get $jsfunction.JsFunctionOptimization.1.1.vtable) (global.get $itable.empty) (i32.const 0) (i32.const 0) (ref.null $java.lang.String) (ref.null $jsfunction.JsFunctionOptimization.1)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:21
  (call $$ctor__jsfunction_JsFunctionOptimization_1__int__java_lang_String__void_$p_jsfunction_JsFunctionOptimization_1_1@jsfunction.JsFunctionOptimization.1.1 (ref.as_non_null (local.get $$instance))(local.get $$outer_this)(local.get $$captured_r)(local.get $$captured_x))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:21
  (return (local.get $$instance))
 )
)

;;; void <anonymous> extends Object.$ctor(<anonymous> extends Object $outer_this, int $captured_r, String $captured_x)
(func $$ctor__jsfunction_JsFunctionOptimization_1__int__java_lang_String__void_$p_jsfunction_JsFunctionOptimization_1_1@jsfunction.JsFunctionOptimization.1.1
 (param $this (ref null $jsfunction.JsFunctionOptimization.1.1))
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization.1))
 (param $$captured_r i32)
 (param $$captured_x (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:21
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:21
  (struct.set $jsfunction.JsFunctionOptimization.1.1 $$outer_this@jsfunction.JsFunctionOptimization.1.1 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:27:29
  (struct.set $jsfunction.JsFunctionOptimization.1.1 $$captured_r@jsfunction.JsFunctionOptimization.1.1 (local.get $this) (local.get $$captured_r))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:30:15
  (struct.set $jsfunction.JsFunctionOptimization.1.1 $$captured_x@jsfunction.JsFunctionOptimization.1.1 (local.get $this) (local.get $$captured_x))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:21
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void <anonymous> extends Object.m()
(func $m_m__void_$pp_jsfunction@jsfunction.JsFunctionOptimization.1.1
 (type $function.m_m__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:32:15
 (local $var i32)
 (local $f (ref null $java.lang.Object))
 (local $f2 (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.JsFunctionOptimization.1.1))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.1.1) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:33:12
  (local.set $var (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:34:12
  (local.set $f (call $$create__int__int__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (struct.get $jsfunction.JsFunctionOptimization.1.1 $$captured_r@jsfunction.JsFunctionOptimization.1.1 (local.get $this))(local.get $var)(struct.get $jsfunction.JsFunctionOptimization.1.1 $$captured_x@jsfunction.JsFunctionOptimization.1.1 (local.get $this))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:54:12
  (local.set $f2 (call $$create__jsfunction_JsFunctionOptimization_1_1__int__int__java_lang_String@jsfunction.JsFunctionOptimization.1.1.2 (local.get $this)(struct.get $jsfunction.JsFunctionOptimization.1.1 $$captured_r@jsfunction.JsFunctionOptimization.1.1 (local.get $this))(local.get $var)(struct.get $jsfunction.JsFunctionOptimization.1.1 $$captured_x@jsfunction.JsFunctionOptimization.1.1 (local.get $this))))
 )
)
(elem declare func $m_m__void_$pp_jsfunction@jsfunction.JsFunctionOptimization.1.1)

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

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

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

;;; Code for jsfunction.JsFunctionOptimization.1 [methods]

;;; <anonymous> extends Object <anonymous> extends Object.$create(JsFunctionOptimization $outer_this, int $captured_r)
(func $$create__jsfunction_JsFunctionOptimization__int@jsfunction.JsFunctionOptimization.1
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 (param $$captured_r i32)
 (result (ref null $jsfunction.JsFunctionOptimization.1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:17
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.1))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:17
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:17
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.1 (global.get $jsfunction.JsFunctionOptimization.1.vtable) (global.get $itable.empty) (i32.const 0) (i32.const 0) (ref.null $jsfunction.JsFunctionOptimization)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:17
  (call $$ctor__jsfunction_JsFunctionOptimization__int__void_$p_jsfunction_JsFunctionOptimization_1@jsfunction.JsFunctionOptimization.1 (ref.as_non_null (local.get $$instance))(local.get $$outer_this)(local.get $$captured_r))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:17
  (return (local.get $$instance))
 )
)

;;; void <anonymous> extends Object.$ctor(JsFunctionOptimization $outer_this, int $captured_r)
(func $$ctor__jsfunction_JsFunctionOptimization__int__void_$p_jsfunction_JsFunctionOptimization_1@jsfunction.JsFunctionOptimization.1
 (param $this (ref null $jsfunction.JsFunctionOptimization.1))
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 (param $$captured_r i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:17
  (struct.set $jsfunction.JsFunctionOptimization.1 $$outer_this@jsfunction.JsFunctionOptimization.1 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:27:29
  (struct.set $jsfunction.JsFunctionOptimization.1 $$captured_r@jsfunction.JsFunctionOptimization.1 (local.get $this) (local.get $$captured_r))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:28:17
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void <anonymous> extends Object.m()
(func $m_m__void_$pp_jsfunction@jsfunction.JsFunctionOptimization.1
 (type $function.m_m__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:29:11
 (local $x (ref null $java.lang.String))
 (local $this (ref null $jsfunction.JsFunctionOptimization.1))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.1) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:30:8
  (local.set $x (call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:31:8
  (drop (call $$create__jsfunction_JsFunctionOptimization_1__int__java_lang_String@jsfunction.JsFunctionOptimization.1.1 (local.get $this)(struct.get $jsfunction.JsFunctionOptimization.1 $$captured_r@jsfunction.JsFunctionOptimization.1 (local.get $this))(local.get $x)))
 )
)
(elem declare func $m_m__void_$pp_jsfunction@jsfunction.JsFunctionOptimization.1)

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

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

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

;;; Code for jsfunction.JsFunctionOptimization.4 [methods]

;;; <anonymous> implements F <anonymous> implements F.$create(JsFunctionOptimization $outer_this)
(func $$create__jsfunction_JsFunctionOptimization@jsfunction.JsFunctionOptimization.4
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 (result (ref null $jsfunction.JsFunctionOptimization.4))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.4))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.4 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.4 (global.get $jsfunction.JsFunctionOptimization.4.vtable) (global.get $jsfunction.JsFunctionOptimization.4.itable) (i32.const 0) (ref.null $jsfunction.JsFunctionOptimization)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (call $$ctor__jsfunction_JsFunctionOptimization__void_$p_jsfunction_JsFunctionOptimization_4@jsfunction.JsFunctionOptimization.4 (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements F.$ctor(JsFunctionOptimization $outer_this)
(func $$ctor__jsfunction_JsFunctionOptimization__void_$p_jsfunction_JsFunctionOptimization_4@jsfunction.JsFunctionOptimization.4
 (param $this (ref null $jsfunction.JsFunctionOptimization.4))
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (struct.set $jsfunction.JsFunctionOptimization.4 $$outer_this@jsfunction.JsFunctionOptimization.4 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; String <anonymous> implements F.m(String s)
(func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.4
 (type $function.m_m__java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:100:24
 (local $this (ref null $jsfunction.JsFunctionOptimization.4))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.4) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:101:12
  (return (call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 ))
 )
)
(elem declare func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.4)

;;; void <anonymous> implements F.$clinit()
(func $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.4
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (if (global.get $$class-initialized@jsfunction.JsFunctionOptimization.4)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (global.set $$class-initialized@jsfunction.JsFunctionOptimization.4 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:98:16
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

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

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

;;; Code for jsfunction.JsFunctionOptimization.5 [methods]

;;; <anonymous> implements F <anonymous> implements F.$create(JsFunctionOptimization $outer_this)
(func $$create__jsfunction_JsFunctionOptimization@jsfunction.JsFunctionOptimization.5
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 (result (ref null $jsfunction.JsFunctionOptimization.5))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.5))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.5 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.5 (global.get $jsfunction.JsFunctionOptimization.5.vtable) (global.get $jsfunction.JsFunctionOptimization.5.itable) (i32.const 0) (ref.null $jsfunction.JsFunctionOptimization)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (call $$ctor__jsfunction_JsFunctionOptimization__void_$p_jsfunction_JsFunctionOptimization_5@jsfunction.JsFunctionOptimization.5 (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements F.$ctor(JsFunctionOptimization $outer_this)
(func $$ctor__jsfunction_JsFunctionOptimization__void_$p_jsfunction_JsFunctionOptimization_5@jsfunction.JsFunctionOptimization.5
 (param $this (ref null $jsfunction.JsFunctionOptimization.5))
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (struct.set $jsfunction.JsFunctionOptimization.5 $$outer_this@jsfunction.JsFunctionOptimization.5 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; String <anonymous> implements F.m(String s)
(func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.5
 (type $function.m_m__java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:109:24
 (local $this (ref null $jsfunction.JsFunctionOptimization.5))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.5) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:110:12
  (return (call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 ))
 )
)
(elem declare func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.5)

;;; void <anonymous> implements F.$clinit()
(func $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.5
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (if (global.get $$class-initialized@jsfunction.JsFunctionOptimization.5)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (global.set $$class-initialized@jsfunction.JsFunctionOptimization.5 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:107:16
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

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

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

;;; Code for jsfunction.JsFunctionOptimization.Holder [methods]

;;; Holder<T> Holder.$create(JsFunctionOptimization $outer_this, T value)
(func $$create__jsfunction_JsFunctionOptimization__java_lang_Object@jsfunction.JsFunctionOptimization.Holder
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 (param $value (ref null $java.lang.Object))
 (result (ref null $jsfunction.JsFunctionOptimization.Holder))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:116:4
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.Holder))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:116:4
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.Holder )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:116:4
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.Holder (global.get $jsfunction.JsFunctionOptimization.Holder.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $jsfunction.JsFunctionOptimization)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:116:4
  (call $$ctor__jsfunction_JsFunctionOptimization__java_lang_Object__void_$p_jsfunction_JsFunctionOptimization_Holder@jsfunction.JsFunctionOptimization.Holder (ref.as_non_null (local.get $$instance))(local.get $$outer_this)(local.get $value))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:116:4
  (return (local.get $$instance))
 )
)

;;; void Holder.$ctor(JsFunctionOptimization $outer_this, T value)
(func $$ctor__jsfunction_JsFunctionOptimization__java_lang_Object__void_$p_jsfunction_JsFunctionOptimization_Holder@jsfunction.JsFunctionOptimization.Holder
 (param $this (ref null $jsfunction.JsFunctionOptimization.Holder))
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 (param $value (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:116:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:115:8
  (struct.set $jsfunction.JsFunctionOptimization.Holder $$outer_this@jsfunction.JsFunctionOptimization.Holder (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:116:20
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; Holder<T> Holder.$create(JsFunctionOptimization $outer_this, int i, T... value)
(func $$create__jsfunction_JsFunctionOptimization__int__arrayOf_java_lang_Object@jsfunction.JsFunctionOptimization.Holder
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 (param $i i32)
 (param $value (ref null $javaemul.internal.WasmArray.OfObject))
 (result (ref null $jsfunction.JsFunctionOptimization.Holder))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:118:4
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.Holder))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:118:4
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.Holder )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:118:4
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.Holder (global.get $jsfunction.JsFunctionOptimization.Holder.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $jsfunction.JsFunctionOptimization)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:118:4
  (call $$ctor__jsfunction_JsFunctionOptimization__int__arrayOf_java_lang_Object__void_$p_jsfunction_JsFunctionOptimization_Holder@jsfunction.JsFunctionOptimization.Holder (ref.as_non_null (local.get $$instance))(local.get $$outer_this)(local.get $i)(local.get $value))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:118:4
  (return (local.get $$instance))
 )
)

;;; void Holder.$ctor(JsFunctionOptimization $outer_this, int i, T... value)
(func $$ctor__jsfunction_JsFunctionOptimization__int__arrayOf_java_lang_Object__void_$p_jsfunction_JsFunctionOptimization_Holder@jsfunction.JsFunctionOptimization.Holder
 (param $this (ref null $jsfunction.JsFunctionOptimization.Holder))
 (param $$outer_this (ref null $jsfunction.JsFunctionOptimization))
 (param $i i32)
 (param $value (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:118:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:115:8
  (struct.set $jsfunction.JsFunctionOptimization.Holder $$outer_this@jsfunction.JsFunctionOptimization.Holder (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:118:30
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for jsfunction.Main [methods]

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

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

;;; JsFunctionInterface Main.createNativeFunction()
(func $m_createNativeFunction__jsfunction_Main_JsFunctionInterface@jsfunction.Main
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:71:36
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:71:36
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:71:36
  (return (call $m_createNativeFunction_$private__jsfunction_Main_JsFunctionInterface@jsfunction.Main ))
 )
)

;;; JsFunctionInterface Main.createNativeFunction_$private()
(func $m_createNativeFunction_$private__jsfunction_Main_JsFunctionInterface@jsfunction.Main
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:71:36
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:72:4
  (return (ref.null $java.lang.Object))
 )
)

;;; int Main.callFn(JsFunctionInterface arg0, int arg1)
(func $m_callFn__jsfunction_Main_JsFunctionInterface__int__int@jsfunction.Main
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:75:20
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:75:20
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:75:20
  (return (call $m_callFn_$private__jsfunction_Main_JsFunctionInterface__int__int@jsfunction.Main (local.get $arg0)(local.get $arg1)))
 )
)

;;; int Main.callFn_$private(JsFunctionInterface fn, int a)
(func $m_callFn_$private__jsfunction_Main_JsFunctionInterface__int__int@jsfunction.Main
 (param $fn (ref null $java.lang.Object))
 (param $a i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:75:20
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:76:4
  (return (call_ref $function.m_foo__int__int (ref.as_non_null (local.get $fn))(local.get $a)(struct.get $jsfunction.Main.JsFunctionInterface.vtable $m_foo__int__int (ref.cast (ref $jsfunction.Main.JsFunctionInterface.vtable) (call $get.itable.$jsfunction.Main.JsFunctionInterface (local.get $fn))))))
 )
)

;;; void Main.testJsFunction()
(func $m_testJsFunction__void@jsfunction.Main
 (type $function.m_testJsFunction__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:79:14
 (local $func (ref null $jsfunction.Main.JsFunctionImplementation))
 (local $a i32)
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:80:4
  (local.set $func (call $$create__@jsfunction.Main.JsFunctionImplementation ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:82:4
  (drop (call $m_foo__int__int@jsfunction.Main.JsFunctionImplementation (ref.as_non_null (local.get $func))(i32.const 10)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:84:4
  (drop (call $m_callFn_$private__jsfunction_Main_JsFunctionInterface__int__int@jsfunction.Main (call $m_createNativeFunction_$private__jsfunction_Main_JsFunctionInterface@jsfunction.Main )(i32.const 10)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:86:4
  (local.set $a (struct.get $jsfunction.Main.JsFunctionImplementation $field@jsfunction.Main.JsFunctionImplementation (local.get $func)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:87:4
  (drop (call $m_bar__int@jsfunction.Main.JsFunctionImplementation (ref.as_non_null (local.get $func))))
 )
)
(elem declare func $m_testJsFunction__void@jsfunction.Main)

;;; void Main.testJsFunctionsCapturingLocal()
(func $m_testJsFunctionsCapturingLocal__void@jsfunction.Main
 (type $function.m_testJsFunctionsCapturingLocal__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:90:14
 (local $n i32)
 (local $$qualifier (ref null $jsfunction.Main.$LambdaImplementor$3))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:91:4
  (local.set $n (i32.const 4))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:4
  (drop (call $m_callFn_$private__jsfunction_Main_JsFunctionInterface__int__int@jsfunction.Main (call $$create__int@jsfunction.Main.$LambdaImplementor$1 (local.get $n))(local.get $n)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:94:4
  (drop (call $m_callFn_$private__jsfunction_Main_JsFunctionInterface__int__int@jsfunction.Main (call $$create__int@jsfunction.Main.$LambdaImplementor$2 (local.get $n))(local.get $n)))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:103:4
   (local.set $$qualifier (call $$create__jsfunction_Main@jsfunction.Main.$LambdaImplementor$3 (local.get $this)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:103:4
   (drop (call_ref $function.m_foo__int__int (ref.as_non_null (local.get $$qualifier))(i32.const 3)(struct.get $jsfunction.Main.$LambdaImplementor$3.vtable $m_foo__int__int (struct.get $jsfunction.Main.$LambdaImplementor$3 $vtable(local.get $$qualifier)))))
  )
 )
)
(elem declare func $m_testJsFunctionsCapturingLocal__void@jsfunction.Main)

;;; void Main.testJsFunctionThis()
(func $m_testJsFunctionThis__void@jsfunction.Main
 (type $function.m_testJsFunctionThis__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:112:14
 (local $$qualifier (ref null $jsfunction.Main.$LambdaImplementor$4))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:113:4
   (local.set $$qualifier (call $$create__jsfunction_Main@jsfunction.Main.$LambdaImplementor$4 (local.get $this)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:113:4
   (drop (call_ref $function.m_foo__int__int (ref.as_non_null (local.get $$qualifier))(i32.const 3)(struct.get $jsfunction.Main.$LambdaImplementor$4.vtable $m_foo__int__int (struct.get $jsfunction.Main.$LambdaImplementor$4 $vtable(local.get $$qualifier)))))
  )
 )
)
(elem declare func $m_testJsFunctionThis__void@jsfunction.Main)

;;; void Main.instanceMethod()
(func $m_instanceMethod__void_$p_jsfunction_Main@jsfunction.Main
 (param $this (ref null $jsfunction.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:123:15
 (block
 )
)

;;; void Main.testJsFunctionErasureCasts()
(func $m_testJsFunctionErasureCasts__void@jsfunction.Main
 (type $function.m_testJsFunctionErasureCasts__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:125:14
 (local $list (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:126:4
  (local.set $list (call $$create__@java.util.ArrayList ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:127:4
  (call $m_acceptsJsFunction_$private__jsfunction_Main_Function__void@jsfunction.Main (call_ref $function.m_get__int__java_lang_Object (ref.as_non_null (local.get $list))(i32.const 0)(struct.get $java.util.List.vtable $m_get__int__java_lang_Object (ref.cast (ref $java.util.List.vtable) (call $get.itable.$java.util.List (local.get $list))))))
 )
)
(elem declare func $m_testJsFunctionErasureCasts__void@jsfunction.Main)

;;; void Main.acceptsJsFunction(Function<String, String> arg0)
(func $m_acceptsJsFunction__jsfunction_Main_Function__void@jsfunction.Main
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:130:21
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:130:21
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:130:21
  (call $m_acceptsJsFunction_$private__jsfunction_Main_Function__void@jsfunction.Main (local.get $arg0))
 )
)

;;; void Main.acceptsJsFunction_$private(Function<String, String> f)
(func $m_acceptsJsFunction_$private__jsfunction_Main_Function__void@jsfunction.Main
 (param $f (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:130:21
 (block
 )
)

;;; JsFunctionVarargs Main.testJsFunctionVarargs()
(func $m_testJsFunctionVarargs__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction@jsfunction.Main
 (type $function.m_testJsFunctionVarargs__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:143:20
 (local $f (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:144:4
  (local.set $f (call $$create__@jsfunction.Main.$LambdaImplementor$5 ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:152:4
  (return (local.get $f))
 )
)
(elem declare func $m_testJsFunctionVarargs__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction@jsfunction.Main)

;;; JsFunctionVarargs Main.testJsFunctionVarargsInnerClass()
(func $m_testJsFunctionVarargsInnerClass__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction@jsfunction.Main
 (type $function.m_testJsFunctionVarargsInnerClass__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:155:20
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:156:4
  (return (call $$create__@jsfunction.Main.$LambdaImplementor$6 ))
 )
)
(elem declare func $m_testJsFunctionVarargsInnerClass__jsfunction_Main_JsFunctionVarargs_$pp_jsfunction@jsfunction.Main)

;;; void Main.testVarArgsMethodReferenceToJsFuncion()
(func $m_testVarArgsMethodReferenceToJsFuncion__void@jsfunction.Main
 (type $function.m_testVarArgsMethodReferenceToJsFuncion__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:178:14
 (local $c (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:179:4
  (local.set $c (call $$create__@jsfunction.Main.$LambdaImplementor$7 ))
 )
)
(elem declare func $m_testVarArgsMethodReferenceToJsFuncion__void@jsfunction.Main)

;;; void Main.acceptsVarargsJsFunctionWithTypeVariable(JsFunctionVarargsGenerics<T> x)
(func $m_acceptsVarargsJsFunctionWithTypeVariable__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_acceptsVarargsJsFunctionWithTypeVariable__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 (param $x (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:187:11
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_acceptsVarargsJsFunctionWithTypeVariable__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main)

;;; void Main.acceptsVarargsJsFunctionWithParemetrizedType(JsFunctionVarargsGenerics<List<T>> x)
(func $m_acceptsVarargsJsFunctionWithParemetrizedType__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_acceptsVarargsJsFunctionWithParemetrizedType__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 (param $x (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:189:11
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_acceptsVarargsJsFunctionWithParemetrizedType__jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main)

;;; void Main.acceptsVarargsJsFunctionWithTypeVariableInVarargs(JsFunctionVarargsGenerics<T>... x)
(func $m_acceptsVarargsJsFunctionWithTypeVariableInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_acceptsVarargsJsFunctionWithTypeVariableInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 (param $x (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:192:11
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_acceptsVarargsJsFunctionWithTypeVariableInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main)

;;; void Main.acceptsVarargsJsFunctionWithParemetrizedTypeInVarargs(JsFunctionVarargsGenerics<List<T>>... x)
(func $m_acceptsVarargsJsFunctionWithParemetrizedTypeInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_acceptsVarargsJsFunctionWithParemetrizedTypeInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 (param $x (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:195:11
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_acceptsVarargsJsFunctionWithParemetrizedTypeInVarargs__arrayOf_jsfunction_Main_JsFunctionVarargsGenerics__void_$pp_jsfunction@jsfunction.Main)

;;; void Main.acceptsJsFunctionInVarargs(SimpleJsFunction... x)
(func $m_acceptsJsFunctionInVarargs__arrayOf_jsfunction_Main_SimpleJsFunction__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_acceptsJsFunctionInVarargs__arrayOf_jsfunction_Main_SimpleJsFunction__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 (param $x (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:204:7
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_acceptsJsFunctionInVarargs__arrayOf_jsfunction_Main_SimpleJsFunction__void_$pp_jsfunction@jsfunction.Main)

;;; void Main.testJsFunctionClassLiterals()
(func $m_testJsFunctionClassLiterals__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_testJsFunctionClassLiterals__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:206:7
 (local $array (ref null $javaemul.internal.WasmArray.OfObject))
 (local $o (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:207:4
  (local.set $array (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/jsfunction/readable-j2wasm.js/jsfunction/Main.java:208:4
  (local.set $o (call $$getClassMetadata__java_lang_Class_<once>_@jsfunction.Main.SimpleJsFunction ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:209:4
  (local.set $o (call $function.no.side.effects.m_getArrayType__int__java_lang_Class_$pp_java_lang (ref.as_non_null (call $$getClassMetadata__java_lang_Class_<once>_@jsfunction.Main.SimpleJsFunction ))(i32.const 1)(ref.func $m_getArrayType__int__java_lang_Class_$pp_java_lang@java.lang.Class) ))
 )
)
(elem declare func $m_testJsFunctionClassLiterals__void_$pp_jsfunction@jsfunction.Main)

;;; void Main.testJsFunctionOptional()
(func $m_testJsFunctionOptional__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_testJsFunctionOptional__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:224:7
 (local $f (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:4
  (local.set $f (call $$create__@jsfunction.Main.$LambdaImplementor$8 ))
 )
)
(elem declare func $m_testJsFunctionOptional__void_$pp_jsfunction@jsfunction.Main)

;;; void Main.setParametricJsFunction(ParametricJsFunction<Object> fn)
(func $m_setParametricJsFunction__jsfunction_Main_ParametricJsFunction__void@jsfunction.Main
 (param $fn (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:257:22
 (block
 )
)

;;; ParametricJsFunction<Object> Main.getParametricJsFunction()
(func $m_getParametricJsFunction__jsfunction_Main_ParametricJsFunction@jsfunction.Main
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:260:46
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:261:4
  (return (ref.null $java.lang.Object))
 )
)

;;; void Main.testFunctionExpressionTypeReplacement()
(func $m_testFunctionExpressionTypeReplacement__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_testFunctionExpressionTypeReplacement__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:264:7
 (local $f (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:265:4
  (local.set $f (call $$create__@jsfunction.Main.$LambdaImplementor$11 ))
 )
)
(elem declare func $m_testFunctionExpressionTypeReplacement__void_$pp_jsfunction@jsfunction.Main)

;;; void Main.testJsFunctionPropertyCall()
(func $m_testJsFunctionPropertyCall__void_$pp_jsfunction@jsfunction.Main
 (type $function.m_testJsFunctionPropertyCall__void_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:281:7
 (local $c (ref null $jsfunction.Main.ClassWithJsFunctionProperty))
 (local $$qualifier (ref null $java.lang.Object))
 (local $$qualifier_1 (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main))
 (local.set $this (ref.cast (ref $jsfunction.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:282:4
  (local.set $c (call $$create__@jsfunction.Main.ClassWithJsFunctionProperty ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:283:4
  (call_ref $function.m_call__java_lang_Object__void (ref.as_non_null (struct.get $jsfunction.Main.ClassWithJsFunctionProperty $function@jsfunction.Main.ClassWithJsFunctionProperty (local.get $c)))(call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 )(struct.get $jsfunction.Main.ParametricJsFunction.vtable $m_call__java_lang_Object__void (ref.cast (ref $jsfunction.Main.ParametricJsFunction.vtable) (call $get.itable.$jsfunction.Main.ParametricJsFunction (struct.get $jsfunction.Main.ClassWithJsFunctionProperty $function@jsfunction.Main.ClassWithJsFunctionProperty (local.get $c))))))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:284:4
   (local.set $$qualifier (call_ref $function.m_getFunction__jsfunction_Main_ParametricJsFunction_$pp_jsfunction (ref.as_non_null (local.get $c))(struct.get $jsfunction.Main.ClassWithJsFunctionProperty.vtable $m_getFunction__jsfunction_Main_ParametricJsFunction_$pp_jsfunction (struct.get $jsfunction.Main.ClassWithJsFunctionProperty $vtable(local.get $c)))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:284:4
   (call_ref $function.m_call__java_lang_Object__void (ref.as_non_null (local.get $$qualifier))(call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 )(struct.get $jsfunction.Main.ParametricJsFunction.vtable $m_call__java_lang_Object__void (ref.cast (ref $jsfunction.Main.ParametricJsFunction.vtable) (call $get.itable.$jsfunction.Main.ParametricJsFunction (local.get $$qualifier)))))
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:285:4
  (call_ref $function.m_call__java_lang_Object__void (ref.as_non_null (struct.get $jsfunction.Main.ClassWithJsFunctionProperty $function@jsfunction.Main.ClassWithJsFunctionProperty (local.get $c)))(call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 )(struct.get $jsfunction.Main.ParametricJsFunction.vtable $m_call__java_lang_Object__void (ref.cast (ref $jsfunction.Main.ParametricJsFunction.vtable) (call $get.itable.$jsfunction.Main.ParametricJsFunction (struct.get $jsfunction.Main.ClassWithJsFunctionProperty $function@jsfunction.Main.ClassWithJsFunctionProperty (local.get $c))))))
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:286:4
   (local.set $$qualifier_1 (if (result (ref null $java.lang.Object)) (i32.eqz (ref.is_null (local.get $c))) (then (struct.get $jsfunction.Main.ClassWithJsFunctionProperty $function@jsfunction.Main.ClassWithJsFunctionProperty (local.get $c))) (else (ref.null $java.lang.Object))))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:286:4
   (call_ref $function.m_call__java_lang_Object__void (ref.as_non_null (local.get $$qualifier_1))(call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 )(struct.get $jsfunction.Main.ParametricJsFunction.vtable $m_call__java_lang_Object__void (ref.cast (ref $jsfunction.Main.ParametricJsFunction.vtable) (call $get.itable.$jsfunction.Main.ParametricJsFunction (local.get $$qualifier_1)))))
  )
 )
)
(elem declare func $m_testJsFunctionPropertyCall__void_$pp_jsfunction@jsfunction.Main)

;;; Object Main.callInterfaceRaw(JsBiFunction arg0, Object arg1, Number arg2)
(func $m_callInterfaceRaw__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.Object))
 (param $arg2 (ref null $java.lang.Number))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:308:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:308:23
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:308:23
  (return (call $m_callInterfaceRaw_$private__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main (local.get $arg0)(local.get $arg1)(local.get $arg2)))
 )
)

;;; Object Main.callInterfaceRaw_$private(JsBiFunction f, Object o, Number n)
(func $m_callInterfaceRaw_$private__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main
 (param $f (ref null $java.lang.Object))
 (param $o (ref null $java.lang.Object))
 (param $n (ref null $java.lang.Number))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:308:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:309:4
  (return (call_ref $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.as_non_null (local.get $f))(local.get $o)(local.get $n)(struct.get $jsfunction.Main.JsBiFunction.vtable $m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.cast (ref $jsfunction.Main.JsBiFunction.vtable) (call $get.itable.$jsfunction.Main.JsBiFunction (local.get $f))))))
 )
)

;;; String Main.callInterfaceParameterized(JsBiFunction<String, Integer> arg0, String arg1)
(func $m_callInterfaceParameterized__jsfunction_Main_JsBiFunction__java_lang_String__java_lang_String@jsfunction.Main
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:312:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:312:23
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:312:23
  (return (call $m_callInterfaceParameterized_$private__jsfunction_Main_JsBiFunction__java_lang_String__java_lang_String@jsfunction.Main (local.get $arg0)(local.get $arg1)))
 )
)

;;; String Main.callInterfaceParameterized_$private(JsBiFunction<String, Integer> f, String s)
(func $m_callInterfaceParameterized_$private__jsfunction_Main_JsBiFunction__java_lang_String__java_lang_String@jsfunction.Main
 (param $f (ref null $java.lang.Object))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:312:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:313:4
  (return (ref.cast (ref null $java.lang.String) (call_ref $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.as_non_null (local.get $f))(local.get $s)(call $m_valueOf__int__java_lang_Integer@java.lang.Integer (i32.const 1))(struct.get $jsfunction.Main.JsBiFunction.vtable $m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.cast (ref $jsfunction.Main.JsBiFunction.vtable) (call $get.itable.$jsfunction.Main.JsBiFunction (local.get $f)))))))
 )
)

;;; U Main.callInterfaceUnparameterized(JsBiFunction<U, V> arg0, U arg1, V arg2)
(func $m_callInterfaceUnparameterized__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.Object))
 (param $arg2 (ref null $java.lang.Number))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:316:40
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:316:40
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:316:40
  (return (call $m_callInterfaceUnparameterized_$private__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main (local.get $arg0)(local.get $arg1)(local.get $arg2)))
 )
)

;;; U Main.callInterfaceUnparameterized_$private(JsBiFunction<U, V> f, U u, V v)
(func $m_callInterfaceUnparameterized_$private__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main
 (param $f (ref null $java.lang.Object))
 (param $u (ref null $java.lang.Object))
 (param $v (ref null $java.lang.Number))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:316:40
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:318:4
  (return (call_ref $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.as_non_null (local.get $f))(local.get $u)(local.get $v)(struct.get $jsfunction.Main.JsBiFunction.vtable $m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.cast (ref $jsfunction.Main.JsBiFunction.vtable) (call $get.itable.$jsfunction.Main.JsBiFunction (local.get $f))))))
 )
)

;;; Object Main.callImplementorRaw(TIntegerJsBiFunction arg0, Object arg1, Integer arg2)
(func $m_callImplementorRaw__jsfunction_Main_TIntegerJsBiFunction__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main
 (param $arg0 (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (param $arg1 (ref null $java.lang.Object))
 (param $arg2 (ref null $java.lang.Integer))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:321:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:321:23
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:321:23
  (return (call $m_callImplementorRaw_$private__jsfunction_Main_TIntegerJsBiFunction__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main (local.get $arg0)(local.get $arg1)(local.get $arg2)))
 )
)

;;; Object Main.callImplementorRaw_$private(TIntegerJsBiFunction f, Object o, Integer n)
(func $m_callImplementorRaw_$private__jsfunction_Main_TIntegerJsBiFunction__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main
 (param $f (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (param $o (ref null $java.lang.Object))
 (param $n (ref null $java.lang.Integer))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:321:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:322:4
  (return (call $m_apply__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction (ref.as_non_null (local.get $f))(local.get $o)(local.get $n)))
 )
)

;;; String Main.callImplementorParameterized(TIntegerJsBiFunction<String> arg0, String arg1)
(func $m_callImplementorParameterized__jsfunction_Main_TIntegerJsBiFunction__java_lang_String__java_lang_String@jsfunction.Main
 (param $arg0 (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (param $arg1 (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:325:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:325:23
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:325:23
  (return (call $m_callImplementorParameterized_$private__jsfunction_Main_TIntegerJsBiFunction__java_lang_String__java_lang_String@jsfunction.Main (local.get $arg0)(local.get $arg1)))
 )
)

;;; String Main.callImplementorParameterized_$private(TIntegerJsBiFunction<String> f, String s)
(func $m_callImplementorParameterized_$private__jsfunction_Main_TIntegerJsBiFunction__java_lang_String__java_lang_String@jsfunction.Main
 (param $f (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:325:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:326:4
  (return (ref.cast (ref null $java.lang.String) (call $m_apply__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction (ref.as_non_null (local.get $f))(local.get $s)(call $m_valueOf__int__java_lang_Integer@java.lang.Integer (i32.const 1)))))
 )
)

;;; void Main.testParameterTypes()
(func $m_testParameterTypes__void@jsfunction.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:329:21
 (local $tIntegerJsBiFunction (ref null $java.lang.Object))
 (local $doubleDoubleJsBiFunction (ref null $java.lang.Object))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:329:42
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:330:4
  (local.set $tIntegerJsBiFunction (call $$create__@jsfunction.Main.TIntegerJsBiFunction ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:331:4
  (local.set $doubleDoubleJsBiFunction (call $$create__@jsfunction.Main.DoubleDoubleJsBiFunction ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:332:4
  (drop (call $m_callInterfaceRaw_$private__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main (local.get $tIntegerJsBiFunction)(call $$getString_|a|__java_lang_String_<once>_@jsfunction.Main )(call $m_valueOf__int__java_lang_Integer@java.lang.Integer (i32.const 1))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:333:4
  (drop (call $m_callInterfaceRaw_$private__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main (local.get $doubleDoubleJsBiFunction)(call $m_valueOf__double__java_lang_Double@java.lang.Double (f64.const 1.1))(call $m_valueOf__double__java_lang_Double@java.lang.Double (f64.const 1.1))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:334:4
  (drop (call $m_callInterfaceParameterized_$private__jsfunction_Main_JsBiFunction__java_lang_String__java_lang_String@jsfunction.Main (local.get $tIntegerJsBiFunction)(call $$getString_|a|__java_lang_String_<once>_@jsfunction.Main )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:335:4
  (drop (call $m_callInterfaceUnparameterized_$private__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main (local.get $tIntegerJsBiFunction)(call $$getString_|a|__java_lang_String_<once>_@jsfunction.Main )(call $m_valueOf__int__java_lang_Integer@java.lang.Integer (i32.const 1))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:336:4
  (drop (call $m_callInterfaceUnparameterized_$private__jsfunction_Main_JsBiFunction__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main (local.get $doubleDoubleJsBiFunction)(call $m_valueOf__double__java_lang_Double@java.lang.Double (f64.const 1.1))(call $m_valueOf__double__java_lang_Double@java.lang.Double (f64.const 1.1))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:337:4
  (drop (call $m_callImplementorRaw_$private__jsfunction_Main_TIntegerJsBiFunction__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main (call $$create__@jsfunction.Main.TIntegerJsBiFunction )(call $m_valueOf__double__java_lang_Double@java.lang.Double (f64.const 1.1))(call $m_valueOf__int__java_lang_Integer@java.lang.Integer (i32.const 1))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:338:4
  (drop (call $m_callImplementorParameterized_$private__jsfunction_Main_TIntegerJsBiFunction__java_lang_String__java_lang_String@jsfunction.Main (call $$create__@jsfunction.Main.TIntegerJsBiFunction )(call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:339:4
  (drop (call_ref $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.as_non_null (local.get $tIntegerJsBiFunction))(call $$getString_|a|__java_lang_String_<once>_@jsfunction.Main )(call $m_valueOf__int__java_lang_Integer@java.lang.Integer (i32.const 1))(struct.get $jsfunction.Main.JsBiFunction.vtable $m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.cast (ref $jsfunction.Main.JsBiFunction.vtable) (call $get.itable.$jsfunction.Main.JsBiFunction (local.get $tIntegerJsBiFunction))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:340:4
  (drop (call_ref $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.as_non_null (local.get $doubleDoubleJsBiFunction))(call $m_valueOf__double__java_lang_Double@java.lang.Double (f64.const 1.1))(call $m_valueOf__double__java_lang_Double@java.lang.Double (f64.const 1.1))(struct.get $jsfunction.Main.JsBiFunction.vtable $m_apply__java_lang_Object__java_lang_Number__java_lang_Object (ref.cast (ref $jsfunction.Main.JsBiFunction.vtable) (call $get.itable.$jsfunction.Main.JsBiFunction (local.get $doubleDoubleJsBiFunction))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:341:4
  (drop (call $m_callOnFunction_$private__jsfunction_Main_JsBiFunction__double@jsfunction.Main (call $$create__@jsfunction.Main.DoubleDoubleJsBiFunction )))
 )
)

;;; double Main.callOnFunction(JsBiFunction<Double, Double> arg0)
(func $m_callOnFunction__jsfunction_Main_JsBiFunction__double@jsfunction.Main
 (param $arg0 (ref null $java.lang.Object))
 (result f64)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:345:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:345:23
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:345:23
  (return (call $m_callOnFunction_$private__jsfunction_Main_JsBiFunction__double@jsfunction.Main (local.get $arg0)))
 )
)

;;; double Main.callOnFunction_$private(JsBiFunction<Double, Double> f)
(func $m_callOnFunction_$private__jsfunction_Main_JsBiFunction__double@jsfunction.Main
 (param $f (ref null $java.lang.Object))
 (result f64)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:345:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:346:4
  (return (f64.const 0.0))
 )
)

;;; void Main.testCast()
(func $m_testCast__void@jsfunction.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:350:21
 (local $o (ref null $java.lang.Object))
 (local $rawTIntegerJsBiFunction (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (local $parameterizedTIntegerJsBiFunction (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (local $anotherRawJsBiFunction (ref null $java.lang.Object))
 (local $anotherParameterizedJsBiFunction (ref null $java.lang.Object))
 (local $doubleDoubleJsBiFunction (ref null $jsfunction.Main.DoubleDoubleJsBiFunction))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:350:32
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:351:4
  (local.set $o (call $$create__@jsfunction.Main.TIntegerJsBiFunction ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:352:4
  (local.set $rawTIntegerJsBiFunction (ref.cast (ref null $jsfunction.Main.TIntegerJsBiFunction) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:353:4
  (local.set $parameterizedTIntegerJsBiFunction (ref.cast (ref null $jsfunction.Main.TIntegerJsBiFunction) (local.get $o)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:355:4
  (local.set $anotherRawJsBiFunction (local.get $o))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:356:4
  (local.set $anotherParameterizedJsBiFunction (local.get $o))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:358:4
  (local.set $doubleDoubleJsBiFunction (ref.cast (ref null $jsfunction.Main.DoubleDoubleJsBiFunction) (local.get $o)))
 )
)

;;; void Main.testNewInstance()
(func $m_testNewInstance__void@jsfunction.Main
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:361:21
 (local $rawTIntegerJsBiFunction (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (local $parameterizedTIntegerJsBiFunction (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (local $rawJsBiFunction (ref null $java.lang.Object))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:361:39
  (call $$clinit__void_<once>_@jsfunction.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:362:4
  (local.set $rawTIntegerJsBiFunction (call $$create__@jsfunction.Main.TIntegerJsBiFunction ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:363:4
  (local.set $parameterizedTIntegerJsBiFunction (ref.cast (ref null $jsfunction.Main.TIntegerJsBiFunction) (call $$create__@jsfunction.Main.TIntegerJsBiFunction )))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:365:4
  (local.set $rawJsBiFunction (call $$create__@jsfunction.Main.DoubleDoubleJsBiFunction ))
 )
)

;;; void Main.$init()
(func $$init__void_$p_jsfunction_Main@jsfunction.Main
 (param $this (ref null $jsfunction.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:28:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:2
  (struct.set $jsfunction.Main $jsFunctionFieldWildcard@jsfunction.Main (local.get $this) (call $$create__@jsfunction.Main.$LambdaImplementor$9 ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:2
  (struct.set $jsfunction.Main $jsFunctionFieldParameterized@jsfunction.Main (local.get $this) (call $$create__@jsfunction.Main.$LambdaImplementor$10 ))
 )
)

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

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

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

;;; Code for jsfunction.Main.Function.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.JsFunctionInterface.$LambdaAdaptor [methods]

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

;;; int $LambdaAdaptor.overlayMethod()
(func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor
 (type $function.m_overlayMethod__int)
 (param $this.untyped (ref $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:35:12
 (local $this (ref null $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $jsfunction.Main.JsFunctionInterface.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:35:12
  (return (call $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface (ref.as_non_null (local.get $this))))
 )
)
(elem declare func $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor)

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

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

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

;;; Code for jsfunction.Main.JsFunctionVarargs.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.ForEachCallBack.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.ElementalJsFunction.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.JsFunctionVarargsGenerics.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.SimpleJsFunction.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.JsFunctionOptional.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.ParametricJsFunction.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.ApiWithMethodReturningParametricJsFunction.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.JsBiFunction.$LambdaAdaptor [methods]

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

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

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

;;; Code for jsfunction.Main.JsFunctionImplementation [methods]

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

;;; void JsFunctionImplementation.$ctor()
(func $$ctor__void_$p_jsfunction_Main_JsFunctionImplementation@jsfunction.Main.JsFunctionImplementation
 (param $this (ref null $jsfunction.Main.JsFunctionImplementation))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:49:4
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:49:31
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:50:6
  (struct.set $jsfunction.Main.JsFunctionImplementation $storedThis@jsfunction.Main.JsFunctionImplementation (local.get $this) (local.get $this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:52:6
  (struct.set $jsfunction.Main.JsFunctionImplementation $anotherStoredThis@jsfunction.Main.JsFunctionImplementation (local.get $this) (ref.cast (ref null $jsfunction.Main.JsFunctionImplementation) (local.get $this)))
 )
)

;;; int JsFunctionImplementation.bar()
(func $m_bar__int@jsfunction.Main.JsFunctionImplementation
 (type $function.m_bar__int)
 (param $this.untyped (ref $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:55:15
 (local $this (ref null $jsfunction.Main.JsFunctionImplementation))
 (local.set $this (ref.cast (ref $jsfunction.Main.JsFunctionImplementation) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:56:6
  (return (i32.const 0))
 )
)
(elem declare func $m_bar__int@jsfunction.Main.JsFunctionImplementation)

;;; int JsFunctionImplementation.fun()
(func $m_fun__int@jsfunction.Main.JsFunctionImplementation
 (type $function.m_fun__int)
 (param $this.untyped (ref $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:59:15
 (local $this (ref null $jsfunction.Main.JsFunctionImplementation))
 (local.set $this (ref.cast (ref $jsfunction.Main.JsFunctionImplementation) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:60:6
  (struct.set $jsfunction.Main.JsFunctionImplementation $field@jsfunction.Main.JsFunctionImplementation (local.get $this) (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:61:6
  (return (i32.add (call $m_bar__int@jsfunction.Main.JsFunctionImplementation (ref.as_non_null (local.get $this))) (call $m_foo__int__int@jsfunction.Main.JsFunctionImplementation (ref.as_non_null (local.get $this))(i32.const 1))))
 )
)
(elem declare func $m_fun__int@jsfunction.Main.JsFunctionImplementation)

;;; int JsFunctionImplementation.foo(int a)
(func $m_foo__int__int@jsfunction.Main.JsFunctionImplementation
 (type $function.m_foo__int__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $a i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:65:15
 (local $this (ref null $jsfunction.Main.JsFunctionImplementation))
 (local.set $this (ref.cast (ref $jsfunction.Main.JsFunctionImplementation) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:66:6
  (return (i32.add (i32.add (local.get $a) (call $m_bar__int@jsfunction.Main.JsFunctionImplementation (ref.as_non_null (local.get $this)))) (struct.get $jsfunction.Main.JsFunctionImplementation $field@jsfunction.Main.JsFunctionImplementation (local.get $this))))
 )
)
(elem declare func $m_foo__int__int@jsfunction.Main.JsFunctionImplementation)

;;; int JsFunctionImplementation.overlayMethod()
(func $m_overlayMethod__int@jsfunction.Main.JsFunctionImplementation
 (type $function.m_overlayMethod__int)
 (param $this.untyped (ref $java.lang.Object))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:44:29
 (local $this (ref null $jsfunction.Main.JsFunctionImplementation))
 (local.set $this (ref.cast (ref $jsfunction.Main.JsFunctionImplementation) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:44:29
  (return (call $m_overlayMethod__int@jsfunction.Main.JsFunctionInterface (ref.as_non_null (local.get $this))))
 )
)
(elem declare func $m_overlayMethod__int@jsfunction.Main.JsFunctionImplementation)

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

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

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

;;; Code for jsfunction.Main.TestCaptureOuterParametricClass [methods]

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

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

;;; void TestCaptureOuterParametricClass.test()
(func $m_test__void@jsfunction.Main.TestCaptureOuterParametricClass
 (type $function.m_test__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:133:16
 (local $f (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main.TestCaptureOuterParametricClass))
 (local.set $this (ref.cast (ref $jsfunction.Main.TestCaptureOuterParametricClass) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:6
  (local.set $f (call $$create__@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 ))
 )
)
(elem declare func $m_test__void@jsfunction.Main.TestCaptureOuterParametricClass)

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

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

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

;;; Code for jsfunction.Main.JsFunctionOptionalImpl [methods]

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

;;; void JsFunctionOptionalImpl.$ctor()
(func $$ctor__void_$p_jsfunction_Main_JsFunctionOptionalImpl@jsfunction.Main.JsFunctionOptionalImpl
 (param $this (ref null $jsfunction.Main.JsFunctionOptionalImpl))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:217:21
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:217:21
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; int JsFunctionOptionalImpl.m(int i, Double number)
(func $m_m__int__java_lang_Double__int@jsfunction.Main.JsFunctionOptionalImpl
 (type $function.m_m__int__java_lang_Double__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $i i32)
 (param $number (ref null $java.lang.Double))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:219:15
 (local $this (ref null $jsfunction.Main.JsFunctionOptionalImpl))
 (local.set $this (ref.cast (ref $jsfunction.Main.JsFunctionOptionalImpl) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:220:6
  (return (i32.trunc_sat_f64_s (f64.add (f64.convert_i32_s (local.get $i)) (call $m_doubleValue__double@java.lang.Double (ref.as_non_null (local.get $number))))))
 )
)
(elem declare func $m_m__int__java_lang_Double__int@jsfunction.Main.JsFunctionOptionalImpl)

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

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

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

;;; Code for jsfunction.Main.Implementor [methods]

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

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

;;; ParametricJsFunction<T> Implementor.anApi()
(func $m_anApi__jsfunction_Main_ParametricJsFunction@jsfunction.Main.Implementor
 (type $function.m_anApi__jsfunction_Main_ParametricJsFunction)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:244:39
 (local $this (ref null $jsfunction.Main.Implementor))
 (local.set $this (ref.cast (ref $jsfunction.Main.Implementor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:245:6
  (return (ref.null $java.lang.Object))
 )
)
(elem declare func $m_anApi__jsfunction_Main_ParametricJsFunction@jsfunction.Main.Implementor)

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

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

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

;;; Code for jsfunction.Main.ParamtericImplementation [methods]

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

;;; void ParamtericImplementation.$ctor()
(func $$ctor__void_$p_jsfunction_Main_ParamtericImplementation@jsfunction.Main.ParamtericImplementation
 (param $this (ref null $jsfunction.Main.ParamtericImplementation))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:249:21
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:249:21
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void ParamtericImplementation.call(T t)
(func $m_call__java_lang_Object__void@jsfunction.Main.ParamtericImplementation
 (type $function.m_call__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:251:16
 (local $o (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main.ParamtericImplementation))
 (local.set $this (ref.cast (ref $jsfunction.Main.ParamtericImplementation) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:252:6
  (local.set $o (local.get $t))
 )
)
(elem declare func $m_call__java_lang_Object__void@jsfunction.Main.ParamtericImplementation)

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

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

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

;;; Code for jsfunction.Main.ClassWithJsFunctionProperty [methods]

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

;;; void ClassWithJsFunctionProperty.$ctor()
(func $$ctor__void_$p_jsfunction_Main_ClassWithJsFunctionProperty@jsfunction.Main.ClassWithJsFunctionProperty
 (param $this (ref null $jsfunction.Main.ClassWithJsFunctionProperty))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:272:23
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:272:23
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; ParametricJsFunction<String> ClassWithJsFunctionProperty.getFunction()
(func $m_getFunction__jsfunction_Main_ParametricJsFunction_$pp_jsfunction@jsfunction.Main.ClassWithJsFunctionProperty
 (type $function.m_getFunction__jsfunction_Main_ParametricJsFunction_$pp_jsfunction)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:276:33
 (local $this (ref null $jsfunction.Main.ClassWithJsFunctionProperty))
 (local.set $this (ref.cast (ref $jsfunction.Main.ClassWithJsFunctionProperty) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:277:6
  (return (ref.null $java.lang.Object))
 )
)
(elem declare func $m_getFunction__jsfunction_Main_ParametricJsFunction_$pp_jsfunction@jsfunction.Main.ClassWithJsFunctionProperty)

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

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

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

;;; Code for jsfunction.Main.DoubleDoubleJsBiFunction [methods]

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

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

;;; Double DoubleDoubleJsBiFunction.apply(Double d, Double i)
(func $m_apply__java_lang_Double__java_lang_Double__java_lang_Double@jsfunction.Main.DoubleDoubleJsBiFunction
 (type $function.m_apply__java_lang_Double__java_lang_Double__java_lang_Double)
 (param $this.untyped (ref $java.lang.Object))
 (param $d (ref null $java.lang.Double))
 (param $i (ref null $java.lang.Double))
 (result (ref null $java.lang.Double))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:296:18
 (local $this (ref null $jsfunction.Main.DoubleDoubleJsBiFunction))
 (local.set $this (ref.cast (ref $jsfunction.Main.DoubleDoubleJsBiFunction) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:297:6
  (return (local.get $d))
 )
)
(elem declare func $m_apply__java_lang_Double__java_lang_Double__java_lang_Double@jsfunction.Main.DoubleDoubleJsBiFunction)

;;; Double DoubleDoubleJsBiFunction.apply(T arg0, S arg1)
(func $m_apply__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main.DoubleDoubleJsBiFunction
 (type $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.Number))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:294:28
 (local $this (ref null $jsfunction.Main.DoubleDoubleJsBiFunction))
 (local.set $this (ref.cast (ref $jsfunction.Main.DoubleDoubleJsBiFunction) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:294:28
  (return (call $m_apply__java_lang_Double__java_lang_Double__java_lang_Double@jsfunction.Main.DoubleDoubleJsBiFunction (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.Double) (local.get $arg0))(ref.cast (ref null $java.lang.Double) (local.get $arg1))))
 )
)
(elem declare func $m_apply__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main.DoubleDoubleJsBiFunction)

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

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

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

;;; Code for jsfunction.Main.TIntegerJsBiFunction [methods]

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

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

;;; T TIntegerJsBiFunction.apply(T element, Integer i)
(func $m_apply__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction
 (type $function.m_apply__java_lang_Object__java_lang_Integer__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (param $element (ref null $java.lang.Object))
 (param $i (ref null $java.lang.Integer))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:303:13
 (local $this (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (local.set $this (ref.cast (ref $jsfunction.Main.TIntegerJsBiFunction) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:304:6
  (return (ref.null $java.lang.Object))
 )
)
(elem declare func $m_apply__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction)

;;; T TIntegerJsBiFunction.apply(T arg0, S arg1)
(func $m_apply__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction
 (type $function.m_apply__java_lang_Object__java_lang_Number__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 (ref null $java.lang.Number))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:301:28
 (local $this (ref null $jsfunction.Main.TIntegerJsBiFunction))
 (local.set $this (ref.cast (ref $jsfunction.Main.TIntegerJsBiFunction) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:301:28
  (return (call $m_apply__java_lang_Object__java_lang_Integer__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction (ref.as_non_null (local.get $this))(local.get $arg0)(ref.cast (ref null $java.lang.Integer) (local.get $arg1))))
 )
)
(elem declare func $m_apply__java_lang_Object__java_lang_Number__java_lang_Object@jsfunction.Main.TIntegerJsBiFunction)

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

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

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

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter [methods]

;;; Code for jsfunction.Main.RecursiveParametricJsFunctionImplementation [methods]

;;; RecursiveParametricJsFunctionImplementation<T> RecursiveParametricJsFunctionImplementation.$create()
(func $$create__@jsfunction.Main.RecursiveParametricJsFunctionImplementation
 (result (ref null $jsfunction.Main.RecursiveParametricJsFunctionImplementation))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:380:29
 (local $$instance (ref null $jsfunction.Main.RecursiveParametricJsFunctionImplementation))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:380:29
  (local.set $$instance (struct.new $jsfunction.Main.RecursiveParametricJsFunctionImplementation (global.get $jsfunction.Main.RecursiveParametricJsFunctionImplementation.vtable) (global.get $jsfunction.Main.RecursiveParametricJsFunctionImplementation.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:380:29
  (call $$ctor__void_$p_jsfunction_Main_RecursiveParametricJsFunctionImplementation@jsfunction.Main.RecursiveParametricJsFunctionImplementation (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:380:29
  (return (local.get $$instance))
 )
)

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

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

;;; void RecursiveParametricJsFunctionImplementation.call(E arg0)
(func $m_call__java_lang_Object__void@jsfunction.Main.RecursiveParametricJsFunctionImplementation
 (type $function.m_call__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:380:29
 (local $this (ref null $jsfunction.Main.RecursiveParametricJsFunctionImplementation))
 (local.set $this (ref.cast (ref $jsfunction.Main.RecursiveParametricJsFunctionImplementation) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:380:29
  (call $m_call__jsfunction_Main_ParametricJsFunction__void@jsfunction.Main.RecursiveParametricJsFunctionImplementation (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_call__java_lang_Object__void@jsfunction.Main.RecursiveParametricJsFunctionImplementation)

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

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

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

;;; Code for jsfunction.Main.RecursiveJsFunctionImplementation [methods]

;;; RecursiveJsFunctionImplementation RecursiveJsFunctionImplementation.$create()
(func $$create__@jsfunction.Main.RecursiveJsFunctionImplementation
 (result (ref null $jsfunction.Main.RecursiveJsFunctionImplementation))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:386:29
 (local $$instance (ref null $jsfunction.Main.RecursiveJsFunctionImplementation))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:386:29
  (local.set $$instance (struct.new $jsfunction.Main.RecursiveJsFunctionImplementation (global.get $jsfunction.Main.RecursiveJsFunctionImplementation.vtable) (global.get $jsfunction.Main.RecursiveJsFunctionImplementation.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:386:29
  (call $$ctor__void_$p_jsfunction_Main_RecursiveJsFunctionImplementation@jsfunction.Main.RecursiveJsFunctionImplementation (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:386:29
  (return (local.get $$instance))
 )
)

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

;;; void RecursiveJsFunctionImplementation.call(RecursiveJsFunctionImplementation t)
(func $m_call__jsfunction_Main_RecursiveJsFunctionImplementation__void@jsfunction.Main.RecursiveJsFunctionImplementation
 (type $function.m_call__jsfunction_Main_RecursiveJsFunctionImplementation__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $t (ref null $jsfunction.Main.RecursiveJsFunctionImplementation))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:388:16
 (local $this (ref null $jsfunction.Main.RecursiveJsFunctionImplementation))
 (local.set $this (ref.cast (ref $jsfunction.Main.RecursiveJsFunctionImplementation) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_call__jsfunction_Main_RecursiveJsFunctionImplementation__void@jsfunction.Main.RecursiveJsFunctionImplementation)

;;; void RecursiveJsFunctionImplementation.call(E arg0)
(func $m_call__java_lang_Object__void@jsfunction.Main.RecursiveJsFunctionImplementation
 (type $function.m_call__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:386:29
 (local $this (ref null $jsfunction.Main.RecursiveJsFunctionImplementation))
 (local.set $this (ref.cast (ref $jsfunction.Main.RecursiveJsFunctionImplementation) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:386:29
  (call $m_call__jsfunction_Main_RecursiveJsFunctionImplementation__void@jsfunction.Main.RecursiveJsFunctionImplementation (ref.as_non_null (local.get $this))(ref.cast (ref null $jsfunction.Main.RecursiveJsFunctionImplementation) (local.get $arg0)))
 )
)
(elem declare func $m_call__java_lang_Object__void@jsfunction.Main.RecursiveJsFunctionImplementation)

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

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

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

;;; Code for jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 [methods]

;;; <anonymous> implements F <anonymous> implements F.$create(int $captured_r1, String $captured_x1, int $captured_var1)
(func $$create__int__java_lang_String__int@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1
 (param $$captured_r1 i32)
 (param $$captured_x1 (ref null $java.lang.String))
 (param $$captured_var1 i32)
 (result (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (global.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.vtable) (global.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.itable) (i32.const 0) (i32.const 0) (i32.const 0) (ref.null $java.lang.String)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
  (call $$ctor__int__java_lang_String__int__void_$p_jsfunction_JsFunctionOptimization_1_1_$LambdaImplementor$1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (ref.as_non_null (local.get $$instance))(local.get $$captured_r1)(local.get $$captured_x1)(local.get $$captured_var1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements F.$ctor(int $captured_r1, String $captured_x1, int $captured_var1)
(func $$ctor__int__java_lang_String__int__void_$p_jsfunction_JsFunctionOptimization_1_1_$LambdaImplementor$1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1
 (param $this (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1))
 (param $$captured_r1 i32)
 (param $$captured_x1 (ref null $java.lang.String))
 (param $$captured_var1 i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:39:30
  (struct.set $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 $$captured_r1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (local.get $this) (local.get $$captured_r1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:41:33
  (struct.set $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 $$captured_x1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (local.get $this) (local.get $$captured_x1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:40:30
  (struct.set $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 $$captured_var1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (local.get $this) (local.get $$captured_var1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
  (call $$ctor__void_$p_jsfunction_JsFunctionOptimization_F_$LambdaAdaptor@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; String <anonymous> implements F.m(String s)
(func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1
 (type $function.m_m__java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
 (local $this (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:49:28
  (return (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (local.get $s))(call $m_valueOf__int__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 $$captured_r1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (local.get $this))))(call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 $$captured_x1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (local.get $this))))(call $m_valueOf__int__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 $$captured_var1@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (local.get $this)))))
 )
)
(elem declare func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1)

;;; void <anonymous> implements F.$clinit()
(func $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
  (if (global.get $$class-initialized@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
  (global.set $$class-initialized@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:48:40
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor )
 )
)

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

;;; Code for jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 [methods]

;;; <anonymous> implements F <anonymous> implements F.$create(int $captured_r, int $captured_var, String $captured_x)
(func $$create__int__int__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2
 (param $$captured_r i32)
 (param $$captured_var i32)
 (param $$captured_x (ref null $java.lang.String))
 (result (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (global.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2.vtable) (global.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2.itable) (i32.const 0) (i32.const 0) (i32.const 0) (ref.null $java.lang.String)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
  (call $$ctor__int__int__java_lang_String__void_$p_jsfunction_JsFunctionOptimization_1_1_$LambdaImplementor$2@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (ref.as_non_null (local.get $$instance))(local.get $$captured_r)(local.get $$captured_var)(local.get $$captured_x))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements F.$ctor(int $captured_r, int $captured_var, String $captured_x)
(func $$ctor__int__int__java_lang_String__void_$p_jsfunction_JsFunctionOptimization_1_1_$LambdaImplementor$2@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2
 (param $this (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2))
 (param $$captured_r i32)
 (param $$captured_var i32)
 (param $$captured_x (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:27:29
  (struct.set $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_r@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this) (local.get $$captured_r))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:33:22
  (struct.set $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_var@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this) (local.get $$captured_var))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:30:15
  (struct.set $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_x@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this) (local.get $$captured_x))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
  (call $$ctor__void_$p_jsfunction_JsFunctionOptimization_F_$LambdaAdaptor@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; String <anonymous> implements F.m(String s)
(func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2
 (type $function.m_m__java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
 (local $r1 i32)
 (local $var1 i32)
 (local $x1 (ref null $java.lang.String))
 (local $$qualifier (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1))
 (local $this (ref null $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:39:20
  (local.set $r1 (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_r@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:40:20
  (local.set $var1 (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_var@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:41:20
  (local.set $x1 (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_x@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:42:20
  (return (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_concat__java_lang_String__java_lang_String__java_lang_String@java.lang.String (call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (call $m_valueOf__int__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_r@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this))))(call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (local.get $s)))(call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_x@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this))))(call $m_valueOf__int__java_lang_String@java.lang.String (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 $$captured_var@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (local.get $this))))(call $m_valueOf__java_lang_Object__java_lang_String@java.lang.String (block (result (ref null $java.lang.String))
   (local.set $$qualifier (call $$create__int__java_lang_String__int@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 (local.get $r1)(local.get $x1)(local.get $var1)))
   (call_ref $function.m_m__java_lang_String__java_lang_String (ref.as_non_null (local.get $$qualifier))(call $$getString_|hello|__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 )(struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1.vtable $m_m__java_lang_String__java_lang_String (struct.get $jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$1 $vtable(local.get $$qualifier))))
  ))))
 )
)
(elem declare func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2)

;;; void <anonymous> implements F.$clinit()
(func $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
  (if (global.get $$class-initialized@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
  (global.set $$class-initialized@jsfunction.JsFunctionOptimization.1.1.$LambdaImplementor$2 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:38:32
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor )
 )
)

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

;;; Code for jsfunction.JsFunctionOptimization.$LambdaImplementor$3 [methods]

;;; <anonymous> implements F <anonymous> implements F.$create()
(func $$create__@jsfunction.JsFunctionOptimization.$LambdaImplementor$3
 (result (ref null $jsfunction.JsFunctionOptimization.$LambdaImplementor$3))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:83:24
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.$LambdaImplementor$3))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:83:24
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.$LambdaImplementor$3 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:83:24
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.$LambdaImplementor$3 (global.get $jsfunction.JsFunctionOptimization.$LambdaImplementor$3.vtable) (global.get $jsfunction.JsFunctionOptimization.$LambdaImplementor$3.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:83:24
  (call $$ctor__void_$p_jsfunction_JsFunctionOptimization_$LambdaImplementor$3@jsfunction.JsFunctionOptimization.$LambdaImplementor$3 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:83:24
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements F.$ctor()
(func $$ctor__void_$p_jsfunction_JsFunctionOptimization_$LambdaImplementor$3@jsfunction.JsFunctionOptimization.$LambdaImplementor$3
 (param $this (ref null $jsfunction.JsFunctionOptimization.$LambdaImplementor$3))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:83:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:83:24
  (call $$ctor__void_$p_jsfunction_JsFunctionOptimization_F_$LambdaAdaptor@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; String <anonymous> implements F.m(String s)
(func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.$LambdaImplementor$3
 (type $function.m_m__java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:83:24
 (local $this (ref null $jsfunction.JsFunctionOptimization.$LambdaImplementor$3))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.$LambdaImplementor$3) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:84:12
  (return (call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 ))
 )
)
(elem declare func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.$LambdaImplementor$3)

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

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

;;; Code for jsfunction.JsFunctionOptimization.$LambdaImplementor$4 [methods]

;;; <anonymous> implements F <anonymous> implements F.$create()
(func $$create__@jsfunction.JsFunctionOptimization.$LambdaImplementor$4
 (result (ref null $jsfunction.JsFunctionOptimization.$LambdaImplementor$4))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:91:22
 (local $$instance (ref null $jsfunction.JsFunctionOptimization.$LambdaImplementor$4))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:91:22
  (call $$clinit__void_<once>_@jsfunction.JsFunctionOptimization.$LambdaImplementor$4 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:91:22
  (local.set $$instance (struct.new $jsfunction.JsFunctionOptimization.$LambdaImplementor$4 (global.get $jsfunction.JsFunctionOptimization.$LambdaImplementor$4.vtable) (global.get $jsfunction.JsFunctionOptimization.$LambdaImplementor$4.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:91:22
  (call $$ctor__void_$p_jsfunction_JsFunctionOptimization_$LambdaImplementor$4@jsfunction.JsFunctionOptimization.$LambdaImplementor$4 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:91:22
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements F.$ctor()
(func $$ctor__void_$p_jsfunction_JsFunctionOptimization_$LambdaImplementor$4@jsfunction.JsFunctionOptimization.$LambdaImplementor$4
 (param $this (ref null $jsfunction.JsFunctionOptimization.$LambdaImplementor$4))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:91:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:91:22
  (call $$ctor__void_$p_jsfunction_JsFunctionOptimization_F_$LambdaAdaptor@jsfunction.JsFunctionOptimization.F.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; String <anonymous> implements F.m(String s)
(func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.$LambdaImplementor$4
 (type $function.m_m__java_lang_String__java_lang_String)
 (param $this.untyped (ref $java.lang.Object))
 (param $s (ref null $java.lang.String))
 (result (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:91:22
 (local $this (ref null $jsfunction.JsFunctionOptimization.$LambdaImplementor$4))
 (local.set $this (ref.cast (ref $jsfunction.JsFunctionOptimization.$LambdaImplementor$4) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/JsFunctionOptimization.java:92:10
  (return (call $$getString_||__java_lang_String_<once>_@jsfunction.JsFunctionOptimization.1 ))
 )
)
(elem declare func $m_m__java_lang_String__java_lang_String@jsfunction.JsFunctionOptimization.$LambdaImplementor$4)

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

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

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

;;; <anonymous> implements JsFunctionInterface <anonymous> implements JsFunctionInterface.$create(int $captured_n)
(func $$create__int@jsfunction.Main.$LambdaImplementor$1
 (param $$captured_n i32)
 (result (ref null $jsfunction.Main.$LambdaImplementor$1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:11
 (local $$instance (ref null $jsfunction.Main.$LambdaImplementor$1))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:11
  (call $$clinit__void_<once>_@jsfunction.Main.$LambdaImplementor$1 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:11
  (local.set $$instance (struct.new $jsfunction.Main.$LambdaImplementor$1 (global.get $jsfunction.Main.$LambdaImplementor$1.vtable) (global.get $jsfunction.Main.$LambdaImplementor$1.itable) (i32.const 0) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:11
  (call $$ctor__int__void_$p_jsfunction_Main_$LambdaImplementor$1@jsfunction.Main.$LambdaImplementor$1 (ref.as_non_null (local.get $$instance))(local.get $$captured_n))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:11
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements JsFunctionInterface.$ctor(int $captured_n)
(func $$ctor__int__void_$p_jsfunction_Main_$LambdaImplementor$1@jsfunction.Main.$LambdaImplementor$1
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$1))
 (param $$captured_n i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:11
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:91:14
  (struct.set $jsfunction.Main.$LambdaImplementor$1 $$captured_n@jsfunction.Main.$LambdaImplementor$1 (local.get $this) (local.get $$captured_n))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:11
  (call $$ctor__void_$p_jsfunction_Main_JsFunctionInterface_$LambdaAdaptor@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; int <anonymous> implements JsFunctionInterface.foo(int number)
(func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$1
 (type $function.m_foo__int__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $number i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:11
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$1))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$1) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:93:23
  (return (i32.add (local.get $number) (struct.get $jsfunction.Main.$LambdaImplementor$1 $$captured_n@jsfunction.Main.$LambdaImplementor$1 (local.get $this))))
 )
)
(elem declare func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$1)

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

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

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

;;; <anonymous> implements JsFunctionInterface <anonymous> implements JsFunctionInterface.$create(int $captured_n)
(func $$create__int@jsfunction.Main.$LambdaImplementor$2
 (param $$captured_n i32)
 (result (ref null $jsfunction.Main.$LambdaImplementor$2))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:97:21
 (local $$instance (ref null $jsfunction.Main.$LambdaImplementor$2))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:97:21
  (call $$clinit__void_<once>_@jsfunction.Main.$LambdaImplementor$2 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:97:21
  (local.set $$instance (struct.new $jsfunction.Main.$LambdaImplementor$2 (global.get $jsfunction.Main.$LambdaImplementor$2.vtable) (global.get $jsfunction.Main.$LambdaImplementor$2.itable) (i32.const 0) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:97:21
  (call $$ctor__int__void_$p_jsfunction_Main_$LambdaImplementor$2@jsfunction.Main.$LambdaImplementor$2 (ref.as_non_null (local.get $$instance))(local.get $$captured_n))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:97:21
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements JsFunctionInterface.$ctor(int $captured_n)
(func $$ctor__int__void_$p_jsfunction_Main_$LambdaImplementor$2@jsfunction.Main.$LambdaImplementor$2
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$2))
 (param $$captured_n i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:97:21
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:91:14
  (struct.set $jsfunction.Main.$LambdaImplementor$2 $$captured_n@jsfunction.Main.$LambdaImplementor$2 (local.get $this) (local.get $$captured_n))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:97:21
  (call $$ctor__void_$p_jsfunction_Main_JsFunctionInterface_$LambdaAdaptor@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; int <anonymous> implements JsFunctionInterface.foo(int a)
(func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$2
 (type $function.m_foo__int__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $a i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:97:21
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$2))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$2) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:98:12
  (return (i32.add (local.get $a) (struct.get $jsfunction.Main.$LambdaImplementor$2 $$captured_n@jsfunction.Main.$LambdaImplementor$2 (local.get $this))))
 )
)
(elem declare func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$2)

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

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

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

;;; <anonymous> implements JsFunctionInterface <anonymous> implements JsFunctionInterface.$create(Main $outer_this)
(func $$create__jsfunction_Main@jsfunction.Main.$LambdaImplementor$3
 (param $$outer_this (ref null $jsfunction.Main))
 (result (ref null $jsfunction.Main.$LambdaImplementor$3))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
 (local $$instance (ref null $jsfunction.Main.$LambdaImplementor$3))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
  (call $$clinit__void_<once>_@jsfunction.Main.$LambdaImplementor$3 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
  (local.set $$instance (struct.new $jsfunction.Main.$LambdaImplementor$3 (global.get $jsfunction.Main.$LambdaImplementor$3.vtable) (global.get $jsfunction.Main.$LambdaImplementor$3.itable) (i32.const 0) (ref.null $jsfunction.Main)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
  (call $$ctor__jsfunction_Main__void_$p_jsfunction_Main_$LambdaImplementor$3@jsfunction.Main.$LambdaImplementor$3 (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements JsFunctionInterface.$ctor(Main $outer_this)
(func $$ctor__jsfunction_Main__void_$p_jsfunction_Main_$LambdaImplementor$3@jsfunction.Main.$LambdaImplementor$3
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$3))
 (param $$outer_this (ref null $jsfunction.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
  (struct.set $jsfunction.Main.$LambdaImplementor$3 $$outer_this@jsfunction.Main.$LambdaImplementor$3 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
  (call $$ctor__void_$p_jsfunction_Main_JsFunctionInterface_$LambdaAdaptor@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; int <anonymous> implements JsFunctionInterface.foo(int a)
(func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$3
 (type $function.m_foo__int__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $a i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:105:17
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$3))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$3) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:106:8
  (call $m_instanceMethod__void_$p_jsfunction_Main@jsfunction.Main (ref.as_non_null (struct.get $jsfunction.Main.$LambdaImplementor$3 $$outer_this@jsfunction.Main.$LambdaImplementor$3 (local.get $this))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:107:8
  (return (i32.const 0))
 )
)
(elem declare func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$3)

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

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

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

;;; <anonymous> implements JsFunctionInterface <anonymous> implements JsFunctionInterface.$create(Main $outer_this)
(func $$create__jsfunction_Main@jsfunction.Main.$LambdaImplementor$4
 (param $$outer_this (ref null $jsfunction.Main))
 (result (ref null $jsfunction.Main.$LambdaImplementor$4))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
 (local $$instance (ref null $jsfunction.Main.$LambdaImplementor$4))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
  (call $$clinit__void_<once>_@jsfunction.Main.$LambdaImplementor$4 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
  (local.set $$instance (struct.new $jsfunction.Main.$LambdaImplementor$4 (global.get $jsfunction.Main.$LambdaImplementor$4.vtable) (global.get $jsfunction.Main.$LambdaImplementor$4.itable) (i32.const 0) (ref.null $jsfunction.Main)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
  (call $$ctor__jsfunction_Main__void_$p_jsfunction_Main_$LambdaImplementor$4@jsfunction.Main.$LambdaImplementor$4 (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements JsFunctionInterface.$ctor(Main $outer_this)
(func $$ctor__jsfunction_Main__void_$p_jsfunction_Main_$LambdaImplementor$4@jsfunction.Main.$LambdaImplementor$4
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$4))
 (param $$outer_this (ref null $jsfunction.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
  (struct.set $jsfunction.Main.$LambdaImplementor$4 $$outer_this@jsfunction.Main.$LambdaImplementor$4 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
  (call $$ctor__void_$p_jsfunction_Main_JsFunctionInterface_$LambdaAdaptor@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; int <anonymous> implements JsFunctionInterface.foo(int a)
(func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$4
 (type $function.m_foo__int__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $a i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:115:17
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$4))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$4) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:117:8
  (call $m_instanceMethod__void_$p_jsfunction_Main@jsfunction.Main (ref.as_non_null (struct.get $jsfunction.Main.$LambdaImplementor$4 $$outer_this@jsfunction.Main.$LambdaImplementor$4 (local.get $this))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:118:8
  (return (i32.const 0))
 )
)
(elem declare func $m_foo__int__int@jsfunction.Main.$LambdaImplementor$4)

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

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

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

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

;;; void <anonymous> implements JsFunctionVarargs.$ctor()
(func $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$5@jsfunction.Main.$LambdaImplementor$5
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$5))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:145:8
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:145:8
  (call $$ctor__void_$p_jsfunction_Main_JsFunctionVarargs_$LambdaAdaptor@jsfunction.Main.JsFunctionVarargs.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; int <anonymous> implements JsFunctionVarargs.m(int i, int... numbers)
(func $m_m__int__arrayOf_int__int@jsfunction.Main.$LambdaImplementor$5
 (type $function.m_m__int__arrayOf_int__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $i i32)
 (param $numbers (ref null $javaemul.internal.WasmArray.OfInt))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:145:8
 (local $sum i32)
 (local $$array (ref null $javaemul.internal.WasmArray.OfInt))
 (local $$index i32)
 (local $number i32)
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$5))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$5) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:146:10
  (local.set $sum (local.get $i))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:147:10
  (local.set $$array (local.get $numbers))
  (local.set $$index (i32.const 0))
  (block $LOOP.BREAK
   (loop
    (br_if 1 (i32.eqz (i32.lt_s (local.get $$index) (array.len (struct.get $javaemul.internal.WasmArray.OfInt $elements@javaemul.internal.WasmArray.OfInt (local.get $$array))))))
    (block $LOOP.CONTINUE
     (block
      ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:147:10
      (local.set $number (array.get $int.array (struct.get $javaemul.internal.WasmArray.OfInt $elements@javaemul.internal.WasmArray.OfInt (local.get $$array)) (local.get $$index)))
      (block
       ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:148:12
       (local.set $sum (i32.add (local.get $sum) (local.get $number)))
      )
     )
    )
    (local.set $$index (i32.add (local.get $$index) (i32.const 1)))
    (br 0)
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:150:10
  (return (local.get $sum))
 )
)
(elem declare func $m_m__int__arrayOf_int__int@jsfunction.Main.$LambdaImplementor$5)

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

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

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

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

;;; void <anonymous> implements JsFunctionVarargs.$ctor()
(func $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$6@jsfunction.Main.$LambdaImplementor$6
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$6))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:158:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:158:17
  (call $$ctor__void_$p_jsfunction_Main_JsFunctionVarargs_$LambdaAdaptor@jsfunction.Main.JsFunctionVarargs.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; int <anonymous> implements JsFunctionVarargs.m(int i, int... numbers)
(func $m_m__int__arrayOf_int__int@jsfunction.Main.$LambdaImplementor$6
 (type $function.m_m__int__arrayOf_int__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $i i32)
 (param $numbers (ref null $javaemul.internal.WasmArray.OfInt))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:158:17
 (local $sum i32)
 (local $$array (ref null $javaemul.internal.WasmArray.OfInt))
 (local $$index i32)
 (local $number i32)
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$6))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$6) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:159:8
  (local.set $sum (local.get $i))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:160:8
  (local.set $$array (local.get $numbers))
  (local.set $$index (i32.const 0))
  (block $LOOP.BREAK
   (loop
    (br_if 1 (i32.eqz (i32.lt_s (local.get $$index) (array.len (struct.get $javaemul.internal.WasmArray.OfInt $elements@javaemul.internal.WasmArray.OfInt (local.get $$array))))))
    (block $LOOP.CONTINUE
     (block
      ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:160:8
      (local.set $number (array.get $int.array (struct.get $javaemul.internal.WasmArray.OfInt $elements@javaemul.internal.WasmArray.OfInt (local.get $$array)) (local.get $$index)))
      (block
       ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:161:10
       (local.set $sum (i32.add (local.get $sum) (local.get $number)))
      )
     )
    )
    (local.set $$index (i32.add (local.get $$index) (i32.const 1)))
    (br 0)
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:163:8
  (return (local.get $sum))
 )
)
(elem declare func $m_m__int__arrayOf_int__int@jsfunction.Main.$LambdaImplementor$6)

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

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

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

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

;;; void <anonymous> implements ForEachCallBack<ElementalJsFunction>.$ctor()
(func $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$7@jsfunction.Main.$LambdaImplementor$7
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$7))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:179:45
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:179:45
  (call $$ctor__void_$p_jsfunction_Main_ForEachCallBack_$LambdaAdaptor@jsfunction.Main.ForEachCallBack.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; Object <anonymous> implements ForEachCallBack<ElementalJsFunction>.onInvoke(ElementalJsFunction arg0, int arg1, ElementalJsFunction[] arg2)
(func $m_onInvoke__jsfunction_Main_ElementalJsFunction__int__arrayOf_jsfunction_Main_ElementalJsFunction__java_lang_Object@jsfunction.Main.$LambdaImplementor$7
 (type $function.m_onInvoke__jsfunction_Main_ElementalJsFunction__int__arrayOf_jsfunction_Main_ElementalJsFunction__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 i32)
 (param $arg2 (ref null $javaemul.internal.WasmArray.OfObject))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:179:45
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$7))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$7) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:179:45
  (return (call_ref $function.m_call__arrayOf_java_lang_Object__java_lang_Object (ref.as_non_null (local.get $arg0))(call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 2 (call $m_valueOf__int__java_lang_Integer@java.lang.Integer (local.get $arg1))(local.get $arg2)))(struct.get $jsfunction.Main.ElementalJsFunction.vtable $m_call__arrayOf_java_lang_Object__java_lang_Object (ref.cast (ref $jsfunction.Main.ElementalJsFunction.vtable) (call $get.itable.$jsfunction.Main.ElementalJsFunction (local.get $arg0))))))
 )
)
(elem declare func $m_onInvoke__jsfunction_Main_ElementalJsFunction__int__arrayOf_jsfunction_Main_ElementalJsFunction__java_lang_Object@jsfunction.Main.$LambdaImplementor$7)

;;; Object <anonymous> implements ForEachCallBack<ElementalJsFunction>.onInvoke(T arg0, int arg1, T[] arg2)
(func $m_onInvoke__java_lang_Object__int__arrayOf_java_lang_Object__java_lang_Object@jsfunction.Main.$LambdaImplementor$7
 (type $function.m_onInvoke__java_lang_Object__int__arrayOf_java_lang_Object__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 (param $arg1 i32)
 (param $arg2 (ref null $javaemul.internal.WasmArray.OfObject))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:179:45
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$7))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$7) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:179:45
  (return (call_ref $function.m_onInvoke__jsfunction_Main_ElementalJsFunction__int__arrayOf_jsfunction_Main_ElementalJsFunction__java_lang_Object (ref.as_non_null (local.get $this))(local.get $arg0)(local.get $arg1)(ref.cast (ref null $javaemul.internal.WasmArray.OfObject) (local.get $arg2))(struct.get $jsfunction.Main.$LambdaImplementor$7.vtable $m_onInvoke__jsfunction_Main_ElementalJsFunction__int__arrayOf_jsfunction_Main_ElementalJsFunction__java_lang_Object (struct.get $jsfunction.Main.$LambdaImplementor$7 $vtable(local.get $this)))))
 )
)
(elem declare func $m_onInvoke__java_lang_Object__int__arrayOf_java_lang_Object__java_lang_Object@jsfunction.Main.$LambdaImplementor$7)

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

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

;;; Code for jsfunction.Main.$LambdaImplementor$8 [methods]

;;; <anonymous> implements JsFunctionOptional <anonymous> implements JsFunctionOptional.$create()
(func $$create__@jsfunction.Main.$LambdaImplementor$8
 (result (ref null $jsfunction.Main.$LambdaImplementor$8))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:27
 (local $$instance (ref null $jsfunction.Main.$LambdaImplementor$8))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:27
  (call $$clinit__void_<once>_@jsfunction.Main.$LambdaImplementor$8 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:27
  (local.set $$instance (struct.new $jsfunction.Main.$LambdaImplementor$8 (global.get $jsfunction.Main.$LambdaImplementor$8.vtable) (global.get $jsfunction.Main.$LambdaImplementor$8.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:27
  (call $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$8@jsfunction.Main.$LambdaImplementor$8 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:27
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements JsFunctionOptional.$ctor()
(func $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$8@jsfunction.Main.$LambdaImplementor$8
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$8))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:27
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:27
  (call $$ctor__void_$p_jsfunction_Main_JsFunctionOptional_$LambdaAdaptor@jsfunction.Main.JsFunctionOptional.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; int <anonymous> implements JsFunctionOptional.m(int i, Double n)
(func $m_m__int__java_lang_Double__int@jsfunction.Main.$LambdaImplementor$8
 (type $function.m_m__int__java_lang_Double__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $i i32)
 (param $n (ref null $java.lang.Double))
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:27
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$8))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$8) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:225:37
  (return (i32.trunc_sat_f64_s (f64.add (f64.convert_i32_s (local.get $i)) (call $m_doubleValue__double@java.lang.Double (ref.as_non_null (local.get $n))))))
 )
)
(elem declare func $m_m__int__java_lang_Double__int@jsfunction.Main.$LambdaImplementor$8)

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

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

;;; Code for jsfunction.Main.$LambdaImplementor$9 [methods]

;;; <anonymous> implements ParametricJsFunction<?> <anonymous> implements ParametricJsFunction<?>.$create()
(func $$create__@jsfunction.Main.$LambdaImplementor$9
 (result (ref null $jsfunction.Main.$LambdaImplementor$9))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
 (local $$instance (ref null $jsfunction.Main.$LambdaImplementor$9))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
  (call $$clinit__void_<once>_@jsfunction.Main.$LambdaImplementor$9 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
  (local.set $$instance (struct.new $jsfunction.Main.$LambdaImplementor$9 (global.get $jsfunction.Main.$LambdaImplementor$9.vtable) (global.get $jsfunction.Main.$LambdaImplementor$9.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
  (call $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$9@jsfunction.Main.$LambdaImplementor$9 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements ParametricJsFunction<?>.$ctor()
(func $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$9@jsfunction.Main.$LambdaImplementor$9
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$9))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
  (call $$ctor__void_$p_jsfunction_Main_ParametricJsFunction_$LambdaAdaptor@jsfunction.Main.ParametricJsFunction.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; void <anonymous> implements ParametricJsFunction<?>.call(? event)
(func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$9
 (type $function.m_call__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $event (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
 (local $event_1 (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$9))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$9) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:233:52
  (local.set $event_1 (local.get $event))
 )
)
(elem declare func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$9)

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

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

;;; Code for jsfunction.Main.$LambdaImplementor$10 [methods]

;;; <anonymous> implements ParametricJsFunction<String> <anonymous> implements ParametricJsFunction<String>.$create()
(func $$create__@jsfunction.Main.$LambdaImplementor$10
 (result (ref null $jsfunction.Main.$LambdaImplementor$10))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
 (local $$instance (ref null $jsfunction.Main.$LambdaImplementor$10))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
  (call $$clinit__void_<once>_@jsfunction.Main.$LambdaImplementor$10 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
  (local.set $$instance (struct.new $jsfunction.Main.$LambdaImplementor$10 (global.get $jsfunction.Main.$LambdaImplementor$10.vtable) (global.get $jsfunction.Main.$LambdaImplementor$10.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
  (call $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$10@jsfunction.Main.$LambdaImplementor$10 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements ParametricJsFunction<String>.$ctor()
(func $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$10@jsfunction.Main.$LambdaImplementor$10
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$10))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
  (call $$ctor__void_$p_jsfunction_Main_ParametricJsFunction_$LambdaAdaptor@jsfunction.Main.ParametricJsFunction.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; void <anonymous> implements ParametricJsFunction<String>.call(String event)
(func $m_call__java_lang_String__void@jsfunction.Main.$LambdaImplementor$10
 (type $function.m_call__java_lang_String__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $event (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$10))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$10) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_call__java_lang_String__void@jsfunction.Main.$LambdaImplementor$10)

;;; void <anonymous> implements ParametricJsFunction<String>.call(E arg0)
(func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$10
 (type $function.m_call__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$10))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$10) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:235:62
  (call_ref $function.m_call__java_lang_String__void (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.String) (local.get $arg0))(struct.get $jsfunction.Main.$LambdaImplementor$10.vtable $m_call__java_lang_String__void (struct.get $jsfunction.Main.$LambdaImplementor$10 $vtable(local.get $this))))
 )
)
(elem declare func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$10)

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

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

;;; Code for jsfunction.Main.$LambdaImplementor$11 [methods]

;;; <anonymous> implements ParametricJsFunction<String> <anonymous> implements ParametricJsFunction<String>.$create()
(func $$create__@jsfunction.Main.$LambdaImplementor$11
 (result (ref null $jsfunction.Main.$LambdaImplementor$11))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
 (local $$instance (ref null $jsfunction.Main.$LambdaImplementor$11))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
  (call $$clinit__void_<once>_@jsfunction.Main.$LambdaImplementor$11 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
  (local.set $$instance (struct.new $jsfunction.Main.$LambdaImplementor$11 (global.get $jsfunction.Main.$LambdaImplementor$11.vtable) (global.get $jsfunction.Main.$LambdaImplementor$11.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
  (call $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$11@jsfunction.Main.$LambdaImplementor$11 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements ParametricJsFunction<String>.$ctor()
(func $$ctor__void_$p_jsfunction_Main_$LambdaImplementor$11@jsfunction.Main.$LambdaImplementor$11
 (param $this (ref null $jsfunction.Main.$LambdaImplementor$11))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
  (call $$ctor__void_$p_jsfunction_Main_ParametricJsFunction_$LambdaAdaptor@jsfunction.Main.ParametricJsFunction.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; void <anonymous> implements ParametricJsFunction<String>.call(String unused)
(func $m_call__java_lang_String__void@jsfunction.Main.$LambdaImplementor$11
 (type $function.m_call__java_lang_String__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $unused (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
 (local $l (ref null $java.lang.Object))
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$11))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$11) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:267:10
  (local.set $l (call $$create__@java.util.ArrayList ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:268:10
  (drop (call_ref $function.m_add__java_lang_Object__boolean (ref.as_non_null (local.get $l))(call $$create__@java.util.ArrayList )(struct.get $java.util.List.vtable $m_add__java_lang_Object__boolean (ref.cast (ref $java.util.List.vtable) (call $get.itable.$java.util.List (local.get $l))))))
 )
)
(elem declare func $m_call__java_lang_String__void@jsfunction.Main.$LambdaImplementor$11)

;;; void <anonymous> implements ParametricJsFunction<String>.call(E arg0)
(func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$11
 (type $function.m_call__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
 (local $this (ref null $jsfunction.Main.$LambdaImplementor$11))
 (local.set $this (ref.cast (ref $jsfunction.Main.$LambdaImplementor$11) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:266:8
  (call_ref $function.m_call__java_lang_String__void (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.String) (local.get $arg0))(struct.get $jsfunction.Main.$LambdaImplementor$11.vtable $m_call__java_lang_String__void (struct.get $jsfunction.Main.$LambdaImplementor$11 $vtable(local.get $this))))
 )
)
(elem declare func $m_call__java_lang_Object__void@jsfunction.Main.$LambdaImplementor$11)

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

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

;;; Code for jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 [methods]

;;; <anonymous> implements Function<Object, Object> <anonymous> implements Function<Object, Object>.$create()
(func $$create__@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12
 (result (ref null $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
 (local $$instance (ref null $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
  (call $$clinit__void_<once>_@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
  (local.set $$instance (struct.new $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 (global.get $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12.vtable) (global.get $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
  (call $$ctor__void_$p_jsfunction_Main_TestCaptureOuterParametricClass_$LambdaImplementor$12@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements Function<Object, Object>.$ctor()
(func $$ctor__void_$p_jsfunction_Main_TestCaptureOuterParametricClass_$LambdaImplementor$12@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12
 (param $this (ref null $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
  (call $$ctor__void_$p_jsfunction_Main_Function_$LambdaAdaptor@jsfunction.Main.Function.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; Object <anonymous> implements Function<Object, Object>.apply(Object object)
(func $m_apply__java_lang_Object__java_lang_Object@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12
 (type $function.m_apply__java_lang_Object__java_lang_Object)
 (param $this.untyped (ref $java.lang.Object))
 (param $object (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
 (local $this (ref null $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12))
 (local.set $this (ref.cast (ref $jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:45
  (return (call $$create__@java.util.ArrayList ))
 )
)
(elem declare func $m_apply__java_lang_Object__java_lang_Object@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12)

;;; void <anonymous> implements Function<Object, Object>.$clinit()
(func $$clinit__void_<once>_@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
  (if (global.get $$class-initialized@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
  (global.set $$class-initialized@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:134:35
  (call $$clinit__void_<once>_@jsfunction.Main.Function.$LambdaAdaptor )
 )
)

;;; Class<T> <anonymous> implements Function<Object, Object>.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12)))
   (then
    (return (global.get $$class@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12))
   )
  )
  (global.set $$class@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|jsfunction.M...|__java_lang_String_<once>_@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12 )(call $$getClassMetadata__java_lang_Class_<once>_@jsfunction.Main.Function.$LambdaAdaptor )))
  (return (global.get $$class@jsfunction.Main.TestCaptureOuterParametricClass.$LambdaImplementor$12))
 )
)

;;; Code for jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 [methods]

;;; <anonymous> implements JsFunctionInterface <anonymous> implements JsFunctionInterface.$create(TestJsFunctionInJsOverlayCapturingOuter $outer_this)
(func $$create__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13
 (param $$outer_this (ref null extern))
 (result (ref null $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
 (local $$instance (ref null $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
  (call $$clinit__void_<once>_@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
  (local.set $$instance (struct.new $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 (global.get $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13.vtable) (global.get $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13.itable) (i32.const 0) (ref.null extern)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
  (call $$ctor__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter__void_$p_jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter_$LambdaImplementor$13@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
  (return (local.get $$instance))
 )
)

;;; void <anonymous> implements JsFunctionInterface.$ctor(TestJsFunctionInJsOverlayCapturingOuter $outer_this)
(func $$ctor__jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter__void_$p_jsfunction_Main_TestJsFunctionInJsOverlayCapturingOuter_$LambdaImplementor$13@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13
 (param $this (ref null $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13))
 (param $$outer_this (ref null extern))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
  (struct.set $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 $$outer_this@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
  (call $$ctor__void_$p_jsfunction_Main_JsFunctionInterface_$LambdaAdaptor@jsfunction.Main.JsFunctionInterface.$LambdaAdaptor (ref.as_non_null (local.get $this)))
 )
)

;;; int <anonymous> implements JsFunctionInterface.foo(int a)
(func $m_foo__int__int@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13
 (type $function.m_foo__int__int)
 (param $this.untyped (ref $java.lang.Object))
 (param $a i32)
 (result i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:11
 (local $this (ref null $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13))
 (local.set $this (ref.cast (ref $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/jsfunction/readable-j2wasm.js/jsfunction/Main.java:373:16
  (return (if (result i32) (ref.is_null (struct.get $jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 $$outer_this@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13 (local.get $this))) (then (i32.const 0)) (else (i32.const 1))))
 )
)
(elem declare func $m_foo__int__int@jsfunction.Main.TestJsFunctionInJsOverlayCapturingOuter.$LambdaImplementor$13)

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

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