JS: don't load binary AST unless required by the inliner
This commit is contained in:
@@ -143,7 +143,7 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
|
||||
}
|
||||
else {
|
||||
TranslationResultValue translatedValue = compiledParts.get(allSources[i]);
|
||||
translationUnits.add(new TranslationUnit.BinaryAst(translatedValue.getBinaryAst()));
|
||||
translationUnits.add(new TranslationUnit.BinaryAst(translatedValue.getBinaryAst(), translatedValue.getHeader()));
|
||||
}
|
||||
}
|
||||
return translator.translateUnits(reporter, translationUnits, mainCallParameters, jsAnalysisResult);
|
||||
|
||||
+4
-3
@@ -124,9 +124,10 @@ open class CompilerCallbackServicesFacadeServer(
|
||||
override fun incrementalResultsConsumer_processPackagePart(
|
||||
sourceFilePath: String,
|
||||
packagePartMetadata: ByteArray,
|
||||
binaryAst: ByteArray
|
||||
binaryAst: ByteArray,
|
||||
header: ByteArray
|
||||
) {
|
||||
incrementalResultsConsumer!!.processPackagePart(File(sourceFilePath), packagePartMetadata, binaryAst)
|
||||
incrementalResultsConsumer!!.processPackagePart(File(sourceFilePath), packagePartMetadata, binaryAst, header)
|
||||
}
|
||||
|
||||
override fun incrementalResultsConsumer_processInlineFunctions(functions: Collection<JsInlineFunctionHash>) {
|
||||
@@ -139,6 +140,6 @@ open class CompilerCallbackServicesFacadeServer(
|
||||
|
||||
override fun incrementalDataProvider_getCompiledPackageParts() =
|
||||
incrementalDataProvider!!.compiledPackageParts.entries.map {
|
||||
CompiledPackagePart(it.key.path, it.value.metadata, it.value.binaryAst)
|
||||
CompiledPackagePart(it.key.path, it.value.metadata, it.value.binaryAst, it.value.header)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -107,7 +107,7 @@ interface CompilerCallbackServicesFacade : Remote {
|
||||
fun incrementalResultsConsumer_processHeader(headerMetadata: ByteArray)
|
||||
|
||||
@Throws(RemoteException::class)
|
||||
fun incrementalResultsConsumer_processPackagePart(sourceFilePath: String, packagePartMetadata: ByteArray, binaryAst: ByteArray)
|
||||
fun incrementalResultsConsumer_processPackagePart(sourceFilePath: String, packagePartMetadata: ByteArray, binaryAst: ByteArray, header: ByteArray)
|
||||
|
||||
@Throws(RemoteException::class)
|
||||
fun incrementalResultsConsumer_processInlineFunctions(functions: Collection<JsInlineFunctionHash>)
|
||||
@@ -126,7 +126,7 @@ interface CompilerCallbackServicesFacade : Remote {
|
||||
|
||||
class CompiledPackagePart(
|
||||
val filePath: String,
|
||||
val metadata: ByteArray, val binaryAst: ByteArray
|
||||
val metadata: ByteArray, val binaryAst: ByteArray, val header: ByteArray
|
||||
) : Serializable
|
||||
|
||||
class RmiFriendlyCompilationCanceledException : Exception(), Serializable {
|
||||
|
||||
@@ -22,7 +22,7 @@ class RemoteIncrementalDataProvider(val facade: CompilerCallbackServicesFacade,
|
||||
get() = rpcProfiler.withMeasure(this) {
|
||||
val result = mutableMapOf<File, TranslationResultValue>()
|
||||
facade.incrementalDataProvider_getCompiledPackageParts().forEach {
|
||||
val prev = result.put(File(it.filePath), TranslationResultValue(it.metadata, it.binaryAst))
|
||||
val prev = result.put(File(it.filePath), TranslationResultValue(it.metadata, it.binaryAst, it.header))
|
||||
check(prev == null) { "compiledPackageParts: duplicated entry for file `${it.filePath}`" }
|
||||
}
|
||||
result
|
||||
|
||||
@@ -24,9 +24,9 @@ class RemoteIncrementalResultsConsumer(val facade: CompilerCallbackServicesFacad
|
||||
}
|
||||
}
|
||||
|
||||
override fun processPackagePart(sourceFile: File, packagePartMetadata: ByteArray, binaryAst: ByteArray) {
|
||||
override fun processPackagePart(sourceFile: File, packagePartMetadata: ByteArray, binaryAst: ByteArray, header: ByteArray) {
|
||||
rpcProfiler.withMeasure(this) {
|
||||
facade.incrementalResultsConsumer_processPackagePart(sourceFile.path, packagePartMetadata, binaryAst)
|
||||
facade.incrementalResultsConsumer_processPackagePart(sourceFile.path, packagePartMetadata, binaryAst, header)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user