JS backend: Fix override val property in ecma5.
This commit is contained in:
@@ -32,6 +32,10 @@ public final class ClassInheritanceTest extends SingleFileTranslationTest {
|
||||
fooBoxTest();
|
||||
}
|
||||
|
||||
public void testValOverride() throws Exception {
|
||||
fooBoxTest();
|
||||
}
|
||||
|
||||
public void testInitializationOrder() throws Exception {
|
||||
fooBoxTest();
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.Modality;
|
||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
||||
|
||||
@@ -261,7 +262,7 @@ public final class JsAstUtils {
|
||||
@NotNull
|
||||
public static JsObjectLiteral createPropertyDataDescriptor(@NotNull PropertyDescriptor descriptor,
|
||||
@NotNull JsExpression value) {
|
||||
return createPropertyDataDescriptor(descriptor.isVar(), descriptor, value);
|
||||
return createPropertyDataDescriptor(descriptor.isVar() || descriptor.getModality() == Modality.OPEN, descriptor, value);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package foo
|
||||
|
||||
open class C() {
|
||||
open val a = 1
|
||||
}
|
||||
|
||||
class D() : C() {
|
||||
override val a = 2
|
||||
}
|
||||
|
||||
fun box(): Boolean {
|
||||
val d : C = D()
|
||||
if(d.a != 2) return false
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user