chore: remove @PrioritizedInitialization.
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt
index bc557bf..0e2cca4 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt
@@ -283,8 +283,6 @@
             }
         }
 
-        result.classesWithPrioritizedInitialization.addAll(staticContext.classesWithPrioritizedInitialization.map { nameGenerator.getNameForClass(it.owner) })
-
         staticContext.classModels.entries.forEach { (symbol, model) ->
             result.classes[nameGenerator.getNameForClass(symbol.owner)] =
                 JsIrIcClassModel(model.superClasses.map { staticContext.getNameForClass(it.owner) }).also {
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/JsClassGenerator.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/JsClassGenerator.kt
index b5cc6d9..89e1f8d 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/JsClassGenerator.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/JsClassGenerator.kt
@@ -208,12 +208,7 @@
             }
         }
 
-        if (irClass.hasAnnotation(JsAnnotations.PrioritizedInitialization)) {
-            context.staticContext.classesWithPrioritizedInitialization.add(irClass.symbol)
-        } else {
-            classModel.preDeclarationBlock.statements += generateSetMetadataCall()
-        }
-
+        classModel.postDeclarationBlock.statements += generateSetMetadataCall()
         context.staticContext.classModels[irClass.symbol] = classModel
 
         return classBlock
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/JsIrProgramFragment.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/JsIrProgramFragment.kt
index b5b3a43..ec65d90 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/JsIrProgramFragment.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/JsIrProgramFragment.kt
@@ -20,7 +20,6 @@
     val imports = mutableMapOf<String, JsExpression>()
     var dts: TypeScriptFragment? = null
     val classes = mutableMapOf<JsName, JsIrIcClassModel>()
-    val classesWithPrioritizedInitialization = mutableSetOf<JsName>()
     val initializers = JsCompositeBlock()
     var mainFunction: JsStatement? = null
     var testFunInvocation: JsStatement? = null
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/Merger.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/Merger.kt
index 61a4719..4597479 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/Merger.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/Merger.kt
@@ -39,11 +39,6 @@
                     importStatements.putIfAbsent(declaration, JsVars(JsVars.JsVar(importName, rename(importExpression))))
                 }
 
-                val classesWithPrioritizedInitialization = (mutableSetOf<JsName>() + f.classesWithPrioritizedInitialization)
-                    .also { f.classesWithPrioritizedInitialization.clear() }
-
-                classesWithPrioritizedInitialization.forEach { f.classesWithPrioritizedInitialization.add(rename(it)) }
-
                 val classModels = (mutableMapOf<JsName, JsIrIcClassModel>() + f.classes)
                     .also { f.classes.clear() }
 
@@ -217,12 +212,6 @@
             classModels += it.classes
             initializerBlock.statements += it.initializers.statements
             polyfillDeclarationBlock.statements += it.polyfills.statements
-
-            for (name in it.classesWithPrioritizedInitialization) {
-                val model = classModels.remove(name) ?: continue
-                preDeclarationBlock.statements += model.preDeclarationBlock
-                postDeclarationBlock.statements += model.postDeclarationBlock
-            }
         }
 
         // sort member forwarding code
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/AnnotationUtils.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/AnnotationUtils.kt
index 6aab5fb..a6ae036 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/AnnotationUtils.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/AnnotationUtils.kt
@@ -30,7 +30,6 @@
     val jsNativeInvoke = FqName("kotlin.js.nativeInvoke")
     val jsFunFqn = FqName("kotlin.js.JsFun")
     val JsPolyfillFqn = FqName("kotlin.js.JsPolyfill")
-    val PrioritizedInitialization = FqName("kotlin.js.PrioritizedInitialization")
 }
 
 @Suppress("UNCHECKED_CAST")
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/JsStaticContext.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/JsStaticContext.kt
index 6d73315..49a16f9 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/JsStaticContext.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/JsStaticContext.kt
@@ -20,7 +20,6 @@
 ) : IrNamer by irNamer {
     val intrinsics = JsIntrinsicTransformers(backendContext)
     val classModels = mutableMapOf<IrClassSymbol, JsIrClassModel>()
-    val classesWithPrioritizedInitialization = mutableSetOf<IrClassSymbol>()
 
     val initializerBlock = JsCompositeBlock()
 }
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/serialization/JsIrAstDeserializer.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/serialization/JsIrAstDeserializer.kt
index 0246b72..cc9c57a 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/serialization/JsIrAstDeserializer.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/serialization/JsIrAstDeserializer.kt
@@ -72,8 +72,6 @@
 
         proto.irClassModelList.associateTo(fragment.classes) { clsProto -> deserialize(clsProto) }
 
-        proto.classesWithPrioritizedInitializationList.mapTo(fragment.classesWithPrioritizedInitialization) { deserializeName(it) }
-
 
         if (proto.hasTestsInvocation()) {
             fragment.testFunInvocation = deserialize(proto.testsInvocation)
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/serialization/JsIrAstSerializer.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/serialization/JsIrAstSerializer.kt
index 58807ba..f9086f4 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/serialization/JsIrAstSerializer.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/serialization/JsIrAstSerializer.kt
@@ -74,10 +74,6 @@
 
         fragment.classes.entries.forEach { (name, model) -> fragmentBuilder.addIrClassModel(serialize(name, model)) }
 
-        fragment.classesWithPrioritizedInitialization.forEach {
-            fragmentBuilder.addClassesWithPrioritizedInitialization(serialize(it))
-        }
-
         fragment.testFunInvocation?.let {
             fragmentBuilder.setTestsInvocation(serialize(it))
         }
diff --git a/js/js.serializer/src/js-ast.proto b/js/js.serializer/src/js-ast.proto
index 830a19f..5124cd1 100644
--- a/js/js.serializer/src/js-ast.proto
+++ b/js/js.serializer/src/js-ast.proto
@@ -439,7 +439,6 @@
     repeated int32 definitions = 17;
     optional CompositeBlock polyfills = 18;
     repeated int32 optionalCrossModuleImports = 19;
-    repeated int32 classes_with_prioritized_initialization = 20;
 }
 
 message InlinedLocalDeclarations {
diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstProtoBuf.java b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstProtoBuf.java
index 1631138..dd3c24b 100644
--- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstProtoBuf.java
+++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstProtoBuf.java
@@ -34613,19 +34613,6 @@
      * <code>repeated int32 optionalCrossModuleImports = 19;</code>
      */
     int getOptionalCrossModuleImports(int index);
-
-    /**
-     * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-     */
-    java.util.List<java.lang.Integer> getClassesWithPrioritizedInitializationList();
-    /**
-     * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-     */
-    int getClassesWithPrioritizedInitializationCount();
-    /**
-     * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-     */
-    int getClassesWithPrioritizedInitialization(int index);
   }
   /**
    * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Fragment}
@@ -34878,27 +34865,6 @@
               input.popLimit(limit);
               break;
             }
-            case 160: {
-              if (!((mutable_bitField0_ & 0x00080000) == 0x00080000)) {
-                classesWithPrioritizedInitialization_ = new java.util.ArrayList<java.lang.Integer>();
-                mutable_bitField0_ |= 0x00080000;
-              }
-              classesWithPrioritizedInitialization_.add(input.readInt32());
-              break;
-            }
-            case 162: {
-              int length = input.readRawVarint32();
-              int limit = input.pushLimit(length);
-              if (!((mutable_bitField0_ & 0x00080000) == 0x00080000) && input.getBytesUntilLimit() > 0) {
-                classesWithPrioritizedInitialization_ = new java.util.ArrayList<java.lang.Integer>();
-                mutable_bitField0_ |= 0x00080000;
-              }
-              while (input.getBytesUntilLimit() > 0) {
-                classesWithPrioritizedInitialization_.add(input.readInt32());
-              }
-              input.popLimit(limit);
-              break;
-            }
           }
         }
       } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
@@ -34937,9 +34903,6 @@
         if (((mutable_bitField0_ & 0x00040000) == 0x00040000)) {
           optionalCrossModuleImports_ = java.util.Collections.unmodifiableList(optionalCrossModuleImports_);
         }
-        if (((mutable_bitField0_ & 0x00080000) == 0x00080000)) {
-          classesWithPrioritizedInitialization_ = java.util.Collections.unmodifiableList(classesWithPrioritizedInitialization_);
-        }
         try {
           unknownFieldsCodedOutput.flush();
         } catch (java.io.IOException e) {
@@ -35479,28 +35442,6 @@
       return optionalCrossModuleImports_.get(index);
     }
 
-    public static final int CLASSES_WITH_PRIORITIZED_INITIALIZATION_FIELD_NUMBER = 20;
-    private java.util.List<java.lang.Integer> classesWithPrioritizedInitialization_;
-    /**
-     * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-     */
-    public java.util.List<java.lang.Integer>
-        getClassesWithPrioritizedInitializationList() {
-      return classesWithPrioritizedInitialization_;
-    }
-    /**
-     * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-     */
-    public int getClassesWithPrioritizedInitializationCount() {
-      return classesWithPrioritizedInitialization_.size();
-    }
-    /**
-     * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-     */
-    public int getClassesWithPrioritizedInitialization(int index) {
-      return classesWithPrioritizedInitialization_.get(index);
-    }
-
     private void initFields() {
       importedModule_ = java.util.Collections.emptyList();
       importEntry_ = java.util.Collections.emptyList();
@@ -35521,7 +35462,6 @@
       definitions_ = java.util.Collections.emptyList();
       polyfills_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.getDefaultInstance();
       optionalCrossModuleImports_ = java.util.Collections.emptyList();
-      classesWithPrioritizedInitialization_ = java.util.Collections.emptyList();
     }
     private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
@@ -35677,9 +35617,6 @@
       for (int i = 0; i < optionalCrossModuleImports_.size(); i++) {
         output.writeInt32(19, optionalCrossModuleImports_.get(i));
       }
-      for (int i = 0; i < classesWithPrioritizedInitialization_.size(); i++) {
-        output.writeInt32(20, classesWithPrioritizedInitialization_.get(i));
-      }
       output.writeRawBytes(unknownFields);
     }
 
@@ -35775,15 +35712,6 @@
         size += dataSize;
         size += 2 * getOptionalCrossModuleImportsList().size();
       }
-      {
-        int dataSize = 0;
-        for (int i = 0; i < classesWithPrioritizedInitialization_.size(); i++) {
-          dataSize += org.jetbrains.kotlin.protobuf.CodedOutputStream
-            .computeInt32SizeNoTag(classesWithPrioritizedInitialization_.get(i));
-        }
-        size += dataSize;
-        size += 2 * getClassesWithPrioritizedInitializationList().size();
-      }
       size += unknownFields.size();
       memoizedSerializedSize = size;
       return size;
@@ -35916,8 +35844,6 @@
         bitField0_ = (bitField0_ & ~0x00020000);
         optionalCrossModuleImports_ = java.util.Collections.emptyList();
         bitField0_ = (bitField0_ & ~0x00040000);
-        classesWithPrioritizedInitialization_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00080000);
         return this;
       }
 
@@ -36027,11 +35953,6 @@
           bitField0_ = (bitField0_ & ~0x00040000);
         }
         result.optionalCrossModuleImports_ = optionalCrossModuleImports_;
-        if (((bitField0_ & 0x00080000) == 0x00080000)) {
-          classesWithPrioritizedInitialization_ = java.util.Collections.unmodifiableList(classesWithPrioritizedInitialization_);
-          bitField0_ = (bitField0_ & ~0x00080000);
-        }
-        result.classesWithPrioritizedInitialization_ = classesWithPrioritizedInitialization_;
         result.bitField0_ = to_bitField0_;
         return result;
       }
@@ -36169,16 +36090,6 @@
           }
           
         }
-        if (!other.classesWithPrioritizedInitialization_.isEmpty()) {
-          if (classesWithPrioritizedInitialization_.isEmpty()) {
-            classesWithPrioritizedInitialization_ = other.classesWithPrioritizedInitialization_;
-            bitField0_ = (bitField0_ & ~0x00080000);
-          } else {
-            ensureClassesWithPrioritizedInitializationIsMutable();
-            classesWithPrioritizedInitialization_.addAll(other.classesWithPrioritizedInitialization_);
-          }
-          
-        }
         setUnknownFields(
             getUnknownFields().concat(other.unknownFields));
         return this;
@@ -37967,72 +37878,6 @@
         return this;
       }
 
-      private java.util.List<java.lang.Integer> classesWithPrioritizedInitialization_ = java.util.Collections.emptyList();
-      private void ensureClassesWithPrioritizedInitializationIsMutable() {
-        if (!((bitField0_ & 0x00080000) == 0x00080000)) {
-          classesWithPrioritizedInitialization_ = new java.util.ArrayList<java.lang.Integer>(classesWithPrioritizedInitialization_);
-          bitField0_ |= 0x00080000;
-         }
-      }
-      /**
-       * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-       */
-      public java.util.List<java.lang.Integer>
-          getClassesWithPrioritizedInitializationList() {
-        return java.util.Collections.unmodifiableList(classesWithPrioritizedInitialization_);
-      }
-      /**
-       * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-       */
-      public int getClassesWithPrioritizedInitializationCount() {
-        return classesWithPrioritizedInitialization_.size();
-      }
-      /**
-       * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-       */
-      public int getClassesWithPrioritizedInitialization(int index) {
-        return classesWithPrioritizedInitialization_.get(index);
-      }
-      /**
-       * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-       */
-      public Builder setClassesWithPrioritizedInitialization(
-          int index, int value) {
-        ensureClassesWithPrioritizedInitializationIsMutable();
-        classesWithPrioritizedInitialization_.set(index, value);
-        
-        return this;
-      }
-      /**
-       * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-       */
-      public Builder addClassesWithPrioritizedInitialization(int value) {
-        ensureClassesWithPrioritizedInitializationIsMutable();
-        classesWithPrioritizedInitialization_.add(value);
-        
-        return this;
-      }
-      /**
-       * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-       */
-      public Builder addAllClassesWithPrioritizedInitialization(
-          java.lang.Iterable<? extends java.lang.Integer> values) {
-        ensureClassesWithPrioritizedInitializationIsMutable();
-        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
-            values, classesWithPrioritizedInitialization_);
-        
-        return this;
-      }
-      /**
-       * <code>repeated int32 classes_with_prioritized_initialization = 20;</code>
-       */
-      public Builder clearClassesWithPrioritizedInitialization() {
-        classesWithPrioritizedInitialization_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00080000);
-        
-        return this;
-      }
-
       // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Fragment)
     }
 
diff --git a/libraries/stdlib/js-ir/runtime/BitMask.kt b/libraries/stdlib/js-ir/runtime/BitMask.kt
index d371042..43faba1 100644
--- a/libraries/stdlib/js-ir/runtime/BitMask.kt
+++ b/libraries/stdlib/js-ir/runtime/BitMask.kt
@@ -45,7 +45,6 @@
     return result
 }
 
-@PrioritizedInitialization
 internal class BitMask(activeBits: Array<Int>) {
     var intArray: IntArray = run {
         if (activeBits.size == 0) {
diff --git a/libraries/stdlib/js-ir/runtime/kotlinJsHacks.kt b/libraries/stdlib/js-ir/runtime/kotlinJsHacks.kt
index 754ed8b..b9b02b7 100644
--- a/libraries/stdlib/js-ir/runtime/kotlinJsHacks.kt
+++ b/libraries/stdlib/js-ir/runtime/kotlinJsHacks.kt
@@ -51,6 +51,3 @@
  */
 @Target(AnnotationTarget.CLASS)
 internal annotation class JsImplicitExport
-
-@Target(AnnotationTarget.CLASS)
-internal annotation class PrioritizedInitialization
diff --git a/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt b/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt
index 15fcea7..7870947 100644
--- a/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt
+++ b/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt
@@ -34,7 +34,6 @@
 // There was a problem with per-module compilation (KT-55758) when the top-level state (iid) was reinitialized during stdlib module initialization
 // As a result we miss already incremented iid and had the same iids in two different modules
 // So, to keep the state consistent it was moved into the object
-@PrioritizedInitialization
 private object InterfaceIdService {
     var iid: Int = 0
 }