[Wasm] Fix parsing D8 CLI arguments in kotlin.test
`@JsFun("code")` is now executed inside a JS function which brings its
`arguments` into the scope shadowing D8's CLI `arguments`.
Accessing arguments through `globalThis` fixes the problem.
Merge-request: KT-MR-8630
Merged-by: Svyatoslav Kuzmich <svyatoslav.kuzmich@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
bc612fa1c6
commit
81072ac9b4
@@ -9,7 +9,8 @@ import kotlin.test.FrameworkAdapter
|
||||
import kotlin.math.abs
|
||||
import kotlin.js.*
|
||||
|
||||
@JsFun("() => (typeof arguments !== 'undefined' && typeof arguments.join !== 'undefined') ? arguments.join(' ') : '' ")
|
||||
// Using 'globalThis.arguments' because 'arguments' can refer to current JS function arguments
|
||||
@JsFun("() => globalThis.arguments?.join?.(' ') ?? ''")
|
||||
private external fun d8Arguments(): String
|
||||
@JsFun("() => (typeof process != 'undefined' && typeof process.argv != 'undefined') ? process.argv.slice(2).join(' ') : ''")
|
||||
private external fun nodeArguments(): String
|
||||
|
||||
+7
-1
@@ -32,7 +32,13 @@ tasks.named<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask>("kotli
|
||||
|
||||
kotlin {
|
||||
wasm {
|
||||
<JsEngine>()
|
||||
<JsEngine> {
|
||||
testTask {
|
||||
filter.apply {
|
||||
excludeTest("WasmTest", "testShouldBeExcluded")
|
||||
}
|
||||
}
|
||||
}
|
||||
<ApplyBinaryen>
|
||||
}
|
||||
|
||||
|
||||
+5
@@ -27,4 +27,9 @@ class WasmTest {
|
||||
@Test
|
||||
fun test6() = assertEquals(foo(), 3)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testShouldBeExcluded() {
|
||||
error("This test should be excluded")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user