From b1d303b0271257b14ab119f271781553b78e0c45 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Thu, 11 Apr 2019 16:25:40 +0300 Subject: [PATCH] Reorganize stdlib-js sources specific to the current JS backend Move kotlin-stdlib-js project and the sources specific to the current backend to 'stdlib/js-v1' directory, but leave sources that can be shared with the new IR backend in the common 'stdlib/js' location with exception for 'stdlib/js/src/generated', which is used exclusively for current backend. This simplifies sourceset configuration when building stdlib with the new backend. --- compiler/ir/serialization.js/build.gradle.kts | 80 ++++++------------- .../kotlin/code/CodeConformanceTest.kt | 16 ++-- js/ReadMe.md | 4 +- .../jetbrains/kotlin/js/test/JsTestChecker.kt | 2 +- .../irRuntime => js-ir}/builtins/Arrays.kt | 0 .../{js/irRuntime => js-ir}/builtins/Char.kt | 0 .../{js/irRuntime => js-ir}/builtins/Enum.kt | 0 .../irRuntime => js-ir}/builtins/Library.kt | 0 .../builtins/Primitives.kt | 0 .../runtime}/DefaultConstructorMarker.kt | 0 .../{js/irRuntime => js-ir/runtime}/arrays.kt | 0 .../runtime}/charSequence.kt | 0 .../runtime}/collectionsHacks.kt | 0 .../irRuntime => js-ir/runtime}/compareTo.kt | 0 .../{js/irRuntime => js-ir/runtime}/core.kt | 0 .../runtime}/coroutineInternalJS.kt | 0 .../{js/irRuntime => js-ir/runtime}/hacks.kt | 0 .../runtime}/irTestsJvmAnnotations.kt | 0 .../runtime}/irTestsOptionalExpectation.kt | 0 .../runtime}/kotlinHacks.kt | 0 .../runtime}/kotlinJsHacks.kt | 0 .../runtime}/kotlinNativeHacks.kt | 0 .../{js/irRuntime => js-ir/runtime}/long.kt | 0 .../{js/irRuntime => js-ir/runtime}/longjs.kt | 0 .../{js/irRuntime => js-ir/runtime}/misc.kt | 0 .../runtime}/noPackageHacks.kt | 0 .../runtime}/numberConversion.kt | 0 .../irRuntime => js-ir/runtime}/rangeTo.kt | 0 .../{js/irRuntime => js-ir/runtime}/tests.kt | 0 .../runtime}/typeCheckUtils.kt | 6 +- .../smallRuntimeMissingDeclarations.kt | 0 .../src}/generated/_ArraysJs.kt | 0 .../src}/generated/_CollectionsJs.kt | 0 .../src}/generated/_ComparisonsJs.kt | 0 .../src}/generated/_StringsJs.kt | 0 .../src}/generated/_UArraysJs.kt | 0 .../kotlin}/coroutines_13/CoroutineImpl.kt | 0 .../src/kotlin}/coroutines_13/IntrinsicsJs.kt | 0 .../kotlin}/coroutines_13/coroutineAliases.kt | 0 libraries/stdlib/{js => js-v1}/.gitignore | 0 libraries/stdlib/js-v1/ReadMe.md | 9 +++ libraries/stdlib/{js => js-v1}/build.gradle | 18 +++-- .../stdlib/{js => js-v1}/runtime/Enum.kt | 0 .../stdlib/{js => js-v1}/runtime/hacks.kt | 0 .../stdlib/{js => js-v1}/src/js/arrayUtils.js | 0 .../src/js/callableReferenceUtils.js | 0 .../{js => js-v1}/src/js/conversions.js | 0 libraries/stdlib/{js => js-v1}/src/js/core.js | 0 libraries/stdlib/{js => js-v1}/src/js/long.js | 0 .../{js => js-v1}/src/js/markerFunctions.js | 0 libraries/stdlib/{js => js-v1}/src/js/misc.js | 0 .../stdlib/{js => js-v1}/src/js/polyfills.js | 0 libraries/stdlib/{js => js-v1}/src/js/rtti.js | 0 .../{js => js-v1}/src/kotlin/builtins.kt | 0 .../src/kotlin/collections/utils.kt | 0 .../src/kotlin/collectionsExternal.kt | 0 .../src/kotlin/coroutines/CoroutineImpl.kt | 0 .../coroutines/intrinsics/IntrinsicsJs.kt | 0 .../{js => js-v1}/src/kotlin/currentBeMisc.kt | 0 .../{js => js-v1}/src/kotlin/jsTypeOf.kt | 0 .../stdlib/{js => js-v1}/src/kotlin/kotlin.kt | 0 libraries/stdlib/{js => js-v1}/src/wrapper.js | 0 .../test/core/BuiltinCompanionJsTest.kt | 0 libraries/stdlib/{js => js-v1}/web/index.html | 0 libraries/stdlib/js/ReadMe.md | 10 +-- .../stdlib/js/irRuntime/PlatformRandom.kt | 28 ------- .../js/src/kotlin/reflect/primitives.kt | 2 +- .../src/generators/GenerateStandardLib.kt | 6 +- license/README.md | 4 +- settings.gradle | 2 +- 70 files changed, 72 insertions(+), 115 deletions(-) rename libraries/stdlib/{js/irRuntime => js-ir}/builtins/Arrays.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir}/builtins/Char.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir}/builtins/Enum.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir}/builtins/Library.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir}/builtins/Primitives.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/DefaultConstructorMarker.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/arrays.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/charSequence.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/collectionsHacks.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/compareTo.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/core.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/coroutineInternalJS.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/hacks.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/irTestsJvmAnnotations.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/irTestsOptionalExpectation.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/kotlinHacks.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/kotlinJsHacks.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/kotlinNativeHacks.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/long.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/longjs.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/misc.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/noPackageHacks.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/numberConversion.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/rangeTo.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/tests.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/runtime}/typeCheckUtils.kt (98%) rename libraries/stdlib/{js/irRuntime => js-ir/smallRuntime}/smallRuntimeMissingDeclarations.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/src}/generated/_ArraysJs.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/src}/generated/_CollectionsJs.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/src}/generated/_ComparisonsJs.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/src}/generated/_StringsJs.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/src}/generated/_UArraysJs.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/src/kotlin}/coroutines_13/CoroutineImpl.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/src/kotlin}/coroutines_13/IntrinsicsJs.kt (100%) rename libraries/stdlib/{js/irRuntime => js-ir/src/kotlin}/coroutines_13/coroutineAliases.kt (100%) rename libraries/stdlib/{js => js-v1}/.gitignore (100%) create mode 100644 libraries/stdlib/js-v1/ReadMe.md rename libraries/stdlib/{js => js-v1}/build.gradle (94%) rename libraries/stdlib/{js => js-v1}/runtime/Enum.kt (100%) rename libraries/stdlib/{js => js-v1}/runtime/hacks.kt (100%) rename libraries/stdlib/{js => js-v1}/src/js/arrayUtils.js (100%) rename libraries/stdlib/{js => js-v1}/src/js/callableReferenceUtils.js (100%) rename libraries/stdlib/{js => js-v1}/src/js/conversions.js (100%) rename libraries/stdlib/{js => js-v1}/src/js/core.js (100%) rename libraries/stdlib/{js => js-v1}/src/js/long.js (100%) rename libraries/stdlib/{js => js-v1}/src/js/markerFunctions.js (100%) rename libraries/stdlib/{js => js-v1}/src/js/misc.js (100%) rename libraries/stdlib/{js => js-v1}/src/js/polyfills.js (100%) rename libraries/stdlib/{js => js-v1}/src/js/rtti.js (100%) rename libraries/stdlib/{js => js-v1}/src/kotlin/builtins.kt (100%) rename libraries/stdlib/{js => js-v1}/src/kotlin/collections/utils.kt (100%) rename libraries/stdlib/{js => js-v1}/src/kotlin/collectionsExternal.kt (100%) rename libraries/stdlib/{js => js-v1}/src/kotlin/coroutines/CoroutineImpl.kt (100%) rename libraries/stdlib/{js => js-v1}/src/kotlin/coroutines/intrinsics/IntrinsicsJs.kt (100%) rename libraries/stdlib/{js => js-v1}/src/kotlin/currentBeMisc.kt (100%) rename libraries/stdlib/{js => js-v1}/src/kotlin/jsTypeOf.kt (100%) rename libraries/stdlib/{js => js-v1}/src/kotlin/kotlin.kt (100%) rename libraries/stdlib/{js => js-v1}/src/wrapper.js (100%) rename libraries/stdlib/{js => js-v1}/test/core/BuiltinCompanionJsTest.kt (100%) rename libraries/stdlib/{js => js-v1}/web/index.html (100%) delete mode 100644 libraries/stdlib/js/irRuntime/PlatformRandom.kt diff --git a/compiler/ir/serialization.js/build.gradle.kts b/compiler/ir/serialization.js/build.gradle.kts index 94252bed61e..20f298511a7 100644 --- a/compiler/ir/serialization.js/build.gradle.kts +++ b/compiler/ir/serialization.js/build.gradle.kts @@ -22,7 +22,7 @@ sourceSets { } val unimplementedNativeBuiltIns = - (file("$rootDir/core/builtins/native/kotlin/").list().toSet() - file("$rootDir/libraries/stdlib/js/irRuntime/builtins/").list()) + (file("$rootDir/core/builtins/native/kotlin/").list().toSet() - file("$rootDir/libraries/stdlib/js-ir/builtins/").list()) .map { "core/builtins/native/kotlin/$it" } // Required to compile native builtins with the rest of runtime @@ -35,74 +35,37 @@ val builtInsHeader = """@file:Suppress( ) """ -val fullRuntimeSources by task { +val fullRuntimeSources by task { + val sources = listOf( "core/builtins/src/kotlin/", "libraries/stdlib/common/src/", "libraries/stdlib/src/kotlin/", - "libraries/stdlib/js/src/kotlin/", - "libraries/stdlib/js/src/generated/", - "libraries/stdlib/js/irRuntime/", - "libraries/stdlib/js/runtime/", "libraries/stdlib/unsigned/", + "libraries/stdlib/js/src/", + "libraries/stdlib/js/runtime/", + "libraries/stdlib/js-ir/builtins/", + "libraries/stdlib/js-ir/src/", + "libraries/stdlib/js-ir/runtime/", // TODO get rid - move to test module "js/js.translator/testData/_commonFiles/" ) + unimplementedNativeBuiltIns val excluded = listOf( + // stdlib/js/src/generated is used exclusively for current `js-v1` backend. + "libraries/stdlib/js/src/generated/**", + "libraries/stdlib/common/src/kotlin/JvmAnnotationsH.kt", "libraries/stdlib/src/kotlin/annotations/Multiplatform.kt", "libraries/stdlib/common/src/kotlin/NativeAnnotationsH.kt", - - // TODO: Support Int.pow - "libraries/stdlib/js/src/kotlin/random/PlatformRandom.kt", - + // Fails with: EXPERIMENTAL_IS_NOT_ENABLED "libraries/stdlib/common/src/kotlin/annotations/Annotations.kt", - // Conflicts with libraries/stdlib/js/src/kotlin/annotations.kt - "libraries/stdlib/js/runtime/hacks.kt", - - // TODO: Reuse in IR BE - "libraries/stdlib/js/runtime/Enum.kt", - // JS-specific optimized version of emptyArray() already defined "core/builtins/src/kotlin/ArrayIntrinsics.kt", - // Unnecessary for now - "libraries/stdlib/js/src/kotlin/dom/**", - "libraries/stdlib/js/src/kotlin/browser/**", - - // TODO: fix compilation issues in arrayPlusCollection - // Replaced with irRuntime/kotlinHacks.kt - "libraries/stdlib/js/src/kotlin/kotlin.kt", - - "libraries/stdlib/js/src/kotlin/currentBeMisc.kt", - - // IR BE has its own generated sources - "libraries/stdlib/js/src/generated/**", - "libraries/stdlib/js/src/kotlin/collectionsExternal.kt", - - // Full version is defined in stdlib - // This file is useful for smaller subset of runtime sources - "libraries/stdlib/js/irRuntime/smallRuntimeMissingDeclarations.kt", - - // Mostly array-specific stuff - "libraries/stdlib/js/src/kotlin/builtins.kt", - - // coroutines - // TODO: merge coroutines_13 with JS BE coroutines - "libraries/stdlib/js/src/kotlin/coroutines/intrinsics/IntrinsicsJs.kt", - "libraries/stdlib/js/src/kotlin/coroutines/CoroutineImpl.kt", - - // Inlining of js fun doesn't update the variables inside - "libraries/stdlib/js/src/kotlin/jsTypeOf.kt", - "libraries/stdlib/js/src/kotlin/collections/utils.kt", - - // TODO: Remove stub - "libraries/stdlib/js/src/kotlin/builtins.kt", - // Expect declarations get thrown away and libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Assertions.kt doesn't compile "libraries/stdlib/common/src/kotlin/NativeAnnotationsH.kt" ) @@ -127,7 +90,7 @@ val fullRuntimeSources by task { } } -val reducedRuntimeSources by task { +val reducedRuntimeSources by task { dependsOn(fullRuntimeSources) from(fullRuntimeSources.outputs.files.singleFile) { @@ -151,8 +114,11 @@ val reducedRuntimeSources by task { "libraries/stdlib/common/src/kotlin/UMath.kt", "libraries/stdlib/common/src/kotlin/collections/**", "libraries/stdlib/common/src/kotlin/ioH.kt", - "libraries/stdlib/js/irRuntime/collectionsHacks.kt", - "libraries/stdlib/js/irRuntime/generated/**", + "libraries/stdlib/js-ir/runtime/collectionsHacks.kt", + "libraries/stdlib/js-ir/src/generated/**", + "libraries/stdlib/js/src/jquery/**", + "libraries/stdlib/js/src/org.w3c/**", + "libraries/stdlib/js/src/kotlin/char.kt", "libraries/stdlib/js/src/kotlin/collections.kt", "libraries/stdlib/js/src/kotlin/collections/**", "libraries/stdlib/js/src/kotlin/console.kt", @@ -171,13 +137,15 @@ val reducedRuntimeSources by task { "libraries/stdlib/src/kotlin/random/URandom.kt", "libraries/stdlib/src/kotlin/text/**", "libraries/stdlib/src/kotlin/util/KotlinVersion.kt", - "libraries/stdlib/src/kotlin/util/Tuples.kt" + "libraries/stdlib/src/kotlin/util/Tuples.kt", + "libraries/stdlib/js/src/kotlin/dom/**", + "libraries/stdlib/js/src/kotlin/browser/**" ) ) } - from("$rootDir/libraries/stdlib/js/irRuntime/smallRuntimeMissingDeclarations.kt") { - into("libraries/stdlib/js/irRuntime/") + from("$rootDir/libraries/stdlib/js-ir/smallRuntime") { + into("libraries/stdlib/js-ir/runtime/") } into("$buildDir/reducedRuntime/src") @@ -226,4 +194,4 @@ val generateKotlinTestKLib by task { ) } -testsJar {} \ No newline at end of file +testsJar {} diff --git a/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt b/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt index ed6dc30a055..0f56c345378 100644 --- a/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt @@ -34,8 +34,10 @@ class CodeConformanceTest : TestCase() { "js/js.translator/testData/node_modules", "libraries/kotlin.test/js/it/.gradle", "libraries/kotlin.test/js/it/node_modules", - "libraries/stdlib/js/.gradle", - "libraries/stdlib/js/build", + "libraries/stdlib/js-v1/.gradle", + "libraries/stdlib/js-v1/build", + "libraries/stdlib/js-ir/.gradle", + "libraries/stdlib/js-ir/build", "libraries/reflect/build", "libraries/reflect/api/src/java9/java/kotlin/reflect/jvm/internal/impl", "libraries/tools/binary-compatibility-validator/src/main/kotlin/org.jetbrains.kotlin.tools", @@ -66,12 +68,14 @@ class CodeConformanceTest : TestCase() { "js/js.tests/.gradle", "js/js.translator/testData/node_modules", "libraries/stdlib/common/build", - "libraries/stdlib/js/.gradle", - "libraries/stdlib/js/build", - "libraries/stdlib/js/irRuntime/longjs.kt", + "libraries/stdlib/js-v1/.gradle", + "libraries/stdlib/js-v1/build", + "libraries/stdlib/js-ir/.gradle", + "libraries/stdlib/js-ir/build", + "libraries/stdlib/js-ir/runtime/longjs.kt", "libraries/kotlin.test/js/it/.gradle", "libraries/kotlin.test/js/it/node_modules", - "libraries/stdlib/js/node_modules", + "libraries/stdlib/js-v1/node_modules", "libraries/tools/kotlin-maven-plugin-test/target", "libraries/tools/kotlin-gradle-plugin-integration-tests/build", "libraries/tools/kotlin-test-nodejs-runner/node_modules", diff --git a/js/ReadMe.md b/js/ReadMe.md index de5ab2d4f04..037d5b6723d 100644 --- a/js/ReadMe.md +++ b/js/ReadMe.md @@ -6,14 +6,14 @@ There are various Kotlin APIs to JavaScript environments in the [standard librar ## Compiling the Kotlin Standard Library for JavaScript -The Kotlin Standard Library for JS is built with gradle, see the corresponding module's [ReadMe](../libraries/stdlib/js/ReadMe.md). +The Kotlin Standard Library for JS is built with gradle, see the corresponding module's [ReadMe](../libraries/stdlib/js-v1/ReadMe.md). ## Reusing JVM based test cases in JavaScript Any Kotlin test cases using the **org.junit.Test** annotation and the [kotlin.test](../libraries/kotlin.test) package, such as [this test case](../libraries/stdlib/test/text/StringNumberConversionTest.kt#L16) are automatically converted to JavaScript using [QUnit](https://qunitjs.com/). -This allows the test cases to be [run directly in a web page in any web browser](../libraries/stdlib/js/ReadMe.md). +This allows the test cases to be [run directly in a web page in any web browser](../libraries/stdlib/js-v1/ReadMe.md). ## Using the Kotlin Library in JavaScript diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/JsTestChecker.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/JsTestChecker.kt index d1086f1a9e8..a910ba55c03 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/JsTestChecker.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/JsTestChecker.kt @@ -154,7 +154,7 @@ object NashornJsTestChecker : AbstractNashornJsTestChecker() { class NashornIrJsTestChecker : AbstractNashornJsTestChecker() { override val preloadedScripts = listOf( BasicBoxTest.TEST_DATA_DIR_PATH + "nashorn-polyfills.js", - "libraries/stdlib/js/src/js/polyfills.js" + "libraries/stdlib/js-v1/src/js/polyfills.js" ) } diff --git a/libraries/stdlib/js/irRuntime/builtins/Arrays.kt b/libraries/stdlib/js-ir/builtins/Arrays.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/builtins/Arrays.kt rename to libraries/stdlib/js-ir/builtins/Arrays.kt diff --git a/libraries/stdlib/js/irRuntime/builtins/Char.kt b/libraries/stdlib/js-ir/builtins/Char.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/builtins/Char.kt rename to libraries/stdlib/js-ir/builtins/Char.kt diff --git a/libraries/stdlib/js/irRuntime/builtins/Enum.kt b/libraries/stdlib/js-ir/builtins/Enum.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/builtins/Enum.kt rename to libraries/stdlib/js-ir/builtins/Enum.kt diff --git a/libraries/stdlib/js/irRuntime/builtins/Library.kt b/libraries/stdlib/js-ir/builtins/Library.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/builtins/Library.kt rename to libraries/stdlib/js-ir/builtins/Library.kt diff --git a/libraries/stdlib/js/irRuntime/builtins/Primitives.kt b/libraries/stdlib/js-ir/builtins/Primitives.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/builtins/Primitives.kt rename to libraries/stdlib/js-ir/builtins/Primitives.kt diff --git a/libraries/stdlib/js/irRuntime/DefaultConstructorMarker.kt b/libraries/stdlib/js-ir/runtime/DefaultConstructorMarker.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/DefaultConstructorMarker.kt rename to libraries/stdlib/js-ir/runtime/DefaultConstructorMarker.kt diff --git a/libraries/stdlib/js/irRuntime/arrays.kt b/libraries/stdlib/js-ir/runtime/arrays.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/arrays.kt rename to libraries/stdlib/js-ir/runtime/arrays.kt diff --git a/libraries/stdlib/js/irRuntime/charSequence.kt b/libraries/stdlib/js-ir/runtime/charSequence.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/charSequence.kt rename to libraries/stdlib/js-ir/runtime/charSequence.kt diff --git a/libraries/stdlib/js/irRuntime/collectionsHacks.kt b/libraries/stdlib/js-ir/runtime/collectionsHacks.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/collectionsHacks.kt rename to libraries/stdlib/js-ir/runtime/collectionsHacks.kt diff --git a/libraries/stdlib/js/irRuntime/compareTo.kt b/libraries/stdlib/js-ir/runtime/compareTo.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/compareTo.kt rename to libraries/stdlib/js-ir/runtime/compareTo.kt diff --git a/libraries/stdlib/js/irRuntime/core.kt b/libraries/stdlib/js-ir/runtime/core.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/core.kt rename to libraries/stdlib/js-ir/runtime/core.kt diff --git a/libraries/stdlib/js/irRuntime/coroutineInternalJS.kt b/libraries/stdlib/js-ir/runtime/coroutineInternalJS.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/coroutineInternalJS.kt rename to libraries/stdlib/js-ir/runtime/coroutineInternalJS.kt diff --git a/libraries/stdlib/js/irRuntime/hacks.kt b/libraries/stdlib/js-ir/runtime/hacks.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/hacks.kt rename to libraries/stdlib/js-ir/runtime/hacks.kt diff --git a/libraries/stdlib/js/irRuntime/irTestsJvmAnnotations.kt b/libraries/stdlib/js-ir/runtime/irTestsJvmAnnotations.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/irTestsJvmAnnotations.kt rename to libraries/stdlib/js-ir/runtime/irTestsJvmAnnotations.kt diff --git a/libraries/stdlib/js/irRuntime/irTestsOptionalExpectation.kt b/libraries/stdlib/js-ir/runtime/irTestsOptionalExpectation.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/irTestsOptionalExpectation.kt rename to libraries/stdlib/js-ir/runtime/irTestsOptionalExpectation.kt diff --git a/libraries/stdlib/js/irRuntime/kotlinHacks.kt b/libraries/stdlib/js-ir/runtime/kotlinHacks.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/kotlinHacks.kt rename to libraries/stdlib/js-ir/runtime/kotlinHacks.kt diff --git a/libraries/stdlib/js/irRuntime/kotlinJsHacks.kt b/libraries/stdlib/js-ir/runtime/kotlinJsHacks.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/kotlinJsHacks.kt rename to libraries/stdlib/js-ir/runtime/kotlinJsHacks.kt diff --git a/libraries/stdlib/js/irRuntime/kotlinNativeHacks.kt b/libraries/stdlib/js-ir/runtime/kotlinNativeHacks.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/kotlinNativeHacks.kt rename to libraries/stdlib/js-ir/runtime/kotlinNativeHacks.kt diff --git a/libraries/stdlib/js/irRuntime/long.kt b/libraries/stdlib/js-ir/runtime/long.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/long.kt rename to libraries/stdlib/js-ir/runtime/long.kt diff --git a/libraries/stdlib/js/irRuntime/longjs.kt b/libraries/stdlib/js-ir/runtime/longjs.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/longjs.kt rename to libraries/stdlib/js-ir/runtime/longjs.kt diff --git a/libraries/stdlib/js/irRuntime/misc.kt b/libraries/stdlib/js-ir/runtime/misc.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/misc.kt rename to libraries/stdlib/js-ir/runtime/misc.kt diff --git a/libraries/stdlib/js/irRuntime/noPackageHacks.kt b/libraries/stdlib/js-ir/runtime/noPackageHacks.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/noPackageHacks.kt rename to libraries/stdlib/js-ir/runtime/noPackageHacks.kt diff --git a/libraries/stdlib/js/irRuntime/numberConversion.kt b/libraries/stdlib/js-ir/runtime/numberConversion.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/numberConversion.kt rename to libraries/stdlib/js-ir/runtime/numberConversion.kt diff --git a/libraries/stdlib/js/irRuntime/rangeTo.kt b/libraries/stdlib/js-ir/runtime/rangeTo.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/rangeTo.kt rename to libraries/stdlib/js-ir/runtime/rangeTo.kt diff --git a/libraries/stdlib/js/irRuntime/tests.kt b/libraries/stdlib/js-ir/runtime/tests.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/tests.kt rename to libraries/stdlib/js-ir/runtime/tests.kt diff --git a/libraries/stdlib/js/irRuntime/typeCheckUtils.kt b/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt similarity index 98% rename from libraries/stdlib/js/irRuntime/typeCheckUtils.kt rename to libraries/stdlib/js-ir/runtime/typeCheckUtils.kt index 83339538cce..b87f56176ee 100644 --- a/libraries/stdlib/js/irRuntime/typeCheckUtils.kt +++ b/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt @@ -111,14 +111,14 @@ public fun isChar(c: Any): Boolean { } // TODO: Distinguish Boolean/Byte and Short/Char -public fun isBooleanArray(a: dynamic): Boolean = isJsArray(a) && a.`$type$` == "BooleanArray" +public fun isBooleanArray(a: dynamic): Boolean = isJsArray(a) && a.`$type$` === "BooleanArray" public fun isByteArray(a: dynamic): Boolean = js("a instanceof Int8Array").unsafeCast() public fun isShortArray(a: dynamic): Boolean = js("a instanceof Int16Array").unsafeCast() -public fun isCharArray(a: dynamic): Boolean = isJsArray(a) && a.`$type$` == "CharArray" +public fun isCharArray(a: dynamic): Boolean = isJsArray(a) && a.`$type$` === "CharArray" public fun isIntArray(a: dynamic): Boolean = js("a instanceof Int32Array").unsafeCast() public fun isFloatArray(a: dynamic): Boolean = js("a instanceof Float32Array").unsafeCast() public fun isDoubleArray(a: dynamic): Boolean = js("a instanceof Float64Array").unsafeCast() -public fun isLongArray(a: dynamic): Boolean = isJsArray(a) && a.`$type$` == "LongArray" +public fun isLongArray(a: dynamic): Boolean = isJsArray(a) && a.`$type$` === "LongArray" internal fun jsIn(x: String, y: dynamic): Boolean = js("x in y") diff --git a/libraries/stdlib/js/irRuntime/smallRuntimeMissingDeclarations.kt b/libraries/stdlib/js-ir/smallRuntime/smallRuntimeMissingDeclarations.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/smallRuntimeMissingDeclarations.kt rename to libraries/stdlib/js-ir/smallRuntime/smallRuntimeMissingDeclarations.kt diff --git a/libraries/stdlib/js/irRuntime/generated/_ArraysJs.kt b/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/generated/_ArraysJs.kt rename to libraries/stdlib/js-ir/src/generated/_ArraysJs.kt diff --git a/libraries/stdlib/js/irRuntime/generated/_CollectionsJs.kt b/libraries/stdlib/js-ir/src/generated/_CollectionsJs.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/generated/_CollectionsJs.kt rename to libraries/stdlib/js-ir/src/generated/_CollectionsJs.kt diff --git a/libraries/stdlib/js/irRuntime/generated/_ComparisonsJs.kt b/libraries/stdlib/js-ir/src/generated/_ComparisonsJs.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/generated/_ComparisonsJs.kt rename to libraries/stdlib/js-ir/src/generated/_ComparisonsJs.kt diff --git a/libraries/stdlib/js/irRuntime/generated/_StringsJs.kt b/libraries/stdlib/js-ir/src/generated/_StringsJs.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/generated/_StringsJs.kt rename to libraries/stdlib/js-ir/src/generated/_StringsJs.kt diff --git a/libraries/stdlib/js/irRuntime/generated/_UArraysJs.kt b/libraries/stdlib/js-ir/src/generated/_UArraysJs.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/generated/_UArraysJs.kt rename to libraries/stdlib/js-ir/src/generated/_UArraysJs.kt diff --git a/libraries/stdlib/js/irRuntime/coroutines_13/CoroutineImpl.kt b/libraries/stdlib/js-ir/src/kotlin/coroutines_13/CoroutineImpl.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/coroutines_13/CoroutineImpl.kt rename to libraries/stdlib/js-ir/src/kotlin/coroutines_13/CoroutineImpl.kt diff --git a/libraries/stdlib/js/irRuntime/coroutines_13/IntrinsicsJs.kt b/libraries/stdlib/js-ir/src/kotlin/coroutines_13/IntrinsicsJs.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/coroutines_13/IntrinsicsJs.kt rename to libraries/stdlib/js-ir/src/kotlin/coroutines_13/IntrinsicsJs.kt diff --git a/libraries/stdlib/js/irRuntime/coroutines_13/coroutineAliases.kt b/libraries/stdlib/js-ir/src/kotlin/coroutines_13/coroutineAliases.kt similarity index 100% rename from libraries/stdlib/js/irRuntime/coroutines_13/coroutineAliases.kt rename to libraries/stdlib/js-ir/src/kotlin/coroutines_13/coroutineAliases.kt diff --git a/libraries/stdlib/js/.gitignore b/libraries/stdlib/js-v1/.gitignore similarity index 100% rename from libraries/stdlib/js/.gitignore rename to libraries/stdlib/js-v1/.gitignore diff --git a/libraries/stdlib/js-v1/ReadMe.md b/libraries/stdlib/js-v1/ReadMe.md new file mode 100644 index 00000000000..a67cfd30a92 --- /dev/null +++ b/libraries/stdlib/js-v1/ReadMe.md @@ -0,0 +1,9 @@ +## Kotlin Standard Library for JS + +This module produces a `kotlin-stdlib-js` jar which contains all the Kotlin standard kotlin library code compiled to JavaScript. + +The tests of this module can be run and debugged inside any browser by opening the **web/index.html** file in this directory to run the test cases using [Mocha](https://mochajs.org/). + +You should execute `installMocha` gradle task before running these tests to fetch the required Mocha dependency and `testClasses` task to compile test code. + +These tests are also run during CI build with [Node.js plugin](https://github.com/srs/gradle-node-plugin). \ No newline at end of file diff --git a/libraries/stdlib/js/build.gradle b/libraries/stdlib/js-v1/build.gradle similarity index 94% rename from libraries/stdlib/js/build.gradle rename to libraries/stdlib/js-v1/build.gradle index 76f61dc5130..ca93cfcc6fe 100644 --- a/libraries/stdlib/js/build.gradle +++ b/libraries/stdlib/js-v1/build.gradle @@ -15,6 +15,7 @@ def builtinsSrcDir = "${buildDir}/builtin-sources" def builtinsSrcDir2 = "${buildDir}/builtin-sources-for-builtins" def commonSrcDir = "${projectDir}/../src/kotlin" def commonSrcDir2 = "${projectDir}/../common/src" +def jsCommonDir = "${projectDir}/../js" def coroutinesExpJsSrcDir = "${rootDir}/libraries/stdlib/coroutines-experimental/js/src" def builtinsDir = "${rootDir}/core/builtins" @@ -22,8 +23,12 @@ def unsignedCommonSrcDir = "${rootDir}/libraries/stdlib/unsigned/src" def experimentalSrcDir = "${rootDir}/libraries/stdlib/experimental" def experimentalJsModuleName = 'kotlin-experimental' def coroutinesJsModuleName = 'kotlin-stdlib-coroutines' + def jsSrcDir = "src" +def jsCommonSrcDir = "${jsCommonDir}/src" def jsTestSrcDir = "test" +def jsCommonTestSrcDir = "${jsCommonDir}/test" + def jsSrcJsDir = "${jsSrcDir}/js" def jsOutputFile = "${buildDir}/classes/kotlin.js" def jsOutputMetaFile = "${buildDir}/classes/kotlin.meta.js" @@ -34,11 +39,11 @@ def kotlinTestJsOutputFile = "${project(':kotlin-test:kotlin-test-js').buildDir} def jsTestOutputFile = "${buildDir}/classes/kotlin/test/kotlin-stdlib-js_test.js" def kotlinTestJsTestOutputFile = "${project(':kotlin-test:kotlin-test-js').buildDir}/classes/kotlin/test/kotlin-test-js_test.js" - sourceSets { builtins { kotlin { srcDir builtinsSrcDir2 + srcDir "${jsCommonDir}/runtime" srcDir 'runtime' } } @@ -46,6 +51,7 @@ sourceSets { main { kotlin { srcDir builtinsSrcDir + srcDir jsCommonSrcDir srcDir jsSrcDir } } @@ -60,6 +66,7 @@ sourceSets { test { kotlin { srcDir jsTestSrcDir + srcDir jsCommonTestSrcDir } } @@ -145,7 +152,7 @@ compileKotlin2Js { sourceMap = true sourceMapPrefix = "./" freeCompilerArgs += [ - "-source-map-base-dirs", [builtinsSrcDir, jsSrcDir, commonSrcDir, commonSrcDir2, unsignedCommonSrcDir].collect { file(it).absoluteFile }.join(File.pathSeparator), + "-source-map-base-dirs", [builtinsSrcDir, jsSrcDir, jsCommonSrcDir, commonSrcDir, commonSrcDir2, unsignedCommonSrcDir].collect { file(it).absoluteFile }.join(File.pathSeparator), "-Xuse-experimental=kotlin.Experimental", "-Xuse-experimental=kotlin.ExperimentalMultiplatform", "-Xuse-experimental=kotlin.contracts.ExperimentalContracts", @@ -198,6 +205,7 @@ task compileJs(type: NoDebugJavaExec) { inputs.files(compileExperimentalKotlin2Js.outputs.files) inputs.files(compileCoroutinesExperimentalKotlin2Js.outputs.files) inputs.dir(jsSrcDir) + inputs.dir(jsCommonSrcDir) outputs.file(jsOutputFile) outputs.file("${jsOutputFile}.map") @@ -239,15 +247,15 @@ task compileJs(type: NoDebugJavaExec) { def sourceMapBasePaths = [ "./", - "libraries/stdlib/js/src/js/", - "libraries/stdlib/js/src/", + "libraries/stdlib/js-v1/src/js/", + "libraries/stdlib/js-v1/src/", ] sourceMap.sources = sourceMap.sources.collect { sourcePath -> def prefixToRemove = sourceMapBasePaths.find { basePath -> sourcePath.startsWith(basePath) } if (prefixToRemove != null) sourcePath.substring(prefixToRemove.length()) else sourcePath } - def sourceMapSourcesBaseDirs = [jsSrcDir, jsSrcJsDir, builtinsSrcDir, commonSrcDir, commonSrcDir2, projectDir, experimentalSrcDir, unsignedCommonSrcDir] + def sourceMapSourcesBaseDirs = [jsSrcDir, jsCommonSrcDir, jsSrcJsDir, builtinsSrcDir, commonSrcDir, commonSrcDir2, projectDir, experimentalSrcDir, unsignedCommonSrcDir] sourceMap.sourcesContent = sourceMap.sources.collect { sourceName -> def text = sourceMapSourcesBaseDirs.collect { file("$it/$sourceName") }.find { it.exists() }?.text diff --git a/libraries/stdlib/js/runtime/Enum.kt b/libraries/stdlib/js-v1/runtime/Enum.kt similarity index 100% rename from libraries/stdlib/js/runtime/Enum.kt rename to libraries/stdlib/js-v1/runtime/Enum.kt diff --git a/libraries/stdlib/js/runtime/hacks.kt b/libraries/stdlib/js-v1/runtime/hacks.kt similarity index 100% rename from libraries/stdlib/js/runtime/hacks.kt rename to libraries/stdlib/js-v1/runtime/hacks.kt diff --git a/libraries/stdlib/js/src/js/arrayUtils.js b/libraries/stdlib/js-v1/src/js/arrayUtils.js similarity index 100% rename from libraries/stdlib/js/src/js/arrayUtils.js rename to libraries/stdlib/js-v1/src/js/arrayUtils.js diff --git a/libraries/stdlib/js/src/js/callableReferenceUtils.js b/libraries/stdlib/js-v1/src/js/callableReferenceUtils.js similarity index 100% rename from libraries/stdlib/js/src/js/callableReferenceUtils.js rename to libraries/stdlib/js-v1/src/js/callableReferenceUtils.js diff --git a/libraries/stdlib/js/src/js/conversions.js b/libraries/stdlib/js-v1/src/js/conversions.js similarity index 100% rename from libraries/stdlib/js/src/js/conversions.js rename to libraries/stdlib/js-v1/src/js/conversions.js diff --git a/libraries/stdlib/js/src/js/core.js b/libraries/stdlib/js-v1/src/js/core.js similarity index 100% rename from libraries/stdlib/js/src/js/core.js rename to libraries/stdlib/js-v1/src/js/core.js diff --git a/libraries/stdlib/js/src/js/long.js b/libraries/stdlib/js-v1/src/js/long.js similarity index 100% rename from libraries/stdlib/js/src/js/long.js rename to libraries/stdlib/js-v1/src/js/long.js diff --git a/libraries/stdlib/js/src/js/markerFunctions.js b/libraries/stdlib/js-v1/src/js/markerFunctions.js similarity index 100% rename from libraries/stdlib/js/src/js/markerFunctions.js rename to libraries/stdlib/js-v1/src/js/markerFunctions.js diff --git a/libraries/stdlib/js/src/js/misc.js b/libraries/stdlib/js-v1/src/js/misc.js similarity index 100% rename from libraries/stdlib/js/src/js/misc.js rename to libraries/stdlib/js-v1/src/js/misc.js diff --git a/libraries/stdlib/js/src/js/polyfills.js b/libraries/stdlib/js-v1/src/js/polyfills.js similarity index 100% rename from libraries/stdlib/js/src/js/polyfills.js rename to libraries/stdlib/js-v1/src/js/polyfills.js diff --git a/libraries/stdlib/js/src/js/rtti.js b/libraries/stdlib/js-v1/src/js/rtti.js similarity index 100% rename from libraries/stdlib/js/src/js/rtti.js rename to libraries/stdlib/js-v1/src/js/rtti.js diff --git a/libraries/stdlib/js/src/kotlin/builtins.kt b/libraries/stdlib/js-v1/src/kotlin/builtins.kt similarity index 100% rename from libraries/stdlib/js/src/kotlin/builtins.kt rename to libraries/stdlib/js-v1/src/kotlin/builtins.kt diff --git a/libraries/stdlib/js/src/kotlin/collections/utils.kt b/libraries/stdlib/js-v1/src/kotlin/collections/utils.kt similarity index 100% rename from libraries/stdlib/js/src/kotlin/collections/utils.kt rename to libraries/stdlib/js-v1/src/kotlin/collections/utils.kt diff --git a/libraries/stdlib/js/src/kotlin/collectionsExternal.kt b/libraries/stdlib/js-v1/src/kotlin/collectionsExternal.kt similarity index 100% rename from libraries/stdlib/js/src/kotlin/collectionsExternal.kt rename to libraries/stdlib/js-v1/src/kotlin/collectionsExternal.kt diff --git a/libraries/stdlib/js/src/kotlin/coroutines/CoroutineImpl.kt b/libraries/stdlib/js-v1/src/kotlin/coroutines/CoroutineImpl.kt similarity index 100% rename from libraries/stdlib/js/src/kotlin/coroutines/CoroutineImpl.kt rename to libraries/stdlib/js-v1/src/kotlin/coroutines/CoroutineImpl.kt diff --git a/libraries/stdlib/js/src/kotlin/coroutines/intrinsics/IntrinsicsJs.kt b/libraries/stdlib/js-v1/src/kotlin/coroutines/intrinsics/IntrinsicsJs.kt similarity index 100% rename from libraries/stdlib/js/src/kotlin/coroutines/intrinsics/IntrinsicsJs.kt rename to libraries/stdlib/js-v1/src/kotlin/coroutines/intrinsics/IntrinsicsJs.kt diff --git a/libraries/stdlib/js/src/kotlin/currentBeMisc.kt b/libraries/stdlib/js-v1/src/kotlin/currentBeMisc.kt similarity index 100% rename from libraries/stdlib/js/src/kotlin/currentBeMisc.kt rename to libraries/stdlib/js-v1/src/kotlin/currentBeMisc.kt diff --git a/libraries/stdlib/js/src/kotlin/jsTypeOf.kt b/libraries/stdlib/js-v1/src/kotlin/jsTypeOf.kt similarity index 100% rename from libraries/stdlib/js/src/kotlin/jsTypeOf.kt rename to libraries/stdlib/js-v1/src/kotlin/jsTypeOf.kt diff --git a/libraries/stdlib/js/src/kotlin/kotlin.kt b/libraries/stdlib/js-v1/src/kotlin/kotlin.kt similarity index 100% rename from libraries/stdlib/js/src/kotlin/kotlin.kt rename to libraries/stdlib/js-v1/src/kotlin/kotlin.kt diff --git a/libraries/stdlib/js/src/wrapper.js b/libraries/stdlib/js-v1/src/wrapper.js similarity index 100% rename from libraries/stdlib/js/src/wrapper.js rename to libraries/stdlib/js-v1/src/wrapper.js diff --git a/libraries/stdlib/js/test/core/BuiltinCompanionJsTest.kt b/libraries/stdlib/js-v1/test/core/BuiltinCompanionJsTest.kt similarity index 100% rename from libraries/stdlib/js/test/core/BuiltinCompanionJsTest.kt rename to libraries/stdlib/js-v1/test/core/BuiltinCompanionJsTest.kt diff --git a/libraries/stdlib/js/web/index.html b/libraries/stdlib/js-v1/web/index.html similarity index 100% rename from libraries/stdlib/js/web/index.html rename to libraries/stdlib/js-v1/web/index.html diff --git a/libraries/stdlib/js/ReadMe.md b/libraries/stdlib/js/ReadMe.md index a67cfd30a92..42f19f5c098 100644 --- a/libraries/stdlib/js/ReadMe.md +++ b/libraries/stdlib/js/ReadMe.md @@ -1,9 +1,5 @@ -## Kotlin Standard Library for JS +This directory contains shared sources of Kotlin/JS Standard Library for current and IR backends. -This module produces a `kotlin-stdlib-js` jar which contains all the Kotlin standard kotlin library code compiled to JavaScript. +Note that `stdlib/js/src/generated` is not shared but used exclusively for current `js-v1` backend. -The tests of this module can be run and debugged inside any browser by opening the **web/index.html** file in this directory to run the test cases using [Mocha](https://mochajs.org/). - -You should execute `installMocha` gradle task before running these tests to fetch the required Mocha dependency and `testClasses` task to compile test code. - -These tests are also run during CI build with [Node.js plugin](https://github.com/srs/gradle-node-plugin). \ No newline at end of file +Kotlin/JS Standard Library module is moved to `libraries/stdlib/js-v1`. \ No newline at end of file diff --git a/libraries/stdlib/js/irRuntime/PlatformRandom.kt b/libraries/stdlib/js/irRuntime/PlatformRandom.kt deleted file mode 100644 index 0f34b1b790f..00000000000 --- a/libraries/stdlib/js/irRuntime/PlatformRandom.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. - */ - -package kotlin.random - -import kotlin.math.pow - -// TODO: use stdlib file when math.pow is fixed - -internal actual fun defaultPlatformRandom(): Random = - Random(js("(Math.random() * Math.pow(2, 32)) | 0").unsafeCast()) - - -internal actual fun fastLog2(value: Int): Int { - // TODO: not so fast, make faster - var v = value - var log = -1 - while (v != 0) { - v = v.ushr(1) - log++ - } - return log -} - -internal actual fun doubleFromParts(hi26: Int, low27: Int): Double = - hi26 * (2.0.pow(-26)) + low27 * (2.0.pow(-53)) diff --git a/libraries/stdlib/js/src/kotlin/reflect/primitives.kt b/libraries/stdlib/js/src/kotlin/reflect/primitives.kt index c9d5c462aeb..a1c1b58f761 100644 --- a/libraries/stdlib/js/src/kotlin/reflect/primitives.kt +++ b/libraries/stdlib/js/src/kotlin/reflect/primitives.kt @@ -73,7 +73,7 @@ internal object PrimitiveClasses { fun functionClass(arity: Int): KClassImpl { return functionClasses.get(arity) ?: run { val result = PrimitiveKClassImpl(js("Function").unsafeCast>(), "Function$arity", - { jsTypeOf(it) === "function" && it.asDynamic().length == arity }) + { jsTypeOf(it) === "function" && it.asDynamic().length === arity }) functionClasses.asDynamic()[arity] = result result } diff --git a/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt b/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt index ae057e40dd7..0c66c2cc6ef 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt @@ -42,10 +42,10 @@ fun main(args: Array) { when (args.size) { 1 -> { val baseDir = File(args.first()) - targetBaseDirs[KotlinTarget.Common] = baseDir.resolveExistingDir("libraries/stdlib/common/src/generated") + targetBaseDirs[KotlinTarget.Common] = baseDir.resolveExistingDir("libraries/stdlib/common/src/generated") targetBaseDirs[KotlinTarget.JVM] = baseDir.resolveExistingDir("libraries/stdlib/jvm/src/generated") targetBaseDirs[KotlinTarget.JS] = baseDir.resolveExistingDir("libraries/stdlib/js/src/generated") - targetBaseDirs[KotlinTarget.JS_IR] = baseDir.resolveExistingDir("libraries/stdlib/js/irRuntime/generated") + targetBaseDirs[KotlinTarget.JS_IR] = baseDir.resolveExistingDir("libraries/stdlib/js-ir/src/generated") } 2 -> { val (targetName, targetDir) = args @@ -75,4 +75,4 @@ fun File.resolveExistingDir(subpath: String) = resolve(subpath).also { it.requir fun File.requireExistingDir() { require(isDirectory) { "Directory $this doesn't exist"} -} \ No newline at end of file +} diff --git a/license/README.md b/license/README.md index 242dc96f3a5..9bf7123c649 100644 --- a/license/README.md +++ b/license/README.md @@ -65,11 +65,11 @@ the Kotlin IntelliJ IDEA plugin: - License: Apache 2 ([license/third_party/gwt_license.txt][gwt]) - Origin: Derived from GWT, (C) 2007-08 Google Inc. - - Path: libraries/stdlib/js/src/js/long.js + - Path: libraries/stdlib/js-v1/src/js/long.js - License: Apache 2 ([license/third_party/closure-compiler_LICENSE.txt][closure-compiler]) - Origin: Google Closure Library, Copyright 2009 The Closure Library Authors - - Path: libraries/stdlib/js/src/js/polyfills.js + - Path: libraries/stdlib/js-v1/src/js/polyfills.js - License: Boost Software License 1.0 ([license/third_party/boost_LICENSE.txt][boost]) - Origin: Derived from boost special math functions, Copyright Eric Ford & Hubert Holin 2001. diff --git a/settings.gradle b/settings.gradle index 58e498d7dd2..b6682c9a9c2 100644 --- a/settings.gradle +++ b/settings.gradle @@ -247,7 +247,7 @@ if (flags.inJpsBuildIdeaSync) { project(':kotlin-stdlib-common').projectDir = "$rootDir/libraries/stdlib/common" as File project(':kotlin-stdlib').projectDir = "$rootDir/libraries/stdlib/jvm" as File - project(':kotlin-stdlib-js').projectDir = "$rootDir/libraries/stdlib/js" as File + project(':kotlin-stdlib-js').projectDir = "$rootDir/libraries/stdlib/js-v1" as File project(':kotlin-stdlib-jdk7').projectDir = "$rootDir/libraries/stdlib/jdk7" as File project(':kotlin-stdlib-jdk8').projectDir = "$rootDir/libraries/stdlib/jdk8" as File project(':kotlin-stdlib:samples').projectDir = "$rootDir/libraries/stdlib/samples" as File