;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.I [type definition]
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.vtable (sub (struct
 (field $m_bar__void (ref $function.m_bar__void))
 (field $m_foo__void (ref $function.m_foo__void))
 ))
)

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.J [type definition]
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.vtable (sub (struct
 (field $m_bar__void (ref $function.m_bar__void))
 (field $m_foo__void (ref $function.m_foo__void))
 ))
)

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor [type definition]
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$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_bar__void (ref $function.m_bar__void))
 (field $m_foo__void (ref $function.m_foo__void))
 ))
)
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor.vtable))
 (field $itable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor [type definition]
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$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_bar__void (ref $function.m_bar__void))
 (field $m_foo__void (ref $function.m_foo__void))
 ))
)
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor.vtable))
 (field $itable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.A [type definition]
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A.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_bar__void (ref $function.m_bar__void))
 (field $m_foo__void (ref $function.m_foo__void))
 ))
)
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A (sub $java.lang.Object (struct
 (field $vtable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A.vtable))
 (field $itable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.B [type definition]
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B.vtable (sub $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A.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_bar__void (ref $function.m_bar__void))
 (field $m_foo__void (ref $function.m_foo__void))
 ))
)
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B (sub $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A (struct
 (field $vtable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B.vtable))
 (field $itable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.C [type definition]
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C.vtable (sub $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A.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_bar__void (ref $function.m_bar__void))
 (field $m_foo__void (ref $function.m_foo__void))
 ))
)
(type $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C (sub $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A (struct
 (field $vtable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C.vtable))
 (field $itable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.I [imports]

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.J [imports]

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault [imports]

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor [imports]

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor [imports]

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.A [imports]

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.B [imports]

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.C [imports]

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

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

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

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

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

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

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

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault [vtable.init]
(global $abstractmethodoverridedefault.AbstractMethodOverrideDefault.vtable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.vtable)
 (struct.new $abstractmethodoverridedefault.AbstractMethodOverrideDefault.vtable
  (ref.func $$getClassImpl__java_lang_Class@abstractmethodoverridedefault.AbstractMethodOverrideDefault)
  (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 abstractmethodoverridedefault.AbstractMethodOverrideDefault.C [vtable.init]
(global $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C.vtable (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C.vtable)
 (struct.new $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C.vtable
  (ref.func $$getClassImpl__java_lang_Class@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C)
  (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_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C)
  (ref.func $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C)
 )
)
(global $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.vtable@$abstractmethodoverridedefault.AbstractMethodOverrideDefault.C (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.vtable)
 (struct.new $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.vtable
  (ref.func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C)
  (ref.func $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C)
 )
)

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.I [methods]

;;; void I.bar()
(func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.I
 (param $this (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:22:17
 (block
 )
)
(elem declare func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.I)

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

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.J [methods]

;;; void J.foo()
(func $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.J
 (param $this (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:26:17
 (block
 )
)
(elem declare func $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.J)

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

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault [methods]

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

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

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

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

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_abstractmethodoverridedefault_AbstractMethodOverrideDefault_I_$LambdaAdaptor@abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor
 (param $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:19:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:19:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void $LambdaAdaptor.bar()
(func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor
 (type $function.m_bar__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:19:12
 (local $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:19:12
  (call $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.I (ref.as_non_null (local.get $this)))
 )
)
(elem declare func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.I.$LambdaAdaptor)

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

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

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_abstractmethodoverridedefault_AbstractMethodOverrideDefault_J_$LambdaAdaptor@abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor
 (param $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:25:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:25:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void $LambdaAdaptor.foo()
(func $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor
 (type $function.m_foo__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:25:12
 (local $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:25:12
  (call $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.J (ref.as_non_null (local.get $this)))
 )
)
(elem declare func $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.J.$LambdaAdaptor)

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

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

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.A [methods]

;;; void A.$ctor()
(func $$ctor__void_$p_abstractmethodoverridedefault_AbstractMethodOverrideDefault_A@abstractmethodoverridedefault.AbstractMethodOverrideDefault.A
 (param $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:31:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:31:24
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void A.bar()
(func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.A
 (type $function.m_bar__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:31:24
 (local $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A))
 (local.set $this (ref.cast (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.A) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:31:24
  (call $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.I (ref.as_non_null (local.get $this)))
 )
)
(elem declare func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.A)

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

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

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.B [methods]

;;; void B.$ctor()
(func $$ctor__void_$p_abstractmethodoverridedefault_AbstractMethodOverrideDefault_B@abstractmethodoverridedefault.AbstractMethodOverrideDefault.B
 (param $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:36:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:36:24
  (call $$ctor__void_$p_abstractmethodoverridedefault_AbstractMethodOverrideDefault_A@abstractmethodoverridedefault.AbstractMethodOverrideDefault.A (ref.as_non_null (local.get $this)))
 )
)

;;; void B.bar()
(func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.B
 (type $function.m_bar__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:39:16
 (local $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B))
 (local.set $this (ref.cast (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:40:6
  (if (i32.const 0)
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:41:8
     (call_ref $function.m_bar__void (ref.as_non_null (local.get $this))(struct.get $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B.vtable $m_bar__void (struct.get $abstractmethodoverridedefault.AbstractMethodOverrideDefault.B $vtable(local.get $this))))
    )
   )
  )
 )
)
(elem declare func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.B)

;;; void B.$clinit()
(func $$clinit__void_<once>_@abstractmethodoverridedefault.AbstractMethodOverrideDefault.B
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:36:24
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:36:24
  (if (global.get $$class-initialized@abstractmethodoverridedefault.AbstractMethodOverrideDefault.B)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:36:24
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:36:24
  (global.set $$class-initialized@abstractmethodoverridedefault.AbstractMethodOverrideDefault.B (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:36:24
  (call $$clinit__void_<once>_@abstractmethodoverridedefault.AbstractMethodOverrideDefault.A )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:36:24
  (call $$clinit__void_<once>_@abstractmethodoverridedefault.AbstractMethodOverrideDefault.J )
 )
)

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

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

;;; Code for abstractmethodoverridedefault.AbstractMethodOverrideDefault.C [methods]

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

;;; void C.$ctor()
(func $$ctor__void_$p_abstractmethodoverridedefault_AbstractMethodOverrideDefault_C@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C
 (param $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:46:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:46:15
  (call $$ctor__void_$p_abstractmethodoverridedefault_AbstractMethodOverrideDefault_A@abstractmethodoverridedefault.AbstractMethodOverrideDefault.A (ref.as_non_null (local.get $this)))
 )
)

;;; void C.foo()
(func $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C
 (type $function.m_foo__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:47:16
 (local $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C))
 (local.set $this (ref.cast (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_foo__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C)

;;; void C.bar()
(func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C
 (type $function.m_bar__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:49:16
 (local $this (ref null $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C))
 (local.set $this (ref.cast (ref $abstractmethodoverridedefault.AbstractMethodOverrideDefault.C) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/abstractmethodoverridedefault/readable-j2wasm.js/abstractmethodoverridedefault/AbstractMethodOverrideDefault.java:50:6
  (call $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.I (ref.as_non_null (local.get $this)))
 )
)
(elem declare func $m_bar__void@abstractmethodoverridedefault.AbstractMethodOverrideDefault.C)

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

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

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