// Generated from "staticjsmembers/StaticJsMembers.java"
@file:Suppress(
 "ALWAYS_NULL",
 "PARAMETER_NAME_CHANGED_ON_OVERRIDE",
 "SENSELESS_COMPARISON",
 "UNCHECKED_CAST",
 "UNNECESSARY_LATEINIT",
 "UNNECESSARY_NOT_NULL_ASSERTION",
 "UNREACHABLE_CODE",
 "UNUSED_ANONYMOUS_PARAMETER",
 "UNUSED_PARAMETER",
 "UNUSED_VARIABLE",
 "USELESS_CAST",
 "VARIABLE_IN_SINGLETON_WITHOUT_THREAD_LOCAL",
 "VARIABLE_WITH_REDUNDANT_INITIALIZER",
 "REDUNDANT_ELSE_IN_WHEN")

package staticjsmembers

import javaemul.lang.*
import jsinterop.annotations.JsMethod
import jsinterop.annotations.JsPackage
import jsinterop.annotations.JsProperty
import jsinterop.annotations.JsType
import kotlin.Boolean
import kotlin.Double
import kotlin.Int
import kotlin.Suppress
import kotlin.jvm.JvmField
import kotlin.jvm.JvmStatic

open class StaticJsMembers {
 open fun test() {
  StaticJsMembers.f1(1)
  StaticJsMembers.f1(1)
  StaticJsMembers.f2(1)
  StaticJsMembers.f2(1)
  StaticJsMembers.f3(1.1)
  StaticJsMembers.f3(1.1)
  StaticJsMembers.f4(1.1)
  StaticJsMembers.f4(1.1)
  StaticJsMembers.f5()
  StaticJsMembers.f5()
  StaticJsMembers.max(1, 2)
  StaticJsMembers.max(1, 2)
  StaticJsMembers.max(1, 2, 3)
  StaticJsMembers.max(1, 2, 3)
  StaticJsMembers.max(1.0, 2.0)
  StaticJsMembers.max(1.0, 2.0)
  var n: Int = StaticJsMembers.field1
  n = StaticJsMembers.field2
  n = Native.field3
  n = Native.field4
  n = Native.field5
  n = Native.field6
  Native()
  Extern()
 }

 companion object {
  @JvmField
  @JsProperty(name = "field")
  var field1: Int = 0

  @JvmField
  @JsProperty
  var field2: Int = 0

  @JvmStatic
  @JsMethod(name = "fun")
  fun f1(a: Int) {}

  @JvmStatic
  @JsMethod
  fun f2(a: Int) {}

  @JvmStatic
  @JsMethod(name = "Math.floor", namespace = JsPackage.GLOBAL)
  external fun f3(a: Double)

  @JvmStatic
  @JsMethod(name = "isFinite", namespace = JsPackage.GLOBAL)
  external fun f4(a: Double): Boolean

  @JvmStatic
  @JsMethod(name = "baz", namespace = "foo.Bar")
  external fun f5(): Boolean

  @JvmStatic
  @JsMethod(name = "baz", namespace = "foo.Baz")
  external fun f6(): Boolean

  @JvmStatic
  @JsMethod(name = "Math.max", namespace = JsPackage.GLOBAL)
  external fun max(a: Int, b: Int): Int

  @JvmStatic
  @JsMethod(name = "Math.max", namespace = JsPackage.GLOBAL)
  external fun max(a: Int, b: Int, c: Int): Int

  @JvmStatic
  @JsMethod(name = "Math.max", namespace = JsPackage.GLOBAL)
  external fun max(a: Double, b: Double): Double
 }

 @JsType(name = "Object", namespace = JsPackage.GLOBAL, isNative = true)
 open class Native {
  companion object {
   @JvmField
   @JsProperty(name = "Math.PI", namespace = JsPackage.GLOBAL)
   var field3: Int = 0

   @JvmField
   @JsProperty(name = "top", namespace = JsPackage.GLOBAL)
   var field4: Int = 0

   @JvmField
   @JsProperty(name = "field", namespace = "foo.Bar")
   var field5: Int = 0

   @JvmField
   @JsProperty(name = "window.top", namespace = JsPackage.GLOBAL)
   var field6: Int = 0
  }
 }

 @JsType(name = "window.Object", namespace = JsPackage.GLOBAL, isNative = true)
 open class Extern
}
