From 5c731c6c04c987f122b21ee4c2d9471bbce40b75 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Wed, 18 Nov 2020 19:26:19 +0300 Subject: [PATCH] [JS IR] Add test in external js fun with default args ^KT-40090 fixed --- .../codegen/box/external/jsWithDefaultArg.kt | 25 +++++++++++++++++++ .../IrJsCodegenBoxES6TestGenerated.java | 5 ++++ .../IrJsCodegenBoxTestGenerated.java | 5 ++++ 3 files changed, 35 insertions(+) create mode 100644 compiler/testData/codegen/box/external/jsWithDefaultArg.kt diff --git a/compiler/testData/codegen/box/external/jsWithDefaultArg.kt b/compiler/testData/codegen/box/external/jsWithDefaultArg.kt new file mode 100644 index 00000000000..e36cd0297ef --- /dev/null +++ b/compiler/testData/codegen/box/external/jsWithDefaultArg.kt @@ -0,0 +1,25 @@ +// TARGET_BACKEND: JS_IR +// CALL_MAIN + +external fun create( + p0: String = definedExternally, + p1: String = definedExternally, + p2: String = definedExternally, + p3: String = definedExternally, + p4: String = definedExternally, +) : Array + +fun main() { + js("global.create = function() {return arguments}") +} + +fun box(): String { + val zeroArgs = create() + if (zeroArgs.size != 0) return "fail: $zeroArgs arguments instead 0" + + val p2 = "p2" + val threeArgs = create(p2 = p2) + if (threeArgs.size != 3 || threeArgs[2] != p2) return "fail: $threeArgs arguments instead 3" + + return "OK" +} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index ded22676945..db5ded7a451 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -10077,6 +10077,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes public void testAllFilesPresentInExternal() throws Exception { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/external"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true); } + + @TestMetadata("jsWithDefaultArg.kt") + public void testJsWithDefaultArg() throws Exception { + runTest("compiler/testData/codegen/box/external/jsWithDefaultArg.kt"); + } } @TestMetadata("compiler/testData/codegen/box/fakeOverride") diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index f4943aebaf4..65272c1f44b 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -10077,6 +10077,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { public void testAllFilesPresentInExternal() throws Exception { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/external"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); } + + @TestMetadata("jsWithDefaultArg.kt") + public void testJsWithDefaultArg() throws Exception { + runTest("compiler/testData/codegen/box/external/jsWithDefaultArg.kt"); + } } @TestMetadata("compiler/testData/codegen/box/fakeOverride")