KT-10785 Ensure that access to private properties from inside memeber functions of objects is performed via 'this' rather that by FQN.
This commit is contained in:
@@ -102,6 +102,10 @@ public final class PropertyAccessTest extends SingleFileTranslationTest {
|
||||
checkFooBoxIsOk();
|
||||
}
|
||||
|
||||
public void testPrivatePropertyAccessFromMethod() throws Exception {
|
||||
checkFooBoxIsOk();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
protected List<String> additionalJsFiles(@NotNull EcmaVersion ecmaVersion) {
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package foo
|
||||
|
||||
object A {
|
||||
private val foo = 23
|
||||
|
||||
fun bar(): Int {
|
||||
// Erase object so that we ensure that access to 'foo' property is performed via 'this'
|
||||
// It's no crucial from runtime standpoind, but JS code looks more concise and natural this way.
|
||||
erase()
|
||||
return foo
|
||||
}
|
||||
|
||||
fun erase() {
|
||||
js("_.foo.A = null")
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var result = A.bar()
|
||||
if (result != 23) return "failed: ${result}"
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user