JS: added TranslationResult

This commit is contained in:
Alexey Tsvetkov
2015-01-18 22:14:53 +03:00
parent aa5f237154
commit f5eb39e1f1
5 changed files with 112 additions and 142 deletions
@@ -39,8 +39,9 @@ import org.jetbrains.kotlin.js.config.Config;
import org.jetbrains.kotlin.js.config.EcmaVersion;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfig;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfigWithCaching;
import org.jetbrains.kotlin.js.facade.K2JSTranslator;
import org.jetbrains.kotlin.js.facade.MainCallParameters;
import org.jetbrains.kotlin.js.facade.Status;
import org.jetbrains.kotlin.js.facade.TranslationResult;
import org.jetbrains.kotlin.js.test.rhino.RhinoResultChecker;
import org.jetbrains.kotlin.js.test.utils.JsTestUtils;
import org.jetbrains.kotlin.js.translate.context.Namer;
@@ -57,7 +58,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import static org.jetbrains.kotlin.js.facade.K2JSTranslator.translateWithMainCallParameters;
import static org.jetbrains.kotlin.js.test.rhino.RhinoUtils.runRhinoTest;
import static org.jetbrains.kotlin.js.test.utils.JsTestUtils.convertFileNameToDotJsFile;
@@ -175,15 +175,18 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
@NotNull MainCallParameters mainCallParameters,
@NotNull Config config
) throws Exception {
Status<OutputFileCollection> status = translateWithMainCallParameters(mainCallParameters, jetFiles, outputFile,
getOutputPrefixFile(), getOutputPostfixFile(),
config, getConsumer());
K2JSTranslator translator = new K2JSTranslator(config);
TranslationResult translationResult = translator.translate(jetFiles, mainCallParameters);
if (status.isFail()) return;
if (!(translationResult instanceof TranslationResult.Success)) return;
TranslationResult.Success successResult = (TranslationResult.Success) translationResult;
getConsumer().consume(successResult.getProgram());
OutputFileCollection outputFiles = successResult.getOutputFiles(outputFile, getOutputPrefixFile(), getOutputPostfixFile());
File outputDir = outputFile.getParentFile();
assert outputDir != null : "Parent file for output file should not be null, outputFilePath: " + outputFile.getPath();
OutputUtilsPackage.writeAllTo(status.getResult(), outputDir);
OutputUtilsPackage.writeAllTo(outputFiles, outputDir);
}
protected File getOutputPostfixFile() {