;;; Code for interfacejsbridge.MyJsInterface [type definition]
(type $interfacejsbridge.MyJsInterface.vtable (sub (struct
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 ))
)

;;; Code for interfacejsbridge.MyInterface [type definition]
(type $interfacejsbridge.MyInterface.vtable (sub (struct
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 ))
)

;;; Code for interfacejsbridge.SubInterface [type definition]
(type $interfacejsbridge.SubInterface.vtable (sub $interfacejsbridge.MyJsInterface.vtable (struct
 (field $m_foo__int__int (ref $function.m_foo__int__int))
 ))
)

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

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

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

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

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

;;; Code for interfacejsbridge.MyJsInterface [imports]

;;; Code for interfacejsbridge.MyInterface [imports]

;;; Code for interfacejsbridge.SubInterface [imports]

;;; Code for interfacejsbridge.MyJsInterface.$LambdaAdaptor [imports]

;;; Code for interfacejsbridge.MyInterface.$LambdaAdaptor [imports]

;;; Code for interfacejsbridge.Main [imports]

;;; Code for interfacejsbridge.InterfaceImpl [imports]

;;; Code for interfacejsbridge.SubInterface.$LambdaAdaptor [imports]

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

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

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

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

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

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

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

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

;;; Code for interfacejsbridge.InterfaceImpl [vtable.init]
(global $interfacejsbridge.InterfaceImpl.vtable (ref $interfacejsbridge.InterfaceImpl.vtable)
 (struct.new $interfacejsbridge.InterfaceImpl.vtable
  (ref.func $$getClassImpl__java_lang_Class@interfacejsbridge.InterfaceImpl)
  (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@interfacejsbridge.InterfaceImpl)
 )
)
(global $interfacejsbridge.SubInterface.vtable@$interfacejsbridge.InterfaceImpl (ref $interfacejsbridge.SubInterface.vtable)
 (struct.new $interfacejsbridge.SubInterface.vtable
  (ref.func $m_foo__int__int@interfacejsbridge.InterfaceImpl)
 )
)
(global $interfacejsbridge.MyJsInterface.vtable@$interfacejsbridge.InterfaceImpl (ref $interfacejsbridge.SubInterface.vtable) (global.get $interfacejsbridge.SubInterface.vtable@$interfacejsbridge.InterfaceImpl))
(global $interfacejsbridge.MyInterface.vtable@$interfacejsbridge.InterfaceImpl (ref $interfacejsbridge.MyInterface.vtable)
 (struct.new $interfacejsbridge.MyInterface.vtable
  (ref.func $m_foo__int__int@interfacejsbridge.InterfaceImpl)
 )
)

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

;;; Code for interfacejsbridge.MyJsInterface [methods]

;;; void MyJsInterface.$clinit()
(func $$clinit__void_<once>_@interfacejsbridge.MyJsInterface
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:21:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:21:10
  (if (global.get $$class-initialized@interfacejsbridge.MyJsInterface)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:21:10
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:21:10
  (global.set $$class-initialized@interfacejsbridge.MyJsInterface (i32.const 1))
 )
)

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

;;; Code for interfacejsbridge.MyInterface [methods]

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

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

;;; Code for interfacejsbridge.SubInterface [methods]

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

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

;;; Code for interfacejsbridge.MyJsInterface.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_interfacejsbridge_MyJsInterface_$LambdaAdaptor@interfacejsbridge.MyJsInterface.$LambdaAdaptor
 (param $this (ref null $interfacejsbridge.MyJsInterface.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:21:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:21:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for interfacejsbridge.MyInterface.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_interfacejsbridge_MyInterface_$LambdaAdaptor@interfacejsbridge.MyInterface.$LambdaAdaptor
 (param $this (ref null $interfacejsbridge.MyInterface.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:25:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:25:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for interfacejsbridge.Main [methods]

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

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

;;; void Main.test()
(func $m_test__void@interfacejsbridge.Main
 (type $function.m_test__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:19:14
 (local $a (ref null $java.lang.Object))
 (local $b (ref null $java.lang.Object))
 (local $c (ref null $java.lang.Object))
 (local $d (ref null $interfacejsbridge.InterfaceImpl))
 (local $this (ref null $interfacejsbridge.Main))
 (local.set $this (ref.cast (ref $interfacejsbridge.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:20:4
  (local.set $a (call $$create__@interfacejsbridge.InterfaceImpl ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:21:4
  (local.set $b (call $$create__@interfacejsbridge.InterfaceImpl ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:22:4
  (local.set $c (call $$create__@interfacejsbridge.InterfaceImpl ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:23:4
  (local.set $d (call $$create__@interfacejsbridge.InterfaceImpl ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:24:4
  (drop (call_ref $function.m_foo__int__int (ref.as_non_null (local.get $a))(i32.const 1)(struct.get $interfacejsbridge.MyJsInterface.vtable $m_foo__int__int (ref.cast (ref $interfacejsbridge.MyJsInterface.vtable) (call $get.itable.$interfacejsbridge.MyJsInterface (local.get $a))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:25:4
  (drop (call_ref $function.m_foo__int__int (ref.as_non_null (local.get $b))(i32.const 1)(struct.get $interfacejsbridge.MyInterface.vtable $m_foo__int__int (ref.cast (ref $interfacejsbridge.MyInterface.vtable) (call $get.itable.$interfacejsbridge.MyInterface (local.get $b))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:26:4
  (drop (call_ref $function.m_foo__int__int (ref.as_non_null (local.get $c))(i32.const 1)(struct.get $interfacejsbridge.SubInterface.vtable $m_foo__int__int (ref.cast (ref $interfacejsbridge.SubInterface.vtable) (call $get.itable.$interfacejsbridge.SubInterface (local.get $c))))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/Main.java:27:4
  (drop (call_ref $function.m_foo__int__int (ref.as_non_null (local.get $d))(i32.const 1)(struct.get $interfacejsbridge.InterfaceImpl.vtable $m_foo__int__int (struct.get $interfacejsbridge.InterfaceImpl $vtable(local.get $d)))))
 )
)
(elem declare func $m_test__void@interfacejsbridge.Main)

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

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

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

;;; Code for interfacejsbridge.InterfaceImpl [methods]

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

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

;;; int InterfaceImpl.foo(int a)
(func $m_foo__int__int@interfacejsbridge.InterfaceImpl
 (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/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:36:13
 (local $this (ref null $interfacejsbridge.InterfaceImpl))
 (local.set $this (ref.cast (ref $interfacejsbridge.InterfaceImpl) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:37:4
  (return (i32.const 0))
 )
)
(elem declare func $m_foo__int__int@interfacejsbridge.InterfaceImpl)

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

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

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

;;; Code for interfacejsbridge.SubInterface.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_interfacejsbridge_SubInterface_$LambdaAdaptor@interfacejsbridge.SubInterface.$LambdaAdaptor
 (param $this (ref null $interfacejsbridge.SubInterface.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:29:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfacejsbridge/readable-j2wasm.js/interfacejsbridge/InterfaceImpl.java:29:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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