JS backend: remove all usages TranslationContext.isEcma5()

This commit is contained in:
Erokhin Stanislav
2013-09-06 09:42:03 +04:00
parent 79904a9b96
commit eed1a6506e
5 changed files with 8 additions and 40 deletions
@@ -58,10 +58,6 @@ public class TranslationContext {
private final HashMap<JsExpression, TemporaryConstVariable> expressionToTempConstVariableCache = new HashMap<JsExpression, TemporaryConstVariable>();
public boolean isEcma5() {
return staticContext.isEcma5();
}
private TranslationContext(
@NotNull StaticContext staticContext,
@NotNull DynamicContext dynamicContext,
@@ -173,12 +173,7 @@ public final class ClassTranslator extends AbstractTranslator {
if (!isTrait()) {
JsFunction initializer = new ClassInitializerTranslator(classDeclaration, declarationContext).generateInitializeMethod();
if (context().isEcma5()) {
invocationArguments.add(initializer.getBody().getStatements().isEmpty() ? JsLiteral.NULL : initializer);
}
else {
properties.add(new JsPropertyInitializer(Namer.initializeMethodReference(), initializer));
}
invocationArguments.add(initializer.getBody().getStatements().isEmpty() ? JsLiteral.NULL : initializer);
}
translatePropertiesAsConstructorParameters(declarationContext, properties);
@@ -227,9 +222,7 @@ public final class ClassTranslator extends AbstractTranslator {
private void addSuperclassReferences(@NotNull JsInvocation jsClassDeclaration) {
List<JsExpression> superClassReferences = getSupertypesNameReferences();
if (superClassReferences.isEmpty()) {
if (!isTrait() || context().isEcma5()) {
jsClassDeclaration.getArguments().add(JsLiteral.NULL);
}
jsClassDeclaration.getArguments().add(JsLiteral.NULL);
return;
}
@@ -72,24 +72,16 @@ public final class NamespaceDeclarationTranslator extends AbstractTranslator {
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();
for (NamespaceTranslator translator : descriptorToTranslator.values()) {
translator.add(descriptorToDefineInvocation, result);
translator.add(descriptorToDefineInvocation);
}
JsVars vars = new JsVars(true);
vars.addIfHasInitializer(context().classDeclarationTranslator().getDeclaration());
vars.addIfHasInitializer(getRootPackageDeclaration(descriptorToDefineInvocation.get(rootNamespaceDescriptor)));
return result;
return Collections.<JsStatement>singletonList(vars);
}
@NotNull
@@ -26,7 +26,6 @@ import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
import org.jetbrains.jet.lang.psi.*;
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.general.AbstractTranslator;
import org.jetbrains.k2js.translate.general.Translation;
@@ -98,18 +97,13 @@ final class NamespaceTranslator extends AbstractTranslator {
return place;
}
public void add(@NotNull Map<NamespaceDescriptor, DefineInvocation> descriptorToDefineInvocation,
@NotNull List<JsStatement> initializers) {
public void add(@NotNull Map<NamespaceDescriptor, DefineInvocation> descriptorToDefineInvocation) {
JsExpression initializer;
if (visitor.initializerStatements.isEmpty()) {
initializer = null;
}
else {
initializer = visitor.initializer;
if (!context().isEcma5()) {
initializers.add(new JsInvocation(Namer.getFunctionCallRef(initializer),
context().getQualifiedReference(descriptor)).makeStmt());
}
}
DefineInvocation defineInvocation = descriptorToDefineInvocation.get(descriptor);
@@ -36,7 +36,6 @@ import org.jetbrains.k2js.translate.utils.TranslationUtils;
import java.util.List;
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.setQualifier;
import static org.jetbrains.k2js.translate.utils.JsDescriptorUtils.isConstructorDescriptor;
@@ -206,13 +205,7 @@ public final class CallTranslator extends AbstractTranslator {
}
private boolean isDirectPropertyAccess() {
return descriptor instanceof PropertyAccessorDescriptor &&
(context().isEcma5() || isObjectAccessor((PropertyAccessorDescriptor) descriptor));
}
private boolean isObjectAccessor(@NotNull PropertyAccessorDescriptor propertyAccessorDescriptor) {
PropertyDescriptor correspondingProperty = propertyAccessorDescriptor.getCorrespondingProperty();
return isObjectDeclaration(correspondingProperty);
return descriptor instanceof PropertyAccessorDescriptor;
}
@NotNull