JS: don't load binary AST unless required by the inliner

This commit is contained in:
Anton Bannykh
2018-11-22 15:20:25 +03:00
parent c83b6d46cc
commit 6d26bf9622
22 changed files with 1165 additions and 87 deletions
@@ -25,7 +25,7 @@ interface IncrementalResultsConsumer {
fun processHeader(headerMetadata: ByteArray)
/** processes new package part metadata and binary tree for compiled source file */
fun processPackagePart(sourceFile: File, packagePartMetadata: ByteArray, binaryAst: ByteArray)
fun processPackagePart(sourceFile: File, packagePartMetadata: ByteArray, binaryAst: ByteArray, header: ByteArray)
/**
* [inlineFunction] is expected to be a body of inline function (an instance of [JsNode]),
@@ -84,8 +84,8 @@ class IncrementalResultsConsumerImpl : IncrementalResultsConsumer {
this.headerMetadata = headerMetadata
}
override fun processPackagePart(sourceFile: File, packagePartMetadata: ByteArray, binaryAst: ByteArray) {
_packageParts.put(sourceFile, TranslationResultValue(packagePartMetadata, binaryAst))
override fun processPackagePart(sourceFile: File, packagePartMetadata: ByteArray, binaryAst: ByteArray, header: ByteArray) {
_packageParts.put(sourceFile, TranslationResultValue(packagePartMetadata, binaryAst, header))
}
override fun processInlineFunctions(functions: Collection<JsInlineFunctionHash>) {
@@ -16,5 +16,5 @@
package org.jetbrains.kotlin.incremental.js
data class TranslationResultValue(val metadata: ByteArray, val binaryAst: ByteArray)
data class TranslationResultValue(val metadata: ByteArray, val binaryAst: ByteArray, val header: ByteArray)