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 3cbc279bb49..468f18eda31 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java @@ -48,6 +48,7 @@ import org.jetbrains.kotlin.config.Services; import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS; import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult; import org.jetbrains.kotlin.js.config.EcmaVersion; +import org.jetbrains.kotlin.js.config.JSConfigurationKeys; import org.jetbrains.kotlin.js.config.JsConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.facade.K2JSTranslator; @@ -119,7 +120,7 @@ public class K2JSCompiler extends CLICompiler { File outputFile = new File(arguments.outputFile); - JsConfig config = getConfig(project, configuration, arguments); + JsConfig config = new LibrarySourcesConfig(project, configuration); if (config.checkLibFilesAndReportErrors(new Function1() { @Override public Unit invoke(String message) { @@ -240,21 +241,24 @@ public class K2JSCompiler extends CLICompiler { @Override protected void setupPlatformSpecificArgumentsAndServices( @NotNull CompilerConfiguration configuration, @NotNull K2JSCompilerArguments arguments, @NotNull Services services - ) { - // No platform-specific arguments yet - } - - @NotNull - private static JsConfig getConfig( - @NotNull Project project, - @NotNull CompilerConfiguration configuration, - @NotNull K2JSCompilerArguments arguments ) { if (arguments.target != null) { assert arguments.target == "v5" : "Unsupported ECMA version: " + arguments.target; } - EcmaVersion ecmaVersion = EcmaVersion.defaultVersion(); + configuration.put(JSConfigurationKeys.TARGET, EcmaVersion.defaultVersion()); + String moduleId = FileUtil.getNameWithoutExtension(new File(arguments.outputFile)); + configuration.put(JSConfigurationKeys.MODULE_ID, moduleId); + + if (arguments.sourceMap) { + configuration.put(JSConfigurationKeys.SOURCE_MAP, true); + } + if (arguments.metaInfo) { + configuration.put(JSConfigurationKeys.META_INFO, true); + } + if (arguments.kjsm) { + configuration.put(JSConfigurationKeys.KJSM, true); + } List libraryFiles = new SmartList(); if (!arguments.noStdlib) { @@ -265,15 +269,10 @@ public class K2JSCompiler extends CLICompiler { ContainerUtil.addAllNotNull(libraryFiles, arguments.libraryFiles); } - return new LibrarySourcesConfig.Builder(project, configuration, moduleId, libraryFiles) - .ecmaVersion(ecmaVersion) - .sourceMap(arguments.sourceMap) - .metaInfo(arguments.metaInfo) - .kjsm(arguments.kjsm) - .build(); + configuration.put(JSConfigurationKeys.LIBRARY_FILES, libraryFiles); } - public static MainCallParameters createMainCallParameters(String main) { + private static MainCallParameters createMainCallParameters(String main) { if (K2JsArgumentConstants.NO_CALL.equals(main)) { return MainCallParameters.noCall(); } diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTestWithJsStdLib.java b/compiler/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTestWithJsStdLib.java index 99f6bf51223..4ca09fbda30 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTestWithJsStdLib.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTestWithJsStdLib.java @@ -18,9 +18,11 @@ package org.jetbrains.kotlin.checkers; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; +import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.context.ModuleContext; import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl; import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS; +import org.jetbrains.kotlin.js.config.JSConfigurationKeys; import org.jetbrains.kotlin.js.config.JsConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.resolve.JsPlatform; @@ -40,9 +42,10 @@ public abstract class AbstractDiagnosticsTestWithJsStdLib extends AbstractDiagno @Override protected void setUp() throws Exception { super.setUp(); - config = new LibrarySourcesConfig.Builder( - getProject(), getEnvironment().getConfiguration(), "module", LibrarySourcesConfig.JS_STDLIB - ).build(); + CompilerConfiguration configuration = getEnvironment().getConfiguration().copy(); + configuration.put(JSConfigurationKeys.MODULE_ID, "module"); + configuration.put(JSConfigurationKeys.LIBRARY_FILES, LibrarySourcesConfig.JS_STDLIB); + config = new LibrarySourcesConfig(getProject(), configuration); } @Override diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerTest.kt index 2f0cfc45ff0..15461b9b946 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerTest.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.addKotlinSourceRoots import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS +import org.jetbrains.kotlin.js.config.JSConfigurationKeys import org.jetbrains.kotlin.js.config.LibrarySourcesConfig import org.jetbrains.kotlin.js.resolve.JsPlatform import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.TEST_PACKAGE_FQNAME @@ -50,6 +51,8 @@ class KotlinJavascriptSerializerTest : TestCaseWithTmpdir() { val configuration = CompilerConfiguration() configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, MessageCollector.NONE) + configuration.put(JSConfigurationKeys.MODULE_ID, MODULE_NAME) + configuration.put(JSConfigurationKeys.LIBRARY_FILES, LibrarySourcesConfig.JS_STDLIB) configuration.addKotlinSourceRoots(srcDirs.map { it.path }) @@ -68,9 +71,7 @@ class KotlinJavascriptSerializerTest : TestCaseWithTmpdir() { try { val environment = KotlinCoreEnvironment.createForTests(rootDisposable, configuration, EnvironmentConfigFiles.JS_CONFIG_FILES) val files = environment.getSourceFiles() - val config = LibrarySourcesConfig.Builder( - environment.project, environment.configuration, MODULE_NAME, LibrarySourcesConfig.JS_STDLIB - ).build() + val config = LibrarySourcesConfig(environment.project, environment.configuration) val analysisResult = TopDownAnalyzerFacadeForJS.analyzeFiles(files, config) FileUtil.writeToFile(metaFile, KotlinJavascriptSerializationUtil.metadataAsString(MODULE_NAME, analysisResult.moduleDescriptor)) } diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/AbstractDiagnosticMessageJsTest.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/AbstractDiagnosticMessageJsTest.java index c74623d51e9..9e990fc9518 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/AbstractDiagnosticMessageJsTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/AbstractDiagnosticMessageJsTest.java @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys; import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.idea.test.PluginTestCaseBase; import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS; +import org.jetbrains.kotlin.js.config.JSConfigurationKeys; import org.jetbrains.kotlin.js.config.JsConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.resolve.diagnostics.ErrorsJs; @@ -62,9 +63,10 @@ public abstract class AbstractDiagnosticMessageJsTest extends AbstractDiagnostic @NotNull private JsConfig getConfig() { CompilerConfiguration configuration = getEnvironment().getConfiguration().copy(); + configuration.put(JSConfigurationKeys.MODULE_ID, "testModule"); + configuration.put(JSConfigurationKeys.LIBRARY_FILES, LibrarySourcesConfig.JS_STDLIB); configuration.put(CommonConfigurationKeys.DISABLE_INLINE, true); - return new LibrarySourcesConfig.Builder(getProject(), configuration, "testModule", LibrarySourcesConfig.JS_STDLIB) - .isUnitTestConfig(true) - .build(); + configuration.put(JSConfigurationKeys.UNIT_TEST_CONFIG, true); + return new LibrarySourcesConfig(getProject(), configuration); } } diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/JSConfigurationKeys.java b/js/js.frontend/src/org/jetbrains/kotlin/js/config/JSConfigurationKeys.java new file mode 100644 index 00000000000..947adf61c11 --- /dev/null +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/JSConfigurationKeys.java @@ -0,0 +1,42 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.js.config; + +import org.jetbrains.kotlin.config.CompilerConfigurationKey; + +import java.util.List; + +public class JSConfigurationKeys { + public static final CompilerConfigurationKey> LIBRARY_FILES = + CompilerConfigurationKey.create("library file paths"); + + public static final CompilerConfigurationKey SOURCE_MAP = + CompilerConfigurationKey.create("generate source map"); + public static final CompilerConfigurationKey META_INFO = + CompilerConfigurationKey.create("generate metadata"); + public static final CompilerConfigurationKey KJSM = + CompilerConfigurationKey.create("generate .kjsm files"); + + public static final CompilerConfigurationKey TARGET = + CompilerConfigurationKey.create("ECMA version target"); + + public static final CompilerConfigurationKey UNIT_TEST_CONFIG = + CompilerConfigurationKey.create("unit test config"); + + public static final CompilerConfigurationKey MODULE_ID = + CompilerConfigurationKey.create("module id"); +} diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/JsConfig.java b/js/js.frontend/src/org/jetbrains/kotlin/js/config/JsConfig.java index 04aff8fe5a2..1f769aa9419 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/JsConfig.java +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/JsConfig.java @@ -23,7 +23,6 @@ import kotlin.Unit; import kotlin.collections.CollectionsKt; import kotlin.jvm.functions.Function1; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.descriptors.PackageFragmentProvider; import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl; @@ -43,48 +42,18 @@ import java.util.List; * Base class representing a configuration of translator. */ public abstract class JsConfig { - @NotNull private final Project project; - @NotNull private final CompilerConfiguration configuration; - @NotNull private final LockBasedStorageManager storageManager = new LockBasedStorageManager(); - @NotNull private final List sourceFilesFromLibraries = new SmartList(); - @NotNull - private final EcmaVersion target; - - @NotNull - private final String moduleId; - - private final boolean sourcemap; - private final boolean metaInfo; - private final boolean kjsm; - - @NotNull protected final List metadata = new SmartList(); - - @Nullable private List moduleDescriptors = null; private boolean initialized = false; - protected JsConfig( - @NotNull Project project, - @NotNull CompilerConfiguration configuration, - @NotNull String moduleId, - @NotNull EcmaVersion ecmaVersion, - boolean sourcemap, - boolean metaInfo, - boolean kjsm - ) { + protected JsConfig(@NotNull Project project, @NotNull CompilerConfiguration configuration) { this.project = project; this.configuration = configuration; - this.target = ecmaVersion; - this.moduleId = moduleId; - this.sourcemap = sourcemap; - this.metaInfo = metaInfo; - this.kjsm = kjsm; } @NotNull @@ -92,31 +61,14 @@ public abstract class JsConfig { return configuration; } - public boolean isSourcemap() { - return sourcemap; - } - - public boolean isMetaInfo() { - return metaInfo; - } - - public boolean isKjsm() { - return kjsm; - } - @NotNull public Project getProject() { return project; } - @NotNull - public EcmaVersion getTarget() { - return target; - } - @NotNull public String getModuleId() { - return moduleId; + return configuration.getNotNull(JSConfigurationKeys.MODULE_ID); } public abstract boolean checkLibFilesAndReportErrors(@NotNull Function1 report); @@ -140,16 +92,11 @@ public abstract class JsConfig { } @NotNull - public List getSourceFilesFromLibraries() { + private List getSourceFilesFromLibraries() { init(); return sourceFilesFromLibraries; } - - public boolean isTestConfig() { - return false; - } - private void init() { if (initialized) return; 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 9cefa054f1b..c34ed9eadbb 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 @@ -48,9 +48,7 @@ public class LibrarySourcesConfig extends JsConfig { public static final List JS_STDLIB = Collections.singletonList(getKotlinPathsForDistDirectory().getJsStdLibJarPath().getAbsolutePath()); - @NotNull public static final Key EXTERNAL_MODULE_NAME = Key.create("externalModule"); - @NotNull public static final String UNKNOWN_EXTERNAL_MODULE_NAME = ""; public static final String STDLIB_JS_MODULE_NAME = "stdlib"; @@ -58,40 +56,18 @@ public class LibrarySourcesConfig extends JsConfig { public static final String BUILTINS_JS_FILE_NAME = BUILTINS_JS_MODULE_NAME + JavaScript.DOT_EXTENSION; public static final String STDLIB_JS_FILE_NAME = STDLIB_JS_MODULE_NAME + JavaScript.DOT_EXTENSION; - private final boolean isUnitTestConfig; - - @NotNull - private final List files; - - private LibrarySourcesConfig( - @NotNull Project project, - @NotNull CompilerConfiguration configuration, - @NotNull String moduleId, - @NotNull List files, - @NotNull EcmaVersion ecmaVersion, - boolean sourceMap, - boolean isUnitTestConfig, - boolean metaInfo, - boolean kjsm - ) { - super(project, configuration, moduleId, ecmaVersion, sourceMap, metaInfo, kjsm); - this.files = files; - this.isUnitTestConfig = isUnitTestConfig; - } - - @Override - public boolean isTestConfig() { - return isUnitTestConfig; + public LibrarySourcesConfig(@NotNull Project project, @NotNull CompilerConfiguration configuration) { + super(project, configuration); } @NotNull public List getLibraries() { - return files; + return getConfiguration().getList(JSConfigurationKeys.LIBRARY_FILES); } @Override protected void init(@NotNull final List sourceFilesInLibraries, @NotNull final List metadata) { - if (files.isEmpty()) return; + if (getLibraries().isEmpty()) return; final PsiManager psiManager = PsiManager.getInstance(getProject()); @@ -129,14 +105,15 @@ public class LibrarySourcesConfig extends JsConfig { } private boolean checkLibFilesAndReportErrors(@NotNull Function1 report, @Nullable Function2 action) { - if (files.isEmpty()) { + List libraries = getLibraries(); + if (libraries.isEmpty()) { return false; } VirtualFileSystem fileSystem = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL); VirtualFileSystem jarFileSystem = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.JAR_PROTOCOL); - for (String path : files) { + for (String path : libraries) { VirtualFile file; File filePath = new File(path); @@ -189,62 +166,7 @@ public class LibrarySourcesConfig extends JsConfig { return false; } - public static class Builder { - private final Project project; - private final CompilerConfiguration configuration; - private final String moduleId; - private final List files; - private EcmaVersion ecmaVersion = EcmaVersion.defaultVersion(); - boolean sourceMap = false; - boolean isUnitTestConfig = false; - boolean metaInfo = false; - boolean kjsm = false; - - public Builder( - @NotNull Project project, - @NotNull CompilerConfiguration configuration, - @NotNull String moduleId, - @NotNull List files - ) { - this.project = project; - this.configuration = configuration; - this.moduleId = moduleId; - this.files = files; - } - - public Builder ecmaVersion(@NotNull EcmaVersion ecmaVersion) { - this.ecmaVersion = ecmaVersion; - return this; - } - - public Builder sourceMap(boolean sourceMap) { - this.sourceMap = sourceMap; - return this; - } - - public Builder isUnitTestConfig(boolean isUnitTestConfig) { - this.isUnitTestConfig = isUnitTestConfig; - return this; - } - - public Builder metaInfo(boolean metaInfo) { - this.metaInfo = metaInfo; - return this; - } - - public Builder kjsm(boolean kjsm) { - this.kjsm = kjsm; - return this; - } - - public JsConfig build() { - return new LibrarySourcesConfig( - project, configuration, moduleId, files, ecmaVersion, sourceMap, isUnitTestConfig, metaInfo, kjsm - ); - } - } - - protected static KtFile getJetFileByVirtualFile(VirtualFile file, String moduleName, PsiManager psiManager) { + private static KtFile getJetFileByVirtualFile(VirtualFile file, String moduleName, PsiManager psiManager) { PsiFile psiFile = psiManager.findFile(file); assert psiFile != null; @@ -252,7 +174,7 @@ public class LibrarySourcesConfig extends JsConfig { return (KtFile) psiFile; } - protected static void setupPsiFile(PsiFile psiFile, String moduleName) { + private static void setupPsiFile(PsiFile psiFile, String moduleName) { psiFile.putUserData(EXTERNAL_MODULE_NAME, moduleName); } 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 350f16de3e9..f4f18b7624e 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 @@ -40,6 +40,7 @@ import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.idea.KotlinFileType; import org.jetbrains.kotlin.js.JavaScript; import org.jetbrains.kotlin.js.config.EcmaVersion; +import org.jetbrains.kotlin.js.config.JSConfigurationKeys; import org.jetbrains.kotlin.js.config.JsConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.facade.K2JSTranslator; @@ -329,26 +330,33 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { ) { CompilerConfiguration configuration = getEnvironment().getConfiguration().copy(); - for (KtFile file : files) { - String text = file.getText(); - - if (isDirectiveDefined(text, NO_INLINE_DIRECTIVE)) { - configuration.put(CommonConfigurationKeys.DISABLE_INLINE, true); - break; - } - } + configuration.put(CommonConfigurationKeys.DISABLE_INLINE, hasNoInline(files)); List librariesWithStdlib = new ArrayList(LibrarySourcesConfig.JS_STDLIB); if (libraries != null) { librariesWithStdlib.addAll(libraries); } + configuration.put(JSConfigurationKeys.LIBRARY_FILES, librariesWithStdlib); - return new LibrarySourcesConfig.Builder(project, configuration, moduleId, librariesWithStdlib) - .ecmaVersion(ecmaVersion) - .sourceMap(shouldGenerateSourceMap()) - .isUnitTestConfig(shouldBeTranslateAsUnitTestClass()) - .metaInfo(shouldGenerateMetaInfo()) - .build(); + configuration.put(JSConfigurationKeys.MODULE_ID, moduleId); + configuration.put(JSConfigurationKeys.TARGET, ecmaVersion); + + configuration.put(JSConfigurationKeys.SOURCE_MAP, shouldGenerateSourceMap()); + configuration.put(JSConfigurationKeys.META_INFO, shouldGenerateMetaInfo()); + + configuration.put(JSConfigurationKeys.UNIT_TEST_CONFIG, shouldBeTranslateAsUnitTestClass()); + + return new LibrarySourcesConfig(project, configuration); + } + + private static boolean hasNoInline(@NotNull List files) { + for (KtFile file : files) { + if (isDirectiveDefined(file.getText(), NO_INLINE_DIRECTIVE)) { + return true; + } + } + + return false; } @NotNull diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/facade/TranslationResult.kt b/js/js.translator/src/org/jetbrains/kotlin/js/facade/TranslationResult.kt index 60720be6149..a7e711af77d 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/facade/TranslationResult.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/facade/TranslationResult.kt @@ -23,6 +23,7 @@ import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.vfs.VfsUtilCore import org.jetbrains.kotlin.backend.common.output.* import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.js.config.JSConfigurationKeys import org.jetbrains.kotlin.js.config.JsConfig import org.jetbrains.kotlin.js.sourceMap.JsSourceGenerationVisitor import org.jetbrains.kotlin.js.sourceMap.SourceMap3Builder @@ -45,14 +46,15 @@ abstract class TranslationResult protected constructor(val diagnostics: Diagnost diagnostics: Diagnostics, private val moduleDescriptor: ModuleDescriptor ) : TranslationResult(diagnostics) { + @Suppress("unused") // Used in kotlin-web-demo in WebDemoTranslatorFacade fun getCode(): String = getCode(TextOutputImpl(), sourceMapBuilder = null) fun getOutputFiles(outputFile: File, outputPrefixFile: File?, outputPostfixFile: File?): OutputFileCollection { val output = TextOutputImpl() - val sourceMapBuilder = when { - config.isSourcemap -> SourceMap3Builder(outputFile, output, SourceMapBuilderConsumer()) - else -> null - } + val sourceMapBuilder = + if (config.configuration.getBoolean(JSConfigurationKeys.SOURCE_MAP)) + SourceMap3Builder(outputFile, output, SourceMapBuilderConsumer()) + else null val code = getCode(output, sourceMapBuilder) val prefix = outputPrefixFile?.readText() ?: "" @@ -69,7 +71,7 @@ abstract class TranslationResult protected constructor(val diagnostics: Diagnost val jsFile = SimpleOutputFile(sourceFiles, outputFile.name, prefix + code + postfix) val outputFiles = arrayListOf(jsFile) - if (config.isMetaInfo) { + if (config.configuration.getBoolean(JSConfigurationKeys.META_INFO)) { val metaFileName = KotlinJavascriptMetadataUtils.replaceSuffix(outputFile.name) val metaFileContent = KotlinJavascriptSerializationUtil.metadataAsString(config.moduleId, moduleDescriptor) val sourceFilesForMetaFile = ArrayList(sourceFiles) @@ -77,7 +79,7 @@ abstract class TranslationResult protected constructor(val diagnostics: Diagnost outputFiles.add(jsMetaFile) } - if (config.isKjsm) { + if (config.configuration.getBoolean(JSConfigurationKeys.KJSM)) { KotlinJavascriptSerializationUtil.toContentMap(moduleDescriptor).forEach { // TODO Add correct source files outputFiles.add(SimpleOutputBinaryFile(emptyList(), config.moduleId + VfsUtilCore.VFS_SEPARATOR_CHAR + it.key, it.value)) diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/general/Translation.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/general/Translation.java index 29b896beed5..eb7e54351cc 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/general/Translation.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/general/Translation.java @@ -22,6 +22,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.descriptors.FunctionDescriptor; import org.jetbrains.kotlin.descriptors.ModuleDescriptor; import org.jetbrains.kotlin.idea.MainFunctionDetector; +import org.jetbrains.kotlin.js.config.JSConfigurationKeys; import org.jetbrains.kotlin.js.config.JsConfig; import org.jetbrains.kotlin.js.facade.MainCallParameters; import org.jetbrains.kotlin.js.facade.exceptions.TranslationException; @@ -227,7 +228,8 @@ public final class Translation { private static void mayBeGenerateTests( @NotNull Collection files, @NotNull JsConfig config, @NotNull JsBlock rootBlock, @NotNull TranslationContext context ) { - JSTester tester = config.isTestConfig() ? new JSRhinoUnitTester() : new QUnitTester(); + JSTester tester = + config.getConfiguration().getBoolean(JSConfigurationKeys.UNIT_TEST_CONFIG) ? new JSRhinoUnitTester() : new QUnitTester(); tester.initialize(context, rootBlock); JSTestGenerator.generateTestCalls(context, files, tester); tester.deinitialize();