diff --git a/build-common/test/org/jetbrains/kotlin/serialization/js/DebugJsProtoBuf.java b/build-common/test/org/jetbrains/kotlin/serialization/js/DebugJsProtoBuf.java
index 7d18e79637e..9c1431be23e 100644
--- a/build-common/test/org/jetbrains/kotlin/serialization/js/DebugJsProtoBuf.java
+++ b/build-common/test/org/jetbrains/kotlin/serialization/js/DebugJsProtoBuf.java
@@ -21,6 +21,702 @@ public final class DebugJsProtoBuf {
registry.add(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.typeAnnotation);
registry.add(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.typeParameterAnnotation);
}
+ public interface HeaderOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.Header)
+ org.jetbrains.kotlin.protobuf.MessageOrBuilder {
+
+ /**
+ * optional int32 flags = 1;
+ *
+ *
+ *preRelease + *+ */ + boolean hasFlags(); + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + int getFlags(); + + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + boolean hasJsCodeBinaryVersion(); + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + int getJsCodeBinaryVersion(); + + /** + *
optional string package_fq_name = 3;
+ */
+ boolean hasPackageFqName();
+ /**
+ * optional string package_fq_name = 3;
+ */
+ java.lang.String getPackageFqName();
+ /**
+ * optional string package_fq_name = 3;
+ */
+ org.jetbrains.kotlin.protobuf.ByteString
+ getPackageFqNameBytes();
+ }
+ /**
+ * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Header}
+ */
+ public static final class Header extends
+ org.jetbrains.kotlin.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.Header)
+ HeaderOrBuilder {
+ // Use Header.newBuilder() to construct.
+ private Header(org.jetbrains.kotlin.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private Header(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final Header defaultInstance;
+ public static Header getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public Header getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final org.jetbrains.kotlin.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final org.jetbrains.kotlin.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private Header(
+ org.jetbrains.kotlin.protobuf.CodedInputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ org.jetbrains.kotlin.protobuf.UnknownFieldSet.Builder unknownFields =
+ org.jetbrains.kotlin.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ flags_ = input.readInt32();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ jsCodeBinaryVersion_ = input.readInt32();
+ break;
+ }
+ case 26: {
+ org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes();
+ bitField0_ |= 0x00000004;
+ packageFqName_ = bs;
+ break;
+ }
+ }
+ }
+ } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Header_descriptor;
+ }
+
+ protected org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.internal_static_org_jetbrains_kotlin_serialization_js_Header_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header.class, org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header.Builder.class);
+ }
+
+ public static org.jetbrains.kotlin.protobuf.Parseroptional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public boolean hasFlags() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public int getFlags() { + return flags_; + } + + public static final int JS_CODE_BINARY_VERSION_FIELD_NUMBER = 2; + private int jsCodeBinaryVersion_; + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public boolean hasJsCodeBinaryVersion() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public int getJsCodeBinaryVersion() { + return jsCodeBinaryVersion_; + } + + public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 3; + private java.lang.Object packageFqName_; + /** + *
optional string package_fq_name = 3;
+ */
+ public boolean hasPackageFqName() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public java.lang.String getPackageFqName() {
+ java.lang.Object ref = packageFqName_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ org.jetbrains.kotlin.protobuf.ByteString bs =
+ (org.jetbrains.kotlin.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ if (bs.isValidUtf8()) {
+ packageFqName_ = s;
+ }
+ return s;
+ }
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public org.jetbrains.kotlin.protobuf.ByteString
+ getPackageFqNameBytes() {
+ java.lang.Object ref = packageFqName_;
+ if (ref instanceof java.lang.String) {
+ org.jetbrains.kotlin.protobuf.ByteString b =
+ org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ packageFqName_ = b;
+ return b;
+ } else {
+ return (org.jetbrains.kotlin.protobuf.ByteString) ref;
+ }
+ }
+
+ private void initFields() {
+ flags_ = 0;
+ jsCodeBinaryVersion_ = 0;
+ packageFqName_ = "";
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt32(1, flags_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeInt32(2, jsCodeBinaryVersion_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(3, getPackageFqNameBytes());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeInt32Size(1, flags_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeInt32Size(2, jsCodeBinaryVersion_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeBytesSize(3, getPackageFqNameBytes());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseFrom(
+ org.jetbrains.kotlin.protobuf.ByteString data)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseFrom(
+ org.jetbrains.kotlin.protobuf.ByteString data,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseFrom(byte[] data)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseFrom(
+ byte[] data,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseFrom(
+ java.io.InputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseDelimitedFrom(
+ java.io.InputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseFrom(
+ org.jetbrains.kotlin.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header parseFrom(
+ org.jetbrains.kotlin.protobuf.CodedInputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf.Header prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ org.jetbrains.kotlin.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Header}
+ */
+ public static final class Builder extends
+ org.jetbrains.kotlin.protobuf.GeneratedMessage.Builderoptional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public boolean hasFlags() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public int getFlags() { + return flags_; + } + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public Builder setFlags(int value) { + bitField0_ |= 0x00000001; + flags_ = value; + onChanged(); + return this; + } + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public Builder clearFlags() { + bitField0_ = (bitField0_ & ~0x00000001); + flags_ = 0; + onChanged(); + return this; + } + + private int jsCodeBinaryVersion_ ; + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public boolean hasJsCodeBinaryVersion() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public int getJsCodeBinaryVersion() { + return jsCodeBinaryVersion_; + } + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public Builder setJsCodeBinaryVersion(int value) { + bitField0_ |= 0x00000002; + jsCodeBinaryVersion_ = value; + onChanged(); + return this; + } + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public Builder clearJsCodeBinaryVersion() { + bitField0_ = (bitField0_ & ~0x00000002); + jsCodeBinaryVersion_ = 0; + onChanged(); + return this; + } + + private java.lang.Object packageFqName_ = ""; + /** + *
optional string package_fq_name = 3;
+ */
+ public boolean hasPackageFqName() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public java.lang.String getPackageFqName() {
+ java.lang.Object ref = packageFqName_;
+ if (!(ref instanceof java.lang.String)) {
+ org.jetbrains.kotlin.protobuf.ByteString bs =
+ (org.jetbrains.kotlin.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ if (bs.isValidUtf8()) {
+ packageFqName_ = s;
+ }
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public org.jetbrains.kotlin.protobuf.ByteString
+ getPackageFqNameBytes() {
+ java.lang.Object ref = packageFqName_;
+ if (ref instanceof String) {
+ org.jetbrains.kotlin.protobuf.ByteString b =
+ org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ packageFqName_ = b;
+ return b;
+ } else {
+ return (org.jetbrains.kotlin.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public Builder setPackageFqName(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ packageFqName_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public Builder clearPackageFqName() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ packageFqName_ = getDefaultInstance().getPackageFqName();
+ onChanged();
+ return this;
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public Builder setPackageFqNameBytes(
+ org.jetbrains.kotlin.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ packageFqName_ = value;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.Header)
+ }
+
+ static {
+ defaultInstance = new Header(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.Header)
+ }
+
public interface FileOrBuilder extends
// @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.File)
org.jetbrains.kotlin.protobuf.MessageOrBuilder {
@@ -4716,6 +5412,11 @@ public final class DebugJsProtoBuf {
.newFileScopedGeneratedExtension(
org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class,
org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance());
+ private static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
+ internal_static_org_jetbrains_kotlin_serialization_js_Header_descriptor;
+ private static
+ org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_org_jetbrains_kotlin_serialization_js_Header_fieldAccessorTable;
private static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
internal_static_org_jetbrains_kotlin_serialization_js_File_descriptor;
private static
@@ -4753,63 +5454,65 @@ public final class DebugJsProtoBuf {
"\n#js/js.serializer/src/js.debug.proto\022%o" +
"rg.jetbrains.kotlin.serialization.js\0320co" +
"re/deserialization/src/descriptors.debug" +
- ".proto\"V\n\004File\022\n\n\002id\030\001 \002(\005\022B\n\nannotation" +
- "\030\002 \003(\0132..org.jetbrains.kotlin.serializat" +
- "ion.Annotation\"B\n\005Files\0229\n\004file\030\001 \003(\0132+." +
- "org.jetbrains.kotlin.serialization.js.Fi" +
- "le\"!\n\007Classes\022\026\n\nclass_name\030\001 \003(\005B\002\020\001\"\265\004" +
- "\n\007Library\022H\n\004kind\030\001 \001(\01623.org.jetbrains." +
- "kotlin.serialization.js.Library.Kind:\005PL",
- "AIN\022A\n\004part\030\002 \003(\01323.org.jetbrains.kotlin" +
- ".serialization.js.Library.Part\022\027\n\017import" +
- "ed_module\030\003 \003(\t\032\317\002\n\004Part\022@\n\007strings\030\001 \001(" +
- "\0132/.org.jetbrains.kotlin.serialization.S" +
- "tringTable\022O\n\017qualified_names\030\002 \001(\01326.or" +
- "g.jetbrains.kotlin.serialization.Qualifi" +
- "edNameTable\022<\n\007package\030\003 \001(\0132+.org.jetbr" +
- "ains.kotlin.serialization.Package\0228\n\005cla" +
- "ss\030\004 \003(\0132).org.jetbrains.kotlin.serializ" +
- "ation.Class\022<\n\005files\030\202\001 \001(\0132,.org.jetbra",
- "ins.kotlin.serialization.js.Files\"2\n\004Kin" +
- "d\022\t\n\005PLAIN\020\001\022\007\n\003AMD\020\002\022\r\n\tCOMMON_JS\020\003\022\007\n\003" +
- "UMD\020\004:E\n\017package_fq_name\022+.org.jetbrains" +
- ".kotlin.serialization.Package\030\203\001 \001(\005:t\n\020" +
- "class_annotation\022).org.jetbrains.kotlin." +
- "serialization.Class\030\202\001 \003(\0132..org.jetbrai" +
- "ns.kotlin.serialization.Annotation:L\n\030cl" +
- "ass_containing_file_id\022).org.jetbrains.k" +
- "otlin.serialization.Class\030\207\001 \001(\005:\200\001\n\026con" +
- "structor_annotation\022/.org.jetbrains.kotl",
- "in.serialization.Constructor\030\202\001 \003(\0132..or" +
- "g.jetbrains.kotlin.serialization.Annotat" +
- "ion:z\n\023function_annotation\022,.org.jetbrai" +
- "ns.kotlin.serialization.Function\030\202\001 \003(\0132" +
- "..org.jetbrains.kotlin.serialization.Ann" +
- "otation:R\n\033function_containing_file_id\022," +
- ".org.jetbrains.kotlin.serialization.Func" +
- "tion\030\207\001 \001(\005:z\n\023property_annotation\022,.org" +
- ".jetbrains.kotlin.serialization.Property" +
- "\030\202\001 \003(\0132..org.jetbrains.kotlin.serializa",
- "tion.Annotation:\210\001\n\022compile_time_value\022," +
- ".org.jetbrains.kotlin.serialization.Prop" +
- "erty\030\203\001 \001(\0132=.org.jetbrains.kotlin.seria" +
- "lization.Annotation.Argument.Value:R\n\033pr" +
- "operty_containing_file_id\022,.org.jetbrain" +
- "s.kotlin.serialization.Property\030\207\001 \001(\005:}" +
- "\n\025enum_entry_annotation\022-.org.jetbrains." +
- "kotlin.serialization.EnumEntry\030\202\001 \003(\0132.." +
+ ".proto\"P\n\006Header\022\r\n\005flags\030\001 \001(\005\022\036\n\026js_co" +
+ "de_binary_version\030\002 \001(\005\022\027\n\017package_fq_na" +
+ "me\030\003 \001(\t\"V\n\004File\022\n\n\002id\030\001 \002(\005\022B\n\nannotati" +
+ "on\030\002 \003(\0132..org.jetbrains.kotlin.serializ" +
+ "ation.Annotation\"B\n\005Files\0229\n\004file\030\001 \003(\0132" +
+ "+.org.jetbrains.kotlin.serialization.js." +
+ "File\"!\n\007Classes\022\026\n\nclass_name\030\001 \003(\005B\002\020\001\"",
+ "\265\004\n\007Library\022H\n\004kind\030\001 \001(\01623.org.jetbrain" +
+ "s.kotlin.serialization.js.Library.Kind:\005" +
+ "PLAIN\022A\n\004part\030\002 \003(\01323.org.jetbrains.kotl" +
+ "in.serialization.js.Library.Part\022\027\n\017impo" +
+ "rted_module\030\003 \003(\t\032\317\002\n\004Part\022@\n\007strings\030\001 " +
+ "\001(\0132/.org.jetbrains.kotlin.serialization" +
+ ".StringTable\022O\n\017qualified_names\030\002 \001(\01326." +
+ "org.jetbrains.kotlin.serialization.Quali" +
+ "fiedNameTable\022<\n\007package\030\003 \001(\0132+.org.jet" +
+ "brains.kotlin.serialization.Package\0228\n\005c",
+ "lass\030\004 \003(\0132).org.jetbrains.kotlin.serial" +
+ "ization.Class\022<\n\005files\030\202\001 \001(\0132,.org.jetb" +
+ "rains.kotlin.serialization.js.Files\"2\n\004K" +
+ "ind\022\t\n\005PLAIN\020\001\022\007\n\003AMD\020\002\022\r\n\tCOMMON_JS\020\003\022\007" +
+ "\n\003UMD\020\004:E\n\017package_fq_name\022+.org.jetbrai" +
+ "ns.kotlin.serialization.Package\030\203\001 \001(\005:t" +
+ "\n\020class_annotation\022).org.jetbrains.kotli" +
+ "n.serialization.Class\030\202\001 \003(\0132..org.jetbr" +
+ "ains.kotlin.serialization.Annotation:L\n\030" +
+ "class_containing_file_id\022).org.jetbrains",
+ ".kotlin.serialization.Class\030\207\001 \001(\005:\200\001\n\026c" +
+ "onstructor_annotation\022/.org.jetbrains.ko" +
+ "tlin.serialization.Constructor\030\202\001 \003(\0132.." +
"org.jetbrains.kotlin.serialization.Annot" +
- "ation:\201\001\n\024parameter_annotation\0222.org.jet",
- "brains.kotlin.serialization.ValueParamet" +
- "er\030\202\001 \003(\0132..org.jetbrains.kotlin.seriali" +
- "zation.Annotation:r\n\017type_annotation\022(.o" +
- "rg.jetbrains.kotlin.serialization.Type\030\202" +
- "\001 \003(\0132..org.jetbrains.kotlin.serializati" +
- "on.Annotation:\205\001\n\031type_parameter_annotat" +
- "ion\0221.org.jetbrains.kotlin.serialization" +
- ".TypeParameter\030\202\001 \003(\0132..org.jetbrains.ko" +
- "tlin.serialization.AnnotationB\021B\017DebugJs" +
- "ProtoBuf"
+ "ation:z\n\023function_annotation\022,.org.jetbr" +
+ "ains.kotlin.serialization.Function\030\202\001 \003(" +
+ "\0132..org.jetbrains.kotlin.serialization.A" +
+ "nnotation:R\n\033function_containing_file_id" +
+ "\022,.org.jetbrains.kotlin.serialization.Fu" +
+ "nction\030\207\001 \001(\005:z\n\023property_annotation\022,.o",
+ "rg.jetbrains.kotlin.serialization.Proper" +
+ "ty\030\202\001 \003(\0132..org.jetbrains.kotlin.seriali" +
+ "zation.Annotation:\210\001\n\022compile_time_value" +
+ "\022,.org.jetbrains.kotlin.serialization.Pr" +
+ "operty\030\203\001 \001(\0132=.org.jetbrains.kotlin.ser" +
+ "ialization.Annotation.Argument.Value:R\n\033" +
+ "property_containing_file_id\022,.org.jetbra" +
+ "ins.kotlin.serialization.Property\030\207\001 \001(\005" +
+ ":}\n\025enum_entry_annotation\022-.org.jetbrain" +
+ "s.kotlin.serialization.EnumEntry\030\202\001 \003(\0132",
+ "..org.jetbrains.kotlin.serialization.Ann" +
+ "otation:\201\001\n\024parameter_annotation\0222.org.j" +
+ "etbrains.kotlin.serialization.ValueParam" +
+ "eter\030\202\001 \003(\0132..org.jetbrains.kotlin.seria" +
+ "lization.Annotation:r\n\017type_annotation\022(" +
+ ".org.jetbrains.kotlin.serialization.Type" +
+ "\030\202\001 \003(\0132..org.jetbrains.kotlin.serializa" +
+ "tion.Annotation:\205\001\n\031type_parameter_annot" +
+ "ation\0221.org.jetbrains.kotlin.serializati" +
+ "on.TypeParameter\030\202\001 \003(\0132..org.jetbrains.",
+ "kotlin.serialization.AnnotationB\021B\017Debug" +
+ "JsProtoBuf"
};
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
@@ -4824,26 +5527,32 @@ public final class DebugJsProtoBuf {
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor[] {
org.jetbrains.kotlin.serialization.DebugProtoBuf.getDescriptor(),
}, assigner);
- internal_static_org_jetbrains_kotlin_serialization_js_File_descriptor =
+ internal_static_org_jetbrains_kotlin_serialization_js_Header_descriptor =
getDescriptor().getMessageTypes().get(0);
+ internal_static_org_jetbrains_kotlin_serialization_js_Header_fieldAccessorTable = new
+ org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_org_jetbrains_kotlin_serialization_js_Header_descriptor,
+ new java.lang.String[] { "Flags", "JsCodeBinaryVersion", "PackageFqName", });
+ internal_static_org_jetbrains_kotlin_serialization_js_File_descriptor =
+ getDescriptor().getMessageTypes().get(1);
internal_static_org_jetbrains_kotlin_serialization_js_File_fieldAccessorTable = new
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_js_File_descriptor,
new java.lang.String[] { "Id", "Annotation", });
internal_static_org_jetbrains_kotlin_serialization_js_Files_descriptor =
- getDescriptor().getMessageTypes().get(1);
+ getDescriptor().getMessageTypes().get(2);
internal_static_org_jetbrains_kotlin_serialization_js_Files_fieldAccessorTable = new
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_js_Files_descriptor,
new java.lang.String[] { "File", });
internal_static_org_jetbrains_kotlin_serialization_js_Classes_descriptor =
- getDescriptor().getMessageTypes().get(2);
+ getDescriptor().getMessageTypes().get(3);
internal_static_org_jetbrains_kotlin_serialization_js_Classes_fieldAccessorTable = new
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_js_Classes_descriptor,
new java.lang.String[] { "ClassName", });
internal_static_org_jetbrains_kotlin_serialization_js_Library_descriptor =
- getDescriptor().getMessageTypes().get(3);
+ getDescriptor().getMessageTypes().get(4);
internal_static_org_jetbrains_kotlin_serialization_js_Library_fieldAccessorTable = new
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_js_Library_descriptor,
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt
index a4e6dbf9008..f43d4c96f57 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt
@@ -40,5 +40,5 @@ object KotlinStubVersions {
// JS stub version should be increased if changes are made to js stub building subsystem (org.jetbrains.kotlin.idea.decompiler.js)
// Increasing this version will lead to reindexing of js binary files (see KotlinJavaScriptMetaFileType).
- const val JS_STUB_VERSION = BINARY_STUB_VERSION + 0
+ const val JS_STUB_VERSION = BINARY_STUB_VERSION + 1
}
diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt
index 7f47d2a871c..d2dee7020c5 100644
--- a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt
+++ b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt
@@ -17,7 +17,9 @@
package org.jetbrains.kotlin.utils
import org.jetbrains.kotlin.serialization.deserialization.BinaryVersion
+import java.io.DataInputStream
import java.io.File
+import java.io.InputStream
import javax.xml.bind.DatatypeConverter.parseBase64Binary
import javax.xml.bind.DatatypeConverter.printBase64Binary
@@ -31,10 +33,21 @@ class JsBinaryVersion(vararg numbers: Int) : BinaryVersion(*numbers) {
companion object {
@JvmField
- val INSTANCE = JsBinaryVersion(0, 7, 0)
+ val INSTANCE = JsBinaryVersion(0, 8, 0)
@JvmField
val INVALID_VERSION = JsBinaryVersion()
+
+ fun readFrom(stream: InputStream): JsBinaryVersion {
+ val dataInput = DataInputStream(stream)
+ val size = dataInput.readInt()
+
+ // We assume here that the version will always have 3 components. This is needed to prevent reading an unpredictable amount
+ // of integers from old .kjsm files (pre-1.1) because they did not have the version in the beginning
+ if (size != INSTANCE.toArray().size) return INVALID_VERSION
+
+ return JsBinaryVersion(*(1..size).map { dataInput.readInt() }.toIntArray())
+ }
}
}
diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/NameResolverImpl.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/NameResolverImpl.kt
index 7db8b69ad52..548a11393b8 100644
--- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/NameResolverImpl.kt
+++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/NameResolverImpl.kt
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.ProtoBuf.QualifiedNameTable.QualifiedName
-import java.io.InputStream
import java.util.*
class NameResolverImpl(
@@ -29,7 +28,7 @@ class NameResolverImpl(
private val qualifiedNames: ProtoBuf.QualifiedNameTable
) : NameResolver {
- override fun getString(index: Int) = strings.getString(index)
+ override fun getString(index: Int): String = strings.getString(index)
override fun getName(index: Int) = Name.guessByFirstCharacter(strings.getString(index))
@@ -65,12 +64,4 @@ class NameResolverImpl(
}
return Triple(packageNameSegments, relativeClassNameSegments, local)
}
-
- companion object {
- fun read(stream: InputStream): NameResolverImpl {
- val simpleNames = ProtoBuf.StringTable.parseDelimitedFrom(stream)
- val qualifiedNames = ProtoBuf.QualifiedNameTable.parseDelimitedFrom(stream)
- return NameResolverImpl(simpleNames, qualifiedNames)
- }
- }
}
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt
index c723a91af9d..f18d2d2f9e7 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt
@@ -77,7 +77,7 @@ fun buildDecompiledTextForBuiltIns(builtInFile: VirtualFile): DecompiledText {
}
is BuiltInDefinitionFile.Compatible -> {
val packageFqName = file.packageFqName
- val resolver = KotlinBuiltInDeserializerForDecompiler(file.packageDirectory, packageFqName, file.proto, file.nameResolver)
+ val resolver = KotlinBuiltInDeserializerForDecompiler(packageFqName, file.proto, file.nameResolver)
val declarations = arrayListOfoptional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + boolean hasFlags(); + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + int getFlags(); + + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + boolean hasJsCodeBinaryVersion(); + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + int getJsCodeBinaryVersion(); + + /** + *
optional string package_fq_name = 3;
+ */
+ boolean hasPackageFqName();
+ /**
+ * optional string package_fq_name = 3;
+ */
+ java.lang.String getPackageFqName();
+ /**
+ * optional string package_fq_name = 3;
+ */
+ org.jetbrains.kotlin.protobuf.ByteString
+ getPackageFqNameBytes();
+ }
+ /**
+ * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Header}
+ */
+ public static final class Header extends
+ org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
+ // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.Header)
+ HeaderOrBuilder {
+ // Use Header.newBuilder() to construct.
+ private Header(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private Header(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}
+
+ private static final Header defaultInstance;
+ public static Header getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public Header getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
+ private Header(
+ org.jetbrains.kotlin.protobuf.CodedInputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
+ org.jetbrains.kotlin.protobuf.ByteString.newOutput();
+ org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
+ org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
+ unknownFieldsOutput);
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFieldsCodedOutput,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ flags_ = input.readInt32();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ jsCodeBinaryVersion_ = input.readInt32();
+ break;
+ }
+ case 26: {
+ org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes();
+ bitField0_ |= 0x00000004;
+ packageFqName_ = bs;
+ break;
+ }
+ }
+ }
+ } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ try {
+ unknownFieldsCodedOutput.flush();
+ } catch (java.io.IOException e) {
+ // Should not happen
+ } finally {
+ unknownFields = unknownFieldsOutput.toByteString();
+ }
+ makeExtensionsImmutable();
+ }
+ }
+ public static org.jetbrains.kotlin.protobuf.Parseroptional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public boolean hasFlags() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public int getFlags() { + return flags_; + } + + public static final int JS_CODE_BINARY_VERSION_FIELD_NUMBER = 2; + private int jsCodeBinaryVersion_; + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public boolean hasJsCodeBinaryVersion() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public int getJsCodeBinaryVersion() { + return jsCodeBinaryVersion_; + } + + public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 3; + private java.lang.Object packageFqName_; + /** + *
optional string package_fq_name = 3;
+ */
+ public boolean hasPackageFqName() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public java.lang.String getPackageFqName() {
+ java.lang.Object ref = packageFqName_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ org.jetbrains.kotlin.protobuf.ByteString bs =
+ (org.jetbrains.kotlin.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ if (bs.isValidUtf8()) {
+ packageFqName_ = s;
+ }
+ return s;
+ }
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public org.jetbrains.kotlin.protobuf.ByteString
+ getPackageFqNameBytes() {
+ java.lang.Object ref = packageFqName_;
+ if (ref instanceof java.lang.String) {
+ org.jetbrains.kotlin.protobuf.ByteString b =
+ org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ packageFqName_ = b;
+ return b;
+ } else {
+ return (org.jetbrains.kotlin.protobuf.ByteString) ref;
+ }
+ }
+
+ private void initFields() {
+ flags_ = 0;
+ jsCodeBinaryVersion_ = 0;
+ packageFqName_ = "";
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt32(1, flags_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeInt32(2, jsCodeBinaryVersion_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(3, getPackageFqNameBytes());
+ }
+ output.writeRawBytes(unknownFields);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeInt32Size(1, flags_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeInt32Size(2, jsCodeBinaryVersion_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeBytesSize(3, getPackageFqNameBytes());
+ }
+ size += unknownFields.size();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseFrom(
+ org.jetbrains.kotlin.protobuf.ByteString data)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseFrom(
+ org.jetbrains.kotlin.protobuf.ByteString data,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseFrom(byte[] data)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseFrom(
+ byte[] data,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseFrom(
+ java.io.InputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseDelimitedFrom(
+ java.io.InputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseFrom(
+ org.jetbrains.kotlin.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parseFrom(
+ org.jetbrains.kotlin.protobuf.CodedInputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ /**
+ * Protobuf type {@code org.jetbrains.kotlin.serialization.js.Header}
+ */
+ public static final class Builder extends
+ org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
+ org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header, Builder>
+ implements
+ // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.Header)
+ org.jetbrains.kotlin.serialization.js.JsProtoBuf.HeaderOrBuilder {
+ // Construct using org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ flags_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ jsCodeBinaryVersion_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ packageFqName_ = "";
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header getDefaultInstanceForType() {
+ return org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header.getDefaultInstance();
+ }
+
+ public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header build() {
+ org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header buildPartial() {
+ org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header result = new org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.flags_ = flags_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.jsCodeBinaryVersion_ = jsCodeBinaryVersion_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.packageFqName_ = packageFqName_;
+ result.bitField0_ = to_bitField0_;
+ return result;
+ }
+
+ public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header other) {
+ if (other == org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header.getDefaultInstance()) return this;
+ if (other.hasFlags()) {
+ setFlags(other.getFlags());
+ }
+ if (other.hasJsCodeBinaryVersion()) {
+ setJsCodeBinaryVersion(other.getJsCodeBinaryVersion());
+ }
+ if (other.hasPackageFqName()) {
+ bitField0_ |= 0x00000004;
+ packageFqName_ = other.packageFqName_;
+
+ }
+ setUnknownFields(
+ getUnknownFields().concat(other.unknownFields));
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ org.jetbrains.kotlin.protobuf.CodedInputStream input,
+ org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.jetbrains.kotlin.serialization.js.JsProtoBuf.Header) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ private int flags_ ;
+ /**
+ * optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public boolean hasFlags() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public int getFlags() { + return flags_; + } + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public Builder setFlags(int value) { + bitField0_ |= 0x00000001; + flags_ = value; + + return this; + } + /** + *
optional int32 flags = 1;
+ *
+ * + *preRelease + *+ */ + public Builder clearFlags() { + bitField0_ = (bitField0_ & ~0x00000001); + flags_ = 0; + + return this; + } + + private int jsCodeBinaryVersion_ ; + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public boolean hasJsCodeBinaryVersion() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public int getJsCodeBinaryVersion() { + return jsCodeBinaryVersion_; + } + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public Builder setJsCodeBinaryVersion(int value) { + bitField0_ |= 0x00000002; + jsCodeBinaryVersion_ = value; + + return this; + } + /** + *
optional int32 js_code_binary_version = 2;
+ *
+ * + * (patch << 16) + (minor << 8) + major + *+ */ + public Builder clearJsCodeBinaryVersion() { + bitField0_ = (bitField0_ & ~0x00000002); + jsCodeBinaryVersion_ = 0; + + return this; + } + + private java.lang.Object packageFqName_ = ""; + /** + *
optional string package_fq_name = 3;
+ */
+ public boolean hasPackageFqName() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public java.lang.String getPackageFqName() {
+ java.lang.Object ref = packageFqName_;
+ if (!(ref instanceof java.lang.String)) {
+ org.jetbrains.kotlin.protobuf.ByteString bs =
+ (org.jetbrains.kotlin.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ if (bs.isValidUtf8()) {
+ packageFqName_ = s;
+ }
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public org.jetbrains.kotlin.protobuf.ByteString
+ getPackageFqNameBytes() {
+ java.lang.Object ref = packageFqName_;
+ if (ref instanceof String) {
+ org.jetbrains.kotlin.protobuf.ByteString b =
+ org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ packageFqName_ = b;
+ return b;
+ } else {
+ return (org.jetbrains.kotlin.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public Builder setPackageFqName(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ packageFqName_ = value;
+
+ return this;
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public Builder clearPackageFqName() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ packageFqName_ = getDefaultInstance().getPackageFqName();
+
+ return this;
+ }
+ /**
+ * optional string package_fq_name = 3;
+ */
+ public Builder setPackageFqNameBytes(
+ org.jetbrains.kotlin.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ packageFqName_ = value;
+
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.Header)
+ }
+
+ static {
+ defaultInstance = new Header(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.Header)
+ }
+
public interface FileOrBuilder extends
// @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.File)
org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {
diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt
index 2c2b6f2e177..57bca5ce7e7 100644
--- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt
+++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt
@@ -31,9 +31,11 @@ import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.StringTableImpl
import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfiguration
import org.jetbrains.kotlin.storage.StorageManager
+import org.jetbrains.kotlin.utils.JsBinaryVersion
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
+import java.io.DataOutputStream
import java.util.*
import java.util.zip.GZIPInputStream
import java.util.zip.GZIPOutputStream
@@ -70,31 +72,7 @@ object KotlinJavascriptSerializationUtil {
importedModules.forEach { builder.addImportedModule(it) }
for (fqName in getPackagesFqNames(module)) {
- val part = JsProtoBuf.Library.Part.newBuilder()
- serializePackage(bindingContext, module, fqName, object : SerializerCallbacks {
- override fun writeClass(classId: ClassId, classProto: ProtoBuf.Class) {
- part.addClass_(classProto)
- }
-
- override fun writePackage(fqName: FqName, packageProto: ProtoBuf.Package) {
- part.`package` = packageProto
- }
-
- override fun writeFiles(fqName: FqName, filesProto: JsProtoBuf.Files) {
- part.files = filesProto
- }
-
- override fun writeStringTable(fqName: FqName, stringTable: StringTableImpl) {
- val (strings, qualifiedNames) = stringTable.buildProto()
- part.strings = strings
- part.qualifiedNames = qualifiedNames
- }
-
- override fun writeClassNames(fqName: FqName, classNames: List