[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>
diff --git a/libraries/kotlin.test/wasm/src/main/kotlin/kotlin/test/TeamcityAdapter.kt b/libraries/kotlin.test/wasm/src/main/kotlin/kotlin/test/TeamcityAdapter.kt
index 51d3938..09ced3e 100644
--- a/libraries/kotlin.test/wasm/src/main/kotlin/kotlin/test/TeamcityAdapter.kt
+++ b/libraries/kotlin.test/wasm/src/main/kotlin/kotlin/test/TeamcityAdapter.kt
@@ -9,7 +9,8 @@
 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
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-test/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-test/build.gradle.kts
index 5bb5f26..ddbd160 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-test/build.gradle.kts
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-test/build.gradle.kts
@@ -32,7 +32,13 @@
 
 kotlin {
     wasm {
-        <JsEngine>()
+        <JsEngine> {
+            testTask {
+                filter.apply {
+                    excludeTest("WasmTest", "testShouldBeExcluded")
+                }
+            }
+        }
         <ApplyBinaryen>
     }
 
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-test/src/wasmTest/kotlin/Test.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-test/src/wasmTest/kotlin/Test.kt
index 6c14125..8f96d41 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-test/src/wasmTest/kotlin/Test.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-test/src/wasmTest/kotlin/Test.kt
@@ -27,4 +27,9 @@
         @Test
         fun test6() = assertEquals(foo(), 3)
     }
+
+    @Test
+    fun testShouldBeExcluded() {
+        error("This test should be excluded")
+    }
 }
\ No newline at end of file