JS backend: Remove Object.defineProperty for property initialize
This commit is contained in:
@@ -43,12 +43,7 @@ public final class InitializerUtils {
|
|||||||
public static JsStatement generateInitializerForProperty(@NotNull TranslationContext context,
|
public static JsStatement generateInitializerForProperty(@NotNull TranslationContext context,
|
||||||
@NotNull PropertyDescriptor descriptor,
|
@NotNull PropertyDescriptor descriptor,
|
||||||
@NotNull JsExpression value) {
|
@NotNull JsExpression value) {
|
||||||
if (context.isEcma5()) {
|
return assignmentToBackingField(context, descriptor, value).makeStmt();
|
||||||
return JsAstUtils.definePropertyDataDescriptor(descriptor, value, context).makeStmt();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return assignmentToBackingField(context, descriptor, value).makeStmt();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.Modality;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.psi.JetElement;
|
import org.jetbrains.jet.lang.psi.JetElement;
|
||||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
import org.jetbrains.k2js.translate.context.TranslationContext;
|
||||||
|
|
||||||
@@ -222,14 +220,6 @@ public final class JsAstUtils {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JsInvocation definePropertyDataDescriptor(@NotNull PropertyDescriptor descriptor,
|
|
||||||
@NotNull JsExpression value,
|
|
||||||
@NotNull TranslationContext context) {
|
|
||||||
return defineProperty(context.getNameForDescriptor(descriptor).getIdent(), createPropertyDataDescriptor(descriptor, value),
|
|
||||||
context);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static JsInvocation defineProperty(
|
public static JsInvocation defineProperty(
|
||||||
@NotNull String name,
|
@NotNull String name,
|
||||||
@@ -272,11 +262,6 @@ public final class JsAstUtils {
|
|||||||
return dataDescriptor;
|
return dataDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JsObjectLiteral createPropertyDataDescriptor(@NotNull PropertyDescriptor descriptor, @NotNull JsExpression value) {
|
|
||||||
return createPropertyDataDescriptor(descriptor, descriptor.isVar() || descriptor.getModality() == Modality.OPEN, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static JsObjectLiteral createPropertyDataDescriptor(
|
private static JsObjectLiteral createPropertyDataDescriptor(
|
||||||
@NotNull DeclarationDescriptor descriptor,
|
@NotNull DeclarationDescriptor descriptor,
|
||||||
|
|||||||
Reference in New Issue
Block a user