JS backend: remove all usages TranslationContext.isEcma5()
This commit is contained in:
@@ -58,10 +58,6 @@ public class TranslationContext {
|
|||||||
|
|
||||||
private final HashMap<JsExpression, TemporaryConstVariable> expressionToTempConstVariableCache = new HashMap<JsExpression, TemporaryConstVariable>();
|
private final HashMap<JsExpression, TemporaryConstVariable> expressionToTempConstVariableCache = new HashMap<JsExpression, TemporaryConstVariable>();
|
||||||
|
|
||||||
public boolean isEcma5() {
|
|
||||||
return staticContext.isEcma5();
|
|
||||||
}
|
|
||||||
|
|
||||||
private TranslationContext(
|
private TranslationContext(
|
||||||
@NotNull StaticContext staticContext,
|
@NotNull StaticContext staticContext,
|
||||||
@NotNull DynamicContext dynamicContext,
|
@NotNull DynamicContext dynamicContext,
|
||||||
|
|||||||
@@ -173,12 +173,7 @@ public final class ClassTranslator extends AbstractTranslator {
|
|||||||
|
|
||||||
if (!isTrait()) {
|
if (!isTrait()) {
|
||||||
JsFunction initializer = new ClassInitializerTranslator(classDeclaration, declarationContext).generateInitializeMethod();
|
JsFunction initializer = new ClassInitializerTranslator(classDeclaration, declarationContext).generateInitializeMethod();
|
||||||
if (context().isEcma5()) {
|
invocationArguments.add(initializer.getBody().getStatements().isEmpty() ? JsLiteral.NULL : initializer);
|
||||||
invocationArguments.add(initializer.getBody().getStatements().isEmpty() ? JsLiteral.NULL : initializer);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
properties.add(new JsPropertyInitializer(Namer.initializeMethodReference(), initializer));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
translatePropertiesAsConstructorParameters(declarationContext, properties);
|
translatePropertiesAsConstructorParameters(declarationContext, properties);
|
||||||
@@ -227,9 +222,7 @@ public final class ClassTranslator extends AbstractTranslator {
|
|||||||
private void addSuperclassReferences(@NotNull JsInvocation jsClassDeclaration) {
|
private void addSuperclassReferences(@NotNull JsInvocation jsClassDeclaration) {
|
||||||
List<JsExpression> superClassReferences = getSupertypesNameReferences();
|
List<JsExpression> superClassReferences = getSupertypesNameReferences();
|
||||||
if (superClassReferences.isEmpty()) {
|
if (superClassReferences.isEmpty()) {
|
||||||
if (!isTrait() || context().isEcma5()) {
|
jsClassDeclaration.getArguments().add(JsLiteral.NULL);
|
||||||
jsClassDeclaration.getArguments().add(JsLiteral.NULL);
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-12
@@ -72,24 +72,16 @@ public final class NamespaceDeclarationTranslator extends AbstractTranslator {
|
|||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
JsVars vars = new JsVars(true);
|
|
||||||
List<JsStatement> result;
|
|
||||||
if (context().isEcma5()) {
|
|
||||||
result = Collections.<JsStatement>singletonList(vars);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
result = new ArrayList<JsStatement>();
|
|
||||||
result.add(vars);
|
|
||||||
}
|
|
||||||
|
|
||||||
context().classDeclarationTranslator().generateDeclarations();
|
context().classDeclarationTranslator().generateDeclarations();
|
||||||
for (NamespaceTranslator translator : descriptorToTranslator.values()) {
|
for (NamespaceTranslator translator : descriptorToTranslator.values()) {
|
||||||
translator.add(descriptorToDefineInvocation, result);
|
translator.add(descriptorToDefineInvocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JsVars vars = new JsVars(true);
|
||||||
vars.addIfHasInitializer(context().classDeclarationTranslator().getDeclaration());
|
vars.addIfHasInitializer(context().classDeclarationTranslator().getDeclaration());
|
||||||
vars.addIfHasInitializer(getRootPackageDeclaration(descriptorToDefineInvocation.get(rootNamespaceDescriptor)));
|
vars.addIfHasInitializer(getRootPackageDeclaration(descriptorToDefineInvocation.get(rootNamespaceDescriptor)));
|
||||||
return result;
|
|
||||||
|
return Collections.<JsStatement>singletonList(vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
+1
-7
@@ -26,7 +26,6 @@ import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.k2js.translate.LabelGenerator;
|
import org.jetbrains.k2js.translate.LabelGenerator;
|
||||||
import org.jetbrains.k2js.translate.context.Namer;
|
|
||||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
import org.jetbrains.k2js.translate.context.TranslationContext;
|
||||||
import org.jetbrains.k2js.translate.general.AbstractTranslator;
|
import org.jetbrains.k2js.translate.general.AbstractTranslator;
|
||||||
import org.jetbrains.k2js.translate.general.Translation;
|
import org.jetbrains.k2js.translate.general.Translation;
|
||||||
@@ -98,18 +97,13 @@ final class NamespaceTranslator extends AbstractTranslator {
|
|||||||
return place;
|
return place;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void add(@NotNull Map<NamespaceDescriptor, DefineInvocation> descriptorToDefineInvocation,
|
public void add(@NotNull Map<NamespaceDescriptor, DefineInvocation> descriptorToDefineInvocation) {
|
||||||
@NotNull List<JsStatement> initializers) {
|
|
||||||
JsExpression initializer;
|
JsExpression initializer;
|
||||||
if (visitor.initializerStatements.isEmpty()) {
|
if (visitor.initializerStatements.isEmpty()) {
|
||||||
initializer = null;
|
initializer = null;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
initializer = visitor.initializer;
|
initializer = visitor.initializer;
|
||||||
if (!context().isEcma5()) {
|
|
||||||
initializers.add(new JsInvocation(Namer.getFunctionCallRef(initializer),
|
|
||||||
context().getQualifiedReference(descriptor)).makeStmt());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineInvocation defineInvocation = descriptorToDefineInvocation.get(descriptor);
|
DefineInvocation defineInvocation = descriptorToDefineInvocation.get(descriptor);
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ import org.jetbrains.k2js.translate.utils.TranslationUtils;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.jetbrains.k2js.translate.reference.CallParametersResolver.resolveCallParameters;
|
import static org.jetbrains.k2js.translate.reference.CallParametersResolver.resolveCallParameters;
|
||||||
import static org.jetbrains.k2js.translate.utils.BindingUtils.isObjectDeclaration;
|
|
||||||
import static org.jetbrains.k2js.translate.utils.JsAstUtils.assignment;
|
import static org.jetbrains.k2js.translate.utils.JsAstUtils.assignment;
|
||||||
import static org.jetbrains.k2js.translate.utils.JsAstUtils.setQualifier;
|
import static org.jetbrains.k2js.translate.utils.JsAstUtils.setQualifier;
|
||||||
import static org.jetbrains.k2js.translate.utils.JsDescriptorUtils.isConstructorDescriptor;
|
import static org.jetbrains.k2js.translate.utils.JsDescriptorUtils.isConstructorDescriptor;
|
||||||
@@ -206,13 +205,7 @@ public final class CallTranslator extends AbstractTranslator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isDirectPropertyAccess() {
|
private boolean isDirectPropertyAccess() {
|
||||||
return descriptor instanceof PropertyAccessorDescriptor &&
|
return descriptor instanceof PropertyAccessorDescriptor;
|
||||||
(context().isEcma5() || isObjectAccessor((PropertyAccessorDescriptor) descriptor));
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isObjectAccessor(@NotNull PropertyAccessorDescriptor propertyAccessorDescriptor) {
|
|
||||||
PropertyDescriptor correspondingProperty = propertyAccessorDescriptor.getCorrespondingProperty();
|
|
||||||
return isObjectDeclaration(correspondingProperty);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
Reference in New Issue
Block a user