Привет. Нашёл багу в компиляторе Kotlin-JS. Попыта...
# russian
d
Привет. Нашёл багу в компиляторе Kotlin-JS. Попытался максимально просто её воспроизвести и описать: https://github.com/avdim/kotlin-js-npe-bug. Буду рад ответить на любые вопросы. И готов поучавствовать в починке.
@Svyatoslav Kuzmich [JB] А кто занимается компилятором JS ?
Может мне надо багу в YouTrack поставить?
a
Разумеется в youtrack. Туда в первую очередь
Там должно быть. Obj?.myVal
В том виде, что есть, оно и должно ошибку кидать, разве что не такую
d
Получается поведение разное на JS и JVM.
На JVM при этом всё хорошо
А можно кстате как нибудь в версии 1.3.70-eap попробовать новый js IR компилятор ?
i
Через
freeCompilerArgs
Copy code
compileKotlinJs.kotlinOptions.freeCompilerArgs += ["-Xir-produce-js", "-Xgenerate-dts"]
где
compileKotlinJs
таска компиляции типа
Kotlin2JsCompile
👍 1
s
Спасибо за репорт! В новом IR компиляторе уже исправлено (не сломано).
🎉 1
d
Супер! Спасибо за помощь. Я проверил что на новом IR компиляторе баг починился.
@Ilya Goncharov [JB] @Svyatoslav Kuzmich [JB] Подключил IR в другой ветке и поправил свой пример: https://github.com/avdim/kotlin-js-npe-bug/tree/fixed_experimental_ir_compiler Только мне не нравится что пришлось сделать
Copy code
expect annotation class CommonJsExport()
и
Copy code
actual typealias CommonJsExport = JsExport
Т.к. JsExport не доступен в common sourceSet-е Но жить с этим можно.
i
d
👍 1
Может вынести JsExport в common stdlib, так же как и JsName?
s
Хорошая идея, думаю стоит вынести
d
Мне завести на это Issue в YouTrack ?
s
Если хотите следить за статусом, можно завести
d
@Svyatoslav Kuzmich [JB] Завёл задачку: https://youtrack.jetbrains.com/issue/KT-35966
👍 1
@Ilya Goncharov [JB] @Svyatoslav Kuzmich [JB] Спасибо за помощь и оперативность! Приятно иметь дело с разработчиками из JetBrains!