JS backend: Fix override val property in ecma5.

This commit is contained in:
Erokhin Stanislav
2013-08-09 17:41:45 +04:00
parent c9215ed8a5
commit 48cd8f4df4
3 changed files with 21 additions and 1 deletions
@@ -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
}