From 768289b913b954cfd1e32da35ac857fa1f3a8b37 Mon Sep 17 00:00:00 2001 From: Erokhin Stanislav Date: Fri, 11 Oct 2013 14:42:36 +0400 Subject: [PATCH] JS backend: fix class object in trait #KT-4062 Fixed --- .../k2js/test/semantics/ClassObjectTest.java | 4 ++++ .../testFiles/classObject/cases/inTrait.kt | 12 ++++++++++++ js/js.translator/testFiles/kotlin_lib_ecma5.js | 1 + 3 files changed, 17 insertions(+) create mode 100644 js/js.translator/testFiles/classObject/cases/inTrait.kt diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/ClassObjectTest.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/ClassObjectTest.java index 5f926523508..0e686c87c3b 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/semantics/ClassObjectTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/ClassObjectTest.java @@ -12,6 +12,10 @@ public final class ClassObjectTest extends SingleFileTranslationTest { checkFooBoxIsOk(); } + public void testInTrait() throws Exception { + checkFooBoxIsOk(); + } + public void testWithExtension() throws Exception { checkFooBoxIsOk(); } diff --git a/js/js.translator/testFiles/classObject/cases/inTrait.kt b/js/js.translator/testFiles/classObject/cases/inTrait.kt new file mode 100644 index 00000000000..d06eee93091 --- /dev/null +++ b/js/js.translator/testFiles/classObject/cases/inTrait.kt @@ -0,0 +1,12 @@ +package foo + +trait A { + class object + { + val OK: String = "OK" + } +} + +fun box(): String { + return A.OK +} \ No newline at end of file diff --git a/js/js.translator/testFiles/kotlin_lib_ecma5.js b/js/js.translator/testFiles/kotlin_lib_ecma5.js index 7990b897963..cda0378616a 100644 --- a/js/js.translator/testFiles/kotlin_lib_ecma5.js +++ b/js/js.translator/testFiles/kotlin_lib_ecma5.js @@ -233,6 +233,7 @@ var Kotlin = {}; obj.prototype = {}; Object.defineProperties(obj.prototype, obj.$metadata$.properties); copyProperties(obj.prototype, obj.$metadata$.functions); + Object.defineProperty(obj, "object", {get: class_object, configurable: true}); return obj; };