@Retention(value=RUNTIME)
@Target(value=CONSTRUCTOR)
@Documented
public @interface JsConstructor
Due to ES6 class semantics, for non-native JsTypes only one JsConstructor is allowed to exist in the type which becomes the 'primary constructor'. All other constructors in the type must delegate to it. Subclasses of a type with JsConstructor should follow the same restriction with the exception that the primary constructor is not required to be marked as JsConstructor but still need to delegate to super primary constructor.