[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.math.abs
|
||||||
import kotlin.js.*
|
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
|
private external fun d8Arguments(): String
|
||||||
@JsFun("() => (typeof process != 'undefined' && typeof process.argv != 'undefined') ? process.argv.slice(2).join(' ') : ''")
|
@JsFun("() => (typeof process != 'undefined' && typeof process.argv != 'undefined') ? process.argv.slice(2).join(' ') : ''")
|
||||||
private external fun nodeArguments(): String
|
private external fun nodeArguments(): String
|
||||||
|
|||||||
+7
-1
@@ -32,7 +32,13 @@ tasks.named<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask>("kotli
|
|||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
wasm {
|
wasm {
|
||||||
<JsEngine>()
|
<JsEngine> {
|
||||||
|
testTask {
|
||||||
|
filter.apply {
|
||||||
|
excludeTest("WasmTest", "testShouldBeExcluded")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
<ApplyBinaryen>
|
<ApplyBinaryen>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
@@ -27,4 +27,9 @@ class WasmTest {
|
|||||||
@Test
|
@Test
|
||||||
fun test6() = assertEquals(foo(), 3)
|
fun test6() = assertEquals(foo(), 3)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testShouldBeExcluded() {
|
||||||
|
error("This test should be excluded")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user