diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java index 39cb4d635f0..93b99e696ef 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java @@ -245,7 +245,7 @@ public class K2JSCompiler extends CLICompiler { ContainerUtil.addAllNotNull(libraryFiles, arguments.libraryFiles); } - return new LibrarySourcesConfig(project, moduleId, libraryFiles, ecmaVersion, arguments.sourceMap, inlineEnabled); + return new LibrarySourcesConfig(project, moduleId, libraryFiles, ecmaVersion, arguments.sourceMap, inlineEnabled, arguments.metaInfo); } public static MainCallParameters createMainCallParameters(String main) { diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/Config.java b/js/js.frontend/src/org/jetbrains/kotlin/js/config/Config.java index c2ea60bf37a..5f56b1339bf 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/Config.java +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/Config.java @@ -52,6 +52,8 @@ public abstract class Config { private final String moduleId; private final boolean sourcemap; + @Nullable + private final String metaInfo; @NotNull protected final List metadata = new SmartList(); @@ -66,19 +68,26 @@ public abstract class Config { @NotNull String moduleId, @NotNull EcmaVersion ecmaVersion, boolean sourcemap, - boolean inlineEnabled + boolean inlineEnabled, + @Nullable String metaInfo ) { this.project = project; this.target = ecmaVersion; this.moduleId = moduleId; this.sourcemap = sourcemap; this.inlineEnabled = inlineEnabled; + this.metaInfo = metaInfo; } public boolean isSourcemap() { return sourcemap; } + @Nullable + public String getMetaInfo() { + return metaInfo; + } + public boolean isInlineEnabled() { return inlineEnabled; } diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/LibrarySourcesConfig.java b/js/js.frontend/src/org/jetbrains/kotlin/js/config/LibrarySourcesConfig.java index 9e15abab859..06d3ed2bbef 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/LibrarySourcesConfig.java +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/LibrarySourcesConfig.java @@ -61,9 +61,10 @@ public class LibrarySourcesConfig extends Config { @NotNull List files, @NotNull EcmaVersion ecmaVersion, boolean sourcemap, - boolean inlineEnabled + boolean inlineEnabled, + @Nullable String metaInfo ) { - super(project, moduleId, ecmaVersion, sourcemap, inlineEnabled); + super(project, moduleId, ecmaVersion, sourcemap, inlineEnabled, metaInfo); this.files = files; } diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/LibrarySourcesConfigWithCaching.java b/js/js.frontend/src/org/jetbrains/kotlin/js/config/LibrarySourcesConfigWithCaching.java index 999c5995be1..402edad3841 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/LibrarySourcesConfigWithCaching.java +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/LibrarySourcesConfigWithCaching.java @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.js.config; import com.intellij.openapi.project.Project; import com.intellij.util.SmartList; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.psi.JetFile; import org.jetbrains.kotlin.utils.KotlinJavascriptMetadata; import org.jetbrains.kotlin.utils.PathUtil; @@ -34,6 +35,19 @@ public class LibrarySourcesConfigWithCaching extends LibrarySourcesConfig { private final boolean isUnitTestConfig; + public LibrarySourcesConfigWithCaching( + @NotNull Project project, + @NotNull String moduleId, + @NotNull EcmaVersion ecmaVersion, + boolean sourcemap, + boolean inlineEnabled, + boolean isUnitTestConfig, + @Nullable String metaInfo + ) { + super(project, moduleId, JS_STDLIB, ecmaVersion, sourcemap, inlineEnabled, metaInfo); + this.isUnitTestConfig = isUnitTestConfig; + } + public LibrarySourcesConfigWithCaching( @NotNull Project project, @NotNull String moduleId, @@ -42,8 +56,7 @@ public class LibrarySourcesConfigWithCaching extends LibrarySourcesConfig { boolean inlineEnabled, boolean isUnitTestConfig ) { - super(project, moduleId, JS_STDLIB, ecmaVersion, sourcemap, inlineEnabled); - this.isUnitTestConfig = isUnitTestConfig; + this(project, moduleId, ecmaVersion, sourcemap, inlineEnabled, isUnitTestConfig, null); } @Override diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java index 75f0d1f8d1d..792bb0224ad 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java @@ -204,6 +204,11 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { return false; } + @Nullable + protected String getMetaInfo(@NotNull String moduleId) { + return null; + } + protected void processJsProgram(@NotNull JsProgram program) throws Exception { } protected void runRhinoTests( @@ -279,10 +284,10 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { @NotNull private Config createConfig(@NotNull Project project, @NotNull String moduleId, @NotNull EcmaVersion ecmaVersion, @Nullable List libraries) { if (libraries == null) { - return new LibrarySourcesConfigWithCaching(project, moduleId, ecmaVersion, shouldGenerateSourceMap(), IS_INLINE_ENABLED, shouldBeTranslateAsUnitTestClass()); + return new LibrarySourcesConfigWithCaching(project, moduleId, ecmaVersion, shouldGenerateSourceMap(), IS_INLINE_ENABLED, shouldBeTranslateAsUnitTestClass(), getMetaInfo(moduleId)); } else { - return new LibrarySourcesConfig(project, moduleId, librariesWithJsStdlib(libraries), ecmaVersion, shouldGenerateSourceMap(), IS_INLINE_ENABLED); + return new LibrarySourcesConfig(project, moduleId, librariesWithJsStdlib(libraries), ecmaVersion, shouldGenerateSourceMap(), IS_INLINE_ENABLED, getMetaInfo(moduleId)); } } @@ -294,7 +299,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { } @NotNull - private String getOutputPath() { + protected String getOutputPath() { return pathToTestDir() + OUT; } diff --git a/libraries/stdlib/validator/src/test/kotlin/NoInternalVisibilityInStdLibTest.kt b/libraries/stdlib/validator/src/test/kotlin/NoInternalVisibilityInStdLibTest.kt index 246d172a01a..99b0c7fd067 100644 --- a/libraries/stdlib/validator/src/test/kotlin/NoInternalVisibilityInStdLibTest.kt +++ b/libraries/stdlib/validator/src/test/kotlin/NoInternalVisibilityInStdLibTest.kt @@ -146,7 +146,7 @@ class NoInternalVisibilityInStdLibTest { val environment = KotlinCoreEnvironment.createForProduction(disposable!!, configuration, EnvironmentConfigFiles.JS_CONFIG_FILES) val project = environment.project val pathToJsStdlibJar = KOTLIN_ROOT_PATH + PathUtil.getKotlinPathsForDistDirectory().getJsStdLibJarPath().path - val config = LibrarySourcesConfig(project, "testModule", listOf(pathToJsStdlibJar), EcmaVersion.defaultVersion(), false, false) + val config = LibrarySourcesConfig(project, "testModule", listOf(pathToJsStdlibJar), EcmaVersion.defaultVersion(), false, false, null) TopDownAnalyzerFacadeForJS.analyzeFiles(listOf(), config).moduleDescriptor }