KT-3008 Change the way how modules are referenced in JS

This commit is contained in:
Alexey Andreev
2016-04-11 16:20:25 +03:00
parent 2909533522
commit 95b78e18df
24 changed files with 169 additions and 136 deletions
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.js.config;
import org.jetbrains.kotlin.config.CompilerConfigurationKey;
import org.jetbrains.kotlin.serialization.js.ModuleKind;
import java.util.List;
@@ -36,4 +37,7 @@ public class JSConfigurationKeys {
public static final CompilerConfigurationKey<Boolean> UNIT_TEST_CONFIG =
CompilerConfigurationKey.create("unit test config");
public static final CompilerConfigurationKey<ModuleKind> MODULE_KIND =
CompilerConfigurationKey.create("module kind");
}
@@ -23,6 +23,7 @@ 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.CommonConfigurationKeys;
import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider;
@@ -51,15 +52,6 @@ public abstract class JsConfig {
private final CompilerConfiguration configuration;
private final LockBasedStorageManager storageManager = new LockBasedStorageManager();
private final List<KtFile> sourceFilesFromLibraries = new SmartList<KtFile>();
@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<KotlinJavascriptMetadata> metadata = new SmartList<KotlinJavascriptMetadata>();
@@ -67,9 +59,6 @@ public abstract class JsConfig {
@Nullable
private List<JsModuleDescriptor<ModuleDescriptorImpl>> moduleDescriptors = null;
@NotNull
private final ModuleKind moduleKind;
private boolean initialized = false;
protected JsConfig(@NotNull Project project, @NotNull CompilerConfiguration configuration) {
@@ -94,7 +83,7 @@ public abstract class JsConfig {
@NotNull
public ModuleKind getModuleKind() {
return moduleKind;
return configuration.getNotNull(JSConfigurationKeys.MODULE_KIND);
}
public abstract boolean checkLibFilesAndReportErrors(@NotNull Function1<String, Unit> report);