diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java index 602c322a42b..5c9065633e1 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/initializer/ClassInitializerTranslator.java @@ -59,9 +59,9 @@ public final class ClassInitializerTranslator extends AbstractInitializerTransla @NotNull protected JsFunction generateInitializerFunction() { //TODO: it's inconsistent that we scope for class and function for constructor, currently have problems implementing better way - ConstructorDescriptor primaryConstructor = getConstructor(); + ConstructorDescriptor primaryConstructor = getConstructor(bindingContext(), classDeclaration); JsFunction result = context().getFunctionObject(primaryConstructor); - //NOTE: while we doTranslate constructor parameters we also add property initializer statements + //NOTE: while we translate constructor parameters we also add property initializer statements // for properties declared as constructor parameters setParameters(result, translatePrimaryConstructorParameters()); mayBeAddCallToSuperMethod(); @@ -69,13 +69,6 @@ public final class ClassInitializerTranslator extends AbstractInitializerTransla return result; } - private ConstructorDescriptor getConstructor() { - ConstructorDescriptor primaryConstructor = - getClassDescriptor(context().bindingContext(), classDeclaration).getUnsubstitutedPrimaryConstructor(); - assert primaryConstructor != null : "Traits do not have initialize methods."; - return primaryConstructor; - } - @NotNull private JsBlock generateInitializerMethodBody() { initializerStatements.addAll(translateClassInitializers(classDeclaration)); diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java b/js/js.translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java index a9e2d0643c3..e9e895f4679 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/utils/BindingUtils.java @@ -346,4 +346,12 @@ public final class BindingUtils { assert resolvedCall != null; return resolvedCall; } + + public static ConstructorDescriptor getConstructor(BindingContext bindingContext, + @NotNull JetClassOrObject declaration) { + ConstructorDescriptor primaryConstructor = + getClassDescriptor(bindingContext, declaration).getUnsubstitutedPrimaryConstructor(); + assert primaryConstructor != null : "Traits do not have initialize methods."; + return primaryConstructor; + } }