fix "enclosingThis" bug
This commit is contained in:
@@ -14,7 +14,6 @@ import org.jetbrains.k2js.translate.general.AbstractTranslator;
|
||||
import org.jetbrains.k2js.translate.intrinsic.FunctionIntrinsic;
|
||||
import org.jetbrains.k2js.translate.utils.TranslationUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -116,12 +115,12 @@ public final class CallTranslator extends AbstractTranslator {
|
||||
@NotNull
|
||||
private JsExpression calleeReference() {
|
||||
//TODO: refactor
|
||||
//TODO: write tests on this cases
|
||||
if (descriptor instanceof VariableAsFunctionDescriptor) {
|
||||
VariableDescriptor variableDescriptor = ((VariableAsFunctionDescriptor) descriptor).getVariableDescriptor();
|
||||
if (variableDescriptor instanceof PropertyDescriptor) {
|
||||
PropertyGetterDescriptor getter = ((PropertyDescriptor) variableDescriptor).getGetter();
|
||||
assert getter != null;
|
||||
return (new CallTranslator(null, new ArrayList<JsExpression>(), getter, context())).translate();
|
||||
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) variableDescriptor;
|
||||
return PropertyAccessTranslator.translateAsPropertyGetterCall(propertyDescriptor, context());
|
||||
}
|
||||
}
|
||||
if (context().isDeclared(descriptor)) {
|
||||
|
||||
@@ -35,6 +35,14 @@ public final class PropertyAccessTranslator extends AccessTranslator {
|
||||
.translateAsGet();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static JsExpression translateAsPropertyGetterCall(@NotNull PropertyDescriptor descriptor,
|
||||
@NotNull TranslationContext context) {
|
||||
return (new PropertyAccessTranslator(descriptor, context))
|
||||
.translateAsGet();
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
public static PropertyAccessTranslator newInstance(@NotNull JetQualifiedExpression expression,
|
||||
@NotNull TranslationContext context) {
|
||||
@@ -115,6 +123,13 @@ public final class PropertyAccessTranslator extends AccessTranslator {
|
||||
this.propertyDescriptor = getPropertyDescriptor(getNotNullSelector(qualifiedExpression));
|
||||
}
|
||||
|
||||
private PropertyAccessTranslator(@NotNull PropertyDescriptor descriptor,
|
||||
@NotNull TranslationContext context) {
|
||||
super(context);
|
||||
this.qualifier = null;
|
||||
this.propertyDescriptor = descriptor;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public JsExpression translateAsGet() {
|
||||
|
||||
Reference in New Issue
Block a user