与 JVM 相比,JS 中 KProperty1<T, R> 的不同语义

Different semantics of KProperty1<T, R> in JS compared to JVM

看起来 KProperty1<T, R> 在 JVM 和 JS 中有不同的语义,例如虽然此测试适用于 JVM:

data class Data(val name: String)
class Test {
    @Test fun propertiesMustBeEqual() {
        assertEquals(Data::name, Data::name)
    }
}

它在 Javascript 中失败并显示以下消息:

1) test
       Test
         propertiesMustBeEqual:
     AssertionError: Expected <function ($receiver) {
      return $receiver.name;
    }>, actual <function ($receiver) {
      return $receiver.name;
    }>

有什么解决办法吗?

未绑定 属性 对相同 属性 的引用在所有平台上应该是平等的。但是在 JS 中它们不相等的情况是一个错误,被跟踪为 https://youtrack.jetbrains.com/issue/KT-15101