diff --git a/build-common/test/org/jetbrains/kotlin/serialization/js/ast/DebugJsAstProtoBuf.java b/build-common/test/org/jetbrains/kotlin/serialization/js/ast/DebugJsAstProtoBuf.java
index 90073f8b01b..48e2dd0726a 100644
--- a/build-common/test/org/jetbrains/kotlin/serialization/js/ast/DebugJsAstProtoBuf.java
+++ b/build-common/test/org/jetbrains/kotlin/serialization/js/ast/DebugJsAstProtoBuf.java
@@ -725,6 +725,15 @@ public final class DebugJsAstProtoBuf {
*/
org.jetbrains.kotlin.serialization.js.ast.DebugJsAstProtoBuf.SideEffects getSideEffects();
+ /**
+ * optional int32 local_alias = 5;
+ */
+ boolean hasLocalAlias();
+ /**
+ * optional int32 local_alias = 5;
+ */
+ int getLocalAlias();
+
/**
* optional int32 simple_name_reference = 22;
*/
@@ -1068,6 +1077,11 @@ public final class DebugJsAstProtoBuf {
}
break;
}
+ case 40: {
+ bitField0_ |= 0x00000010;
+ localAlias_ = input.readInt32();
+ break;
+ }
case 176: {
expressionCase_ = 22;
expression_ = input.readInt32();
@@ -1484,6 +1498,21 @@ public final class DebugJsAstProtoBuf {
return sideEffects_;
}
+ public static final int LOCAL_ALIAS_FIELD_NUMBER = 5;
+ private int localAlias_;
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public boolean hasLocalAlias() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public int getLocalAlias() {
+ return localAlias_;
+ }
+
public static final int SIMPLE_NAME_REFERENCE_FIELD_NUMBER = 22;
/**
* optional int32 simple_name_reference = 22;
@@ -1999,6 +2028,7 @@ public final class DebugJsAstProtoBuf {
location_ = org.jetbrains.kotlin.serialization.js.ast.DebugJsAstProtoBuf.Location.getDefaultInstance();
synthetic_ = false;
sideEffects_ = org.jetbrains.kotlin.serialization.js.ast.DebugJsAstProtoBuf.SideEffects.AFFECTS_STATE;
+ localAlias_ = 0;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@@ -2109,6 +2139,9 @@ public final class DebugJsAstProtoBuf {
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeEnum(4, sideEffects_.getNumber());
}
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeInt32(5, localAlias_);
+ }
if (expressionCase_ == 22) {
output.writeInt32(
22, (int)((java.lang.Integer) expression_));
@@ -2201,6 +2234,10 @@ public final class DebugJsAstProtoBuf {
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
.computeEnumSize(4, sideEffects_.getNumber());
}
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeInt32Size(5, localAlias_);
+ }
if (expressionCase_ == 22) {
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
.computeInt32Size(
@@ -2419,6 +2456,8 @@ public final class DebugJsAstProtoBuf {
bitField0_ = (bitField0_ & ~0x00000004);
sideEffects_ = org.jetbrains.kotlin.serialization.js.ast.DebugJsAstProtoBuf.SideEffects.AFFECTS_STATE;
bitField0_ = (bitField0_ & ~0x00000008);
+ localAlias_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000010);
expressionCase_ = 0;
expression_ = null;
return this;
@@ -2469,6 +2508,10 @@ public final class DebugJsAstProtoBuf {
to_bitField0_ |= 0x00000008;
}
result.sideEffects_ = sideEffects_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.localAlias_ = localAlias_;
if (expressionCase_ == 22) {
result.expression_ = expression_;
}
@@ -2629,6 +2672,9 @@ public final class DebugJsAstProtoBuf {
if (other.hasSideEffects()) {
setSideEffects(other.getSideEffects());
}
+ if (other.hasLocalAlias()) {
+ setLocalAlias(other.getLocalAlias());
+ }
switch (other.getExpressionCase()) {
case SIMPLE_NAME_REFERENCE: {
setSimpleNameReference(other.getSimpleNameReference());
@@ -3059,6 +3105,38 @@ public final class DebugJsAstProtoBuf {
return this;
}
+ private int localAlias_ ;
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public boolean hasLocalAlias() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public int getLocalAlias() {
+ return localAlias_;
+ }
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public Builder setLocalAlias(int value) {
+ bitField0_ |= 0x00000010;
+ localAlias_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public Builder clearLocalAlias() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ localAlias_ = 0;
+ onChanged();
+ return this;
+ }
+
/**
* optional int32 simple_name_reference = 22;
*/
@@ -48737,285 +48815,286 @@ public final class DebugJsAstProtoBuf {
"\n\'js/js.serializer/src/js-ast.debug.prot" +
"o\022)org.jetbrains.kotlin.serialization.js" +
".ast\"0\n\010Location\022\021\n\tstartLine\030\001 \002(\005\022\021\n\ts" +
- "tartChar\030\002 \002(\005\"\261\r\n\nExpression\022\016\n\006fileId\030" +
+ "tartChar\030\002 \002(\005\"\306\r\n\nExpression\022\016\n\006fileId\030" +
"\001 \001(\005\022E\n\010location\030\002 \001(\01323.org.jetbrains." +
"kotlin.serialization.js.ast.Location\022\030\n\t" +
"synthetic\030\003 \001(\010:\005false\022[\n\014side_effects\030\004" +
" \001(\01626.org.jetbrains.kotlin.serializatio" +
- "n.js.ast.SideEffects:\rAFFECTS_STATE\022\037\n\025s" +
- "imple_name_reference\030\026 \001(\005H\000\022N\n\014this_lit",
- "eral\030\027 \001(\01326.org.jetbrains.kotlin.serial" +
- "ization.js.ast.ThisLiteralH\000\022N\n\014null_lit" +
- "eral\030\030 \001(\01326.org.jetbrains.kotlin.serial" +
- "ization.js.ast.NullLiteralH\000\022N\n\014true_lit" +
- "eral\030\031 \001(\01326.org.jetbrains.kotlin.serial" +
- "ization.js.ast.TrueLiteralH\000\022P\n\rfalse_li" +
- "teral\030\032 \001(\01327.org.jetbrains.kotlin.seria" +
- "lization.js.ast.FalseLiteralH\000\022\030\n\016string" +
- "_literal\030\033 \001(\005H\000\022S\n\017reg_exp_literal\030\034 \001(" +
- "\01328.org.jetbrains.kotlin.serialization.j",
- "s.ast.RegExpLiteralH\000\022\025\n\013int_literal\030\035 \001" +
- "(\005H\000\022\030\n\016double_literal\030\036 \001(\001H\000\022P\n\rarray_" +
- "literal\030\037 \001(\01327.org.jetbrains.kotlin.ser" +
- "ialization.js.ast.ArrayLiteralH\000\022R\n\016obje" +
- "ct_literal\030 \001(\01328.org.jetbrains.kotlin." +
- "serialization.js.ast.ObjectLiteralH\000\022G\n\010" +
- "function\030! \001(\01323.org.jetbrains.kotlin.se" +
- "rialization.js.ast.FunctionH\000\022L\n\013doc_com" +
- "ment\030\" \001(\01325.org.jetbrains.kotlin.serial" +
- "ization.js.ast.DocCommentH\000\022L\n\006binary\030# ",
- "\001(\0132:.org.jetbrains.kotlin.serialization" +
- ".js.ast.BinaryOperationH\000\022J\n\005unary\030$ \001(\013" +
- "29.org.jetbrains.kotlin.serialization.js" +
- ".ast.UnaryOperationH\000\022M\n\013conditional\030% \001" +
- "(\01326.org.jetbrains.kotlin.serialization." +
- "js.ast.ConditionalH\000\022N\n\014array_access\030& \001" +
- "(\01326.org.jetbrains.kotlin.serialization." +
- "js.ast.ArrayAccessH\000\022R\n\016name_reference\030\'" +
- " \001(\01328.org.jetbrains.kotlin.serializatio" +
- "n.js.ast.NameReferenceH\000\022Z\n\022property_ref",
- "erence\030( \001(\0132<.org.jetbrains.kotlin.seri" +
- "alization.js.ast.PropertyReferenceH\000\022K\n\n" +
- "invocation\030) \001(\01325.org.jetbrains.kotlin." +
- "serialization.js.ast.InvocationH\000\022Q\n\rins" +
- "tantiation\030* \001(\01328.org.jetbrains.kotlin." +
- "serialization.js.ast.InstantiationH\000B\014\n\n" +
- "expression\"\r\n\013ThisLiteral\"\r\n\013NullLiteral" +
- "\"\r\n\013TrueLiteral\"\016\n\014FalseLiteral\"C\n\rRegEx" +
- "pLiteral\022\031\n\021pattern_string_id\030\001 \002(\005\022\027\n\017f" +
- "lags_string_id\030\002 \001(\005\"V\n\014ArrayLiteral\022F\n\007",
- "element\030\001 \003(\01325.org.jetbrains.kotlin.ser" +
- "ialization.js.ast.Expression\"v\n\rObjectLi" +
- "teral\022L\n\005entry\030\001 \003(\0132=.org.jetbrains.kot" +
- "lin.serialization.js.ast.ObjectLiteralEn" +
- "try\022\027\n\tmultiline\030\002 \001(\010:\004true\"\236\001\n\022ObjectL" +
- "iteralEntry\022B\n\003key\030\001 \002(\01325.org.jetbrains" +
- ".kotlin.serialization.js.ast.Expression\022" +
- "D\n\005value\030\002 \002(\01325.org.jetbrains.kotlin.se" +
- "rialization.js.ast.Expression\"\276\001\n\010Functi" +
- "on\022G\n\tparameter\030\001 \003(\01324.org.jetbrains.ko",
- "tlin.serialization.js.ast.Parameter\022\017\n\007n" +
- "ame_id\030\002 \001(\005\022B\n\004body\030\003 \002(\01324.org.jetbrai" +
- "ns.kotlin.serialization.js.ast.Statement" +
- "\022\024\n\005local\030\004 \001(\010:\005false\">\n\tParameter\022\017\n\007n" +
- "ame_id\030\001 \002(\005\022 \n\021has_default_value\030\002 \001(\010:" +
- "\005false\"S\n\nDocComment\022E\n\003tag\030\001 \003(\01328.org." +
- "jetbrains.kotlin.serialization.js.ast.Do" +
- "cCommentTag\"\221\001\n\rDocCommentTag\022\017\n\007name_id" +
- "\030\001 \002(\005\022\031\n\017value_string_id\030\002 \001(\005H\000\022K\n\nexp" +
- "ression\030\003 \001(\01325.org.jetbrains.kotlin.ser",
- "ialization.js.ast.ExpressionH\000B\007\n\005value\"" +
- "\207\005\n\017BinaryOperation\022C\n\004left\030\001 \002(\01325.org." +
- "jetbrains.kotlin.serialization.js.ast.Ex" +
- "pression\022D\n\005right\030\002 \002(\01325.org.jetbrains." +
- "kotlin.serialization.js.ast.Expression\022M" +
- "\n\004type\030\003 \002(\0162?.org.jetbrains.kotlin.seri" +
- "alization.js.ast.BinaryOperation.Type\"\231\003" +
- "\n\004Type\022\007\n\003MUL\020\001\022\007\n\003DIV\020\002\022\007\n\003MOD\020\003\022\007\n\003ADD" +
- "\020\004\022\007\n\003SUB\020\005\022\007\n\003SHL\020\006\022\007\n\003SHR\020\007\022\010\n\004SHRU\020\010\022" +
- "\006\n\002LT\020\t\022\007\n\003LTE\020\n\022\006\n\002GT\020\013\022\007\n\003GTE\020\014\022\016\n\nINS",
- "TANCEOF\020\r\022\006\n\002IN\020\016\022\006\n\002EQ\020\017\022\007\n\003NEQ\020\020\022\n\n\006RE" +
- "F_EQ\020\021\022\013\n\007REF_NEQ\020\022\022\013\n\007BIT_AND\020\023\022\013\n\007BIT_" +
- "XOR\020\024\022\n\n\006BIT_OR\020\025\022\007\n\003AND\020\026\022\006\n\002OR\020\027\022\007\n\003AS" +
- "G\020\030\022\013\n\007ASG_ADD\020\031\022\013\n\007ASG_SUB\020\032\022\013\n\007ASG_MUL" +
- "\020\033\022\013\n\007ASG_DIV\020\034\022\013\n\007ASG_MOD\020\035\022\013\n\007ASG_SHL\020" +
- "\036\022\013\n\007ASG_SHR\020\037\022\014\n\010ASG_SHRU\020 \022\017\n\013ASG_BIT_" +
- "AND\020!\022\016\n\nASG_BIT_OR\020\"\022\017\n\013ASG_BIT_XOR\020#\022\t" +
- "\n\005COMMA\020$\"\233\002\n\016UnaryOperation\022F\n\007operand\030" +
- "\001 \002(\01325.org.jetbrains.kotlin.serializati" +
- "on.js.ast.Expression\022L\n\004type\030\002 \002(\0162>.org",
- ".jetbrains.kotlin.serialization.js.ast.U" +
- "naryOperation.Type\022\017\n\007postfix\030\003 \002(\010\"b\n\004T" +
- "ype\022\013\n\007BIT_NOT\020\001\022\007\n\003DEC\020\002\022\n\n\006DELETE\020\003\022\007\n" +
- "\003INC\020\004\022\007\n\003NEG\020\005\022\007\n\003POS\020\006\022\007\n\003NOT\020\007\022\n\n\006TYP" +
- "EOF\020\010\022\010\n\004VOID\020\t\"\375\001\n\013Conditional\022N\n\017test_" +
- "expression\030\001 \002(\01325.org.jetbrains.kotlin." +
- "serialization.js.ast.Expression\022N\n\017then_" +
- "expression\030\002 \002(\01325.org.jetbrains.kotlin." +
- "serialization.js.ast.Expression\022N\n\017else_" +
- "expression\030\003 \002(\01325.org.jetbrains.kotlin.",
- "serialization.js.ast.Expression\"\231\001\n\013Arra" +
- "yAccess\022D\n\005array\030\001 \002(\01325.org.jetbrains.k" +
- "otlin.serialization.js.ast.Expression\022D\n" +
- "\005index\030\002 \002(\01325.org.jetbrains.kotlin.seri" +
- "alization.js.ast.Expression\"\312\001\n\rNameRefe" +
- "rence\022\017\n\007name_id\030\001 \002(\005\022H\n\tqualifier\030\002 \001(" +
- "\01325.org.jetbrains.kotlin.serialization.j" +
- "s.ast.Expression\022^\n\017inline_strategy\030\003 \001(" +
- "\01629.org.jetbrains.kotlin.serialization.j" +
- "s.ast.InlineStrategy:\nNOT_INLINE\"\320\001\n\021Pro",
- "pertyReference\022\021\n\tstring_id\030\001 \002(\005\022H\n\tqua" +
- "lifier\030\002 \001(\01325.org.jetbrains.kotlin.seri" +
- "alization.js.ast.Expression\022^\n\017inline_st" +
- "rategy\030\003 \001(\01629.org.jetbrains.kotlin.seri" +
- "alization.js.ast.InlineStrategy:\nNOT_INL" +
- "INE\"\377\001\n\nInvocation\022H\n\tqualifier\030\001 \002(\01325." +
+ "n.js.ast.SideEffects:\rAFFECTS_STATE\022\023\n\013l" +
+ "ocal_alias\030\005 \001(\005\022\037\n\025simple_name_referenc",
+ "e\030\026 \001(\005H\000\022N\n\014this_literal\030\027 \001(\01326.org.je" +
+ "tbrains.kotlin.serialization.js.ast.This" +
+ "LiteralH\000\022N\n\014null_literal\030\030 \001(\01326.org.je" +
+ "tbrains.kotlin.serialization.js.ast.Null" +
+ "LiteralH\000\022N\n\014true_literal\030\031 \001(\01326.org.je" +
+ "tbrains.kotlin.serialization.js.ast.True" +
+ "LiteralH\000\022P\n\rfalse_literal\030\032 \001(\01327.org.j" +
+ "etbrains.kotlin.serialization.js.ast.Fal" +
+ "seLiteralH\000\022\030\n\016string_literal\030\033 \001(\005H\000\022S\n" +
+ "\017reg_exp_literal\030\034 \001(\01328.org.jetbrains.k",
+ "otlin.serialization.js.ast.RegExpLiteral" +
+ "H\000\022\025\n\013int_literal\030\035 \001(\005H\000\022\030\n\016double_lite" +
+ "ral\030\036 \001(\001H\000\022P\n\rarray_literal\030\037 \001(\01327.org" +
+ ".jetbrains.kotlin.serialization.js.ast.A" +
+ "rrayLiteralH\000\022R\n\016object_literal\030 \001(\01328." +
"org.jetbrains.kotlin.serialization.js.as" +
- "t.Expression\022G\n\010argument\030\002 \003(\01325.org.jet" +
- "brains.kotlin.serialization.js.ast.Expre" +
- "ssion\022^\n\017inline_strategy\030\003 \001(\01629.org.jet",
- "brains.kotlin.serialization.js.ast.Inlin" +
- "eStrategy:\nNOT_INLINE\"\242\001\n\rInstantiation\022" +
+ "t.ObjectLiteralH\000\022G\n\010function\030! \001(\01323.or" +
+ "g.jetbrains.kotlin.serialization.js.ast." +
+ "FunctionH\000\022L\n\013doc_comment\030\" \001(\01325.org.je" +
+ "tbrains.kotlin.serialization.js.ast.DocC",
+ "ommentH\000\022L\n\006binary\030# \001(\0132:.org.jetbrains" +
+ ".kotlin.serialization.js.ast.BinaryOpera" +
+ "tionH\000\022J\n\005unary\030$ \001(\01329.org.jetbrains.ko" +
+ "tlin.serialization.js.ast.UnaryOperation" +
+ "H\000\022M\n\013conditional\030% \001(\01326.org.jetbrains." +
+ "kotlin.serialization.js.ast.ConditionalH" +
+ "\000\022N\n\014array_access\030& \001(\01326.org.jetbrains." +
+ "kotlin.serialization.js.ast.ArrayAccessH" +
+ "\000\022R\n\016name_reference\030\' \001(\01328.org.jetbrain" +
+ "s.kotlin.serialization.js.ast.NameRefere",
+ "nceH\000\022Z\n\022property_reference\030( \001(\0132<.org." +
+ "jetbrains.kotlin.serialization.js.ast.Pr" +
+ "opertyReferenceH\000\022K\n\ninvocation\030) \001(\01325." +
+ "org.jetbrains.kotlin.serialization.js.as" +
+ "t.InvocationH\000\022Q\n\rinstantiation\030* \001(\01328." +
+ "org.jetbrains.kotlin.serialization.js.as" +
+ "t.InstantiationH\000B\014\n\nexpression\"\r\n\013ThisL" +
+ "iteral\"\r\n\013NullLiteral\"\r\n\013TrueLiteral\"\016\n\014" +
+ "FalseLiteral\"C\n\rRegExpLiteral\022\031\n\021pattern" +
+ "_string_id\030\001 \002(\005\022\027\n\017flags_string_id\030\002 \001(",
+ "\005\"V\n\014ArrayLiteral\022F\n\007element\030\001 \003(\01325.org" +
+ ".jetbrains.kotlin.serialization.js.ast.E" +
+ "xpression\"v\n\rObjectLiteral\022L\n\005entry\030\001 \003(" +
+ "\0132=.org.jetbrains.kotlin.serialization.j" +
+ "s.ast.ObjectLiteralEntry\022\027\n\tmultiline\030\002 " +
+ "\001(\010:\004true\"\236\001\n\022ObjectLiteralEntry\022B\n\003key\030" +
+ "\001 \002(\01325.org.jetbrains.kotlin.serializati" +
+ "on.js.ast.Expression\022D\n\005value\030\002 \002(\01325.or" +
+ "g.jetbrains.kotlin.serialization.js.ast." +
+ "Expression\"\276\001\n\010Function\022G\n\tparameter\030\001 \003",
+ "(\01324.org.jetbrains.kotlin.serialization." +
+ "js.ast.Parameter\022\017\n\007name_id\030\002 \001(\005\022B\n\004bod" +
+ "y\030\003 \002(\01324.org.jetbrains.kotlin.serializa" +
+ "tion.js.ast.Statement\022\024\n\005local\030\004 \001(\010:\005fa" +
+ "lse\">\n\tParameter\022\017\n\007name_id\030\001 \002(\005\022 \n\021has" +
+ "_default_value\030\002 \001(\010:\005false\"S\n\nDocCommen" +
+ "t\022E\n\003tag\030\001 \003(\01328.org.jetbrains.kotlin.se" +
+ "rialization.js.ast.DocCommentTag\"\221\001\n\rDoc" +
+ "CommentTag\022\017\n\007name_id\030\001 \002(\005\022\031\n\017value_str" +
+ "ing_id\030\002 \001(\005H\000\022K\n\nexpression\030\003 \001(\01325.org",
+ ".jetbrains.kotlin.serialization.js.ast.E" +
+ "xpressionH\000B\007\n\005value\"\207\005\n\017BinaryOperation" +
+ "\022C\n\004left\030\001 \002(\01325.org.jetbrains.kotlin.se" +
+ "rialization.js.ast.Expression\022D\n\005right\030\002" +
+ " \002(\01325.org.jetbrains.kotlin.serializatio" +
+ "n.js.ast.Expression\022M\n\004type\030\003 \002(\0162?.org." +
+ "jetbrains.kotlin.serialization.js.ast.Bi" +
+ "naryOperation.Type\"\231\003\n\004Type\022\007\n\003MUL\020\001\022\007\n\003" +
+ "DIV\020\002\022\007\n\003MOD\020\003\022\007\n\003ADD\020\004\022\007\n\003SUB\020\005\022\007\n\003SHL\020" +
+ "\006\022\007\n\003SHR\020\007\022\010\n\004SHRU\020\010\022\006\n\002LT\020\t\022\007\n\003LTE\020\n\022\006\n",
+ "\002GT\020\013\022\007\n\003GTE\020\014\022\016\n\nINSTANCEOF\020\r\022\006\n\002IN\020\016\022\006" +
+ "\n\002EQ\020\017\022\007\n\003NEQ\020\020\022\n\n\006REF_EQ\020\021\022\013\n\007REF_NEQ\020\022" +
+ "\022\013\n\007BIT_AND\020\023\022\013\n\007BIT_XOR\020\024\022\n\n\006BIT_OR\020\025\022\007" +
+ "\n\003AND\020\026\022\006\n\002OR\020\027\022\007\n\003ASG\020\030\022\013\n\007ASG_ADD\020\031\022\013\n" +
+ "\007ASG_SUB\020\032\022\013\n\007ASG_MUL\020\033\022\013\n\007ASG_DIV\020\034\022\013\n\007" +
+ "ASG_MOD\020\035\022\013\n\007ASG_SHL\020\036\022\013\n\007ASG_SHR\020\037\022\014\n\010A" +
+ "SG_SHRU\020 \022\017\n\013ASG_BIT_AND\020!\022\016\n\nASG_BIT_OR" +
+ "\020\"\022\017\n\013ASG_BIT_XOR\020#\022\t\n\005COMMA\020$\"\233\002\n\016Unary" +
+ "Operation\022F\n\007operand\030\001 \002(\01325.org.jetbrai" +
+ "ns.kotlin.serialization.js.ast.Expressio",
+ "n\022L\n\004type\030\002 \002(\0162>.org.jetbrains.kotlin.s" +
+ "erialization.js.ast.UnaryOperation.Type\022" +
+ "\017\n\007postfix\030\003 \002(\010\"b\n\004Type\022\013\n\007BIT_NOT\020\001\022\007\n" +
+ "\003DEC\020\002\022\n\n\006DELETE\020\003\022\007\n\003INC\020\004\022\007\n\003NEG\020\005\022\007\n\003" +
+ "POS\020\006\022\007\n\003NOT\020\007\022\n\n\006TYPEOF\020\010\022\010\n\004VOID\020\t\"\375\001\n" +
+ "\013Conditional\022N\n\017test_expression\030\001 \002(\01325." +
+ "org.jetbrains.kotlin.serialization.js.as" +
+ "t.Expression\022N\n\017then_expression\030\002 \002(\01325." +
+ "org.jetbrains.kotlin.serialization.js.as" +
+ "t.Expression\022N\n\017else_expression\030\003 \002(\01325.",
+ "org.jetbrains.kotlin.serialization.js.as" +
+ "t.Expression\"\231\001\n\013ArrayAccess\022D\n\005array\030\001 " +
+ "\002(\01325.org.jetbrains.kotlin.serialization" +
+ ".js.ast.Expression\022D\n\005index\030\002 \002(\01325.org." +
+ "jetbrains.kotlin.serialization.js.ast.Ex" +
+ "pression\"\312\001\n\rNameReference\022\017\n\007name_id\030\001 " +
+ "\002(\005\022H\n\tqualifier\030\002 \001(\01325.org.jetbrains.k" +
+ "otlin.serialization.js.ast.Expression\022^\n" +
+ "\017inline_strategy\030\003 \001(\01629.org.jetbrains.k" +
+ "otlin.serialization.js.ast.InlineStrateg",
+ "y:\nNOT_INLINE\"\320\001\n\021PropertyReference\022\021\n\ts" +
+ "tring_id\030\001 \002(\005\022H\n\tqualifier\030\002 \001(\01325.org." +
+ "jetbrains.kotlin.serialization.js.ast.Ex" +
+ "pression\022^\n\017inline_strategy\030\003 \001(\01629.org." +
+ "jetbrains.kotlin.serialization.js.ast.In" +
+ "lineStrategy:\nNOT_INLINE\"\377\001\n\nInvocation\022" +
"H\n\tqualifier\030\001 \002(\01325.org.jetbrains.kotli" +
"n.serialization.js.ast.Expression\022G\n\010arg" +
"ument\030\002 \003(\01325.org.jetbrains.kotlin.seria" +
- "lization.js.ast.Expression\"\323\013\n\tStatement" +
- "\022\016\n\006fileId\030\001 \001(\005\022E\n\010location\030\002 \001(\01323.org" +
- ".jetbrains.kotlin.serialization.js.ast.L" +
- "ocation\022\030\n\tsynthetic\030\003 \001(\010:\005false\022M\n\020ret" +
- "urn_statement\030\025 \001(\01321.org.jetbrains.kotl",
- "in.serialization.js.ast.ReturnH\000\022K\n\017thro" +
- "w_statement\030\026 \001(\01320.org.jetbrains.kotlin" +
- ".serialization.js.ast.ThrowH\000\022K\n\017break_s" +
- "tatement\030\027 \001(\01320.org.jetbrains.kotlin.se" +
- "rialization.js.ast.BreakH\000\022Q\n\022continue_s" +
- "tatement\030\030 \001(\01323.org.jetbrains.kotlin.se" +
- "rialization.js.ast.ContinueH\000\022G\n\010debugge" +
- "r\030\031 \001(\01323.org.jetbrains.kotlin.serializa" +
- "tion.js.ast.DebuggerH\000\022T\n\nexpression\030\032 \001" +
- "(\0132>.org.jetbrains.kotlin.serialization.",
- "js.ast.ExpressionStatementH\000\022?\n\004vars\030\033 \001" +
- "(\0132/.org.jetbrains.kotlin.serialization." +
- "js.ast.VarsH\000\022A\n\005block\030\034 \001(\01320.org.jetbr" +
- "ains.kotlin.serialization.js.ast.BlockH\000" +
- "\022N\n\014global_block\030\035 \001(\01326.org.jetbrains.k" +
- "otlin.serialization.js.ast.GlobalBlockH\000" +
- "\022A\n\005label\030\036 \001(\01320.org.jetbrains.kotlin.s" +
- "erialization.js.ast.LabelH\000\022E\n\014if_statem" +
- "ent\030\037 \001(\0132-.org.jetbrains.kotlin.seriali" +
- "zation.js.ast.IfH\000\022M\n\020switch_statement\030 ",
- " \001(\01321.org.jetbrains.kotlin.serializatio" +
- "n.js.ast.SwitchH\000\022K\n\017while_statement\030! \001" +
- "(\01320.org.jetbrains.kotlin.serialization." +
- "js.ast.WhileH\000\022P\n\022do_while_statement\030\" \001" +
- "(\01322.org.jetbrains.kotlin.serialization." +
- "js.ast.DoWhileH\000\022G\n\rfor_statement\030# \001(\0132" +
- "..org.jetbrains.kotlin.serialization.js." +
- "ast.ForH\000\022L\n\020for_in_statement\030$ \001(\01320.or" +
- "g.jetbrains.kotlin.serialization.js.ast." +
- "ForInH\000\022G\n\rtry_statement\030% \001(\0132..org.jet",
- "brains.kotlin.serialization.js.ast.TryH\000" +
- "\022A\n\005empty\030& \001(\01320.org.jetbrains.kotlin.s" +
- "erialization.js.ast.EmptyH\000B\013\n\tstatement" +
- "\"N\n\006Return\022D\n\005value\030\001 \001(\01325.org.jetbrain" +
- "s.kotlin.serialization.js.ast.Expression" +
- "\"Q\n\005Throw\022H\n\texception\030\001 \002(\01325.org.jetbr" +
- "ains.kotlin.serialization.js.ast.Express" +
- "ion\"\031\n\005Break\022\020\n\010label_id\030\001 \001(\005\"\034\n\010Contin" +
- "ue\022\020\n\010label_id\030\001 \001(\005\"\n\n\010Debugger\"y\n\023Expr" +
- "essionStatement\022I\n\nexpression\030\001 \002(\01325.or",
- "g.jetbrains.kotlin.serialization.js.ast." +
- "Expression\022\027\n\017exported_tag_id\030\002 \001(\005\"\215\001\n\004" +
- "Vars\022N\n\013declaration\030\001 \003(\01329.org.jetbrain" +
- "s.kotlin.serialization.js.ast.VarDeclara" +
- "tion\022\030\n\tmultiline\030\002 \001(\010:\005false\022\033\n\023export" +
- "ed_package_id\030\003 \001(\005\"\306\001\n\016VarDeclaration\022\017" +
- "\n\007name_id\030\001 \002(\005\022L\n\rinitial_value\030\002 \001(\01325" +
- ".org.jetbrains.kotlin.serialization.js.a" +
- "st.Expression\022\016\n\006fileId\030\003 \001(\005\022E\n\010locatio" +
- "n\030\004 \001(\01323.org.jetbrains.kotlin.serializa",
- "tion.js.ast.Location\"P\n\005Block\022G\n\tstateme" +
- "nt\030\001 \003(\01324.org.jetbrains.kotlin.serializ" +
- "ation.js.ast.Statement\"V\n\013GlobalBlock\022G\n" +
- "\tstatement\030\001 \003(\01324.org.jetbrains.kotlin." +
- "serialization.js.ast.Statement\"f\n\005Label\022" +
- "\016\n\006nameId\030\001 \002(\005\022M\n\017inner_statement\030\002 \002(\013" +
- "24.org.jetbrains.kotlin.serialization.js" +
- ".ast.Statement\"\352\001\n\002If\022H\n\tcondition\030\001 \002(\013" +
- "25.org.jetbrains.kotlin.serialization.js" +
- ".ast.Expression\022L\n\016then_statement\030\002 \002(\0132",
- "4.org.jetbrains.kotlin.serialization.js." +
- "ast.Statement\022L\n\016else_statement\030\003 \001(\01324." +
- "org.jetbrains.kotlin.serialization.js.as" +
- "t.Statement\"\232\001\n\006Switch\022I\n\nexpression\030\001 \002" +
- "(\01325.org.jetbrains.kotlin.serialization." +
- "js.ast.Expression\022E\n\005entry\030\002 \003(\01326.org.j" +
- "etbrains.kotlin.serialization.js.ast.Swi" +
- "tchEntry\"\234\001\n\013SwitchEntry\022D\n\005label\030\001 \001(\0132" +
+ "lization.js.ast.Expression\022^\n\017inline_str",
+ "ategy\030\003 \001(\01629.org.jetbrains.kotlin.seria" +
+ "lization.js.ast.InlineStrategy:\nNOT_INLI" +
+ "NE\"\242\001\n\rInstantiation\022H\n\tqualifier\030\001 \002(\0132" +
"5.org.jetbrains.kotlin.serialization.js." +
- "ast.Expression\022G\n\tstatement\030\002 \003(\01324.org.",
- "jetbrains.kotlin.serialization.js.ast.St" +
- "atement\"\225\001\n\005While\022H\n\tcondition\030\001 \002(\01325.o" +
- "rg.jetbrains.kotlin.serialization.js.ast" +
- ".Expression\022B\n\004body\030\002 \002(\01324.org.jetbrain" +
- "s.kotlin.serialization.js.ast.Statement\"" +
- "\227\001\n\007DoWhile\022H\n\tcondition\030\001 \002(\01325.org.jet" +
- "brains.kotlin.serialization.js.ast.Expre" +
- "ssion\022B\n\004body\030\002 \002(\01324.org.jetbrains.kotl" +
- "in.serialization.js.ast.Statement\"\304\003\n\003Fo" +
- "r\022I\n\tvariables\030\001 \001(\01324.org.jetbrains.kot",
- "lin.serialization.js.ast.StatementH\000\022K\n\n" +
- "expression\030\002 \001(\01325.org.jetbrains.kotlin." +
- "serialization.js.ast.ExpressionH\000\022E\n\005emp" +
- "ty\030\003 \001(\01324.org.jetbrains.kotlin.serializ" +
- "ation.js.ast.EmptyInitH\000\022H\n\tcondition\030\004 " +
- "\001(\01325.org.jetbrains.kotlin.serialization" +
- ".js.ast.Expression\022H\n\tincrement\030\005 \001(\01325." +
- "org.jetbrains.kotlin.serialization.js.as" +
- "t.Expression\022B\n\004body\030\006 \002(\01324.org.jetbrai" +
- "ns.kotlin.serialization.js.ast.Statement",
- "B\006\n\004init\"\013\n\tEmptyInit\"\374\001\n\005ForIn\022\020\n\006nameI" +
- "d\030\001 \001(\005H\000\022K\n\nexpression\030\002 \001(\01325.org.jetb" +
- "rains.kotlin.serialization.js.ast.Expres" +
- "sionH\000\022G\n\010iterable\030\003 \002(\01325.org.jetbrains" +
- ".kotlin.serialization.js.ast.Expression\022" +
- "B\n\004body\030\004 \002(\01324.org.jetbrains.kotlin.ser" +
- "ialization.js.ast.StatementB\007\n\005value\"\337\001\n" +
- "\003Try\022F\n\010tryBlock\030\001 \002(\01324.org.jetbrains.k" +
- "otlin.serialization.js.ast.Statement\022D\n\n" +
- "catchBlock\030\002 \001(\01320.org.jetbrains.kotlin.",
- "serialization.js.ast.Catch\022J\n\014finallyBlo" +
- "ck\030\003 \001(\01324.org.jetbrains.kotlin.serializ" +
- "ation.js.ast.Statement\"\224\001\n\005Catch\022G\n\tpara" +
- "meter\030\001 \002(\01324.org.jetbrains.kotlin.seria" +
- "lization.js.ast.Parameter\022B\n\004body\030\002 \002(\0132" +
- "4.org.jetbrains.kotlin.serialization.js." +
- "ast.Statement\"\007\n\005Empty\"\327\005\n\010Fragment\022R\n\017i" +
- "mported_module\030\001 \003(\01329.org.jetbrains.kot" +
- "lin.serialization.js.ast.ImportedModule\022" +
- "G\n\014import_entry\030\002 \003(\01321.org.jetbrains.ko",
- "tlin.serialization.js.ast.Import\022Q\n\021decl" +
- "aration_block\030\003 \001(\01326.org.jetbrains.kotl" +
- "in.serialization.js.ast.GlobalBlock\022L\n\014e" +
- "xport_block\030\004 \001(\01326.org.jetbrains.kotlin" +
- ".serialization.js.ast.GlobalBlock\022Q\n\021ini" +
- "tializer_block\030\005 \001(\01326.org.jetbrains.kot" +
- "lin.serialization.js.ast.GlobalBlock\022L\n\014" +
- "name_binding\030\006 \003(\01326.org.jetbrains.kotli" +
- "n.serialization.js.ast.NameBinding\022J\n\013cl" +
- "ass_model\030\007 \003(\01325.org.jetbrains.kotlin.s",
- "erialization.js.ast.ClassModel\022P\n\021module" +
- "_expression\030\010 \003(\01325.org.jetbrains.kotlin" +
- ".serialization.js.ast.Expression\022N\n\rinli" +
- "ne_module\030\t \003(\01327.org.jetbrains.kotlin.s" +
- "erialization.js.ast.InlineModule\"\224\001\n\016Imp" +
- "ortedModule\022\030\n\020external_name_id\030\001 \002(\005\022\030\n" +
- "\020internal_name_id\030\002 \002(\005\022N\n\017plain_referen" +
- "ce\030\003 \001(\01325.org.jetbrains.kotlin.serializ" +
- "ation.js.ast.Expression\"i\n\006Import\022\024\n\014sig" +
- "nature_id\030\001 \002(\005\022I\n\nexpression\030\002 \002(\01325.or",
+ "ast.Expression\022G\n\010argument\030\002 \003(\01325.org.j" +
+ "etbrains.kotlin.serialization.js.ast.Exp" +
+ "ression\"\323\013\n\tStatement\022\016\n\006fileId\030\001 \001(\005\022E\n" +
+ "\010location\030\002 \001(\01323.org.jetbrains.kotlin.s" +
+ "erialization.js.ast.Location\022\030\n\tsyntheti" +
+ "c\030\003 \001(\010:\005false\022M\n\020return_statement\030\025 \001(\013",
+ "21.org.jetbrains.kotlin.serialization.js" +
+ ".ast.ReturnH\000\022K\n\017throw_statement\030\026 \001(\01320" +
+ ".org.jetbrains.kotlin.serialization.js.a" +
+ "st.ThrowH\000\022K\n\017break_statement\030\027 \001(\01320.or" +
"g.jetbrains.kotlin.serialization.js.ast." +
- "Expression\"3\n\013NameBinding\022\024\n\014signature_i" +
- "d\030\001 \002(\005\022\016\n\006nameId\030\002 \002(\005\"\214\001\n\nClassModel\022\017" +
- "\n\007name_id\030\001 \002(\005\022\025\n\rsuper_name_id\030\002 \001(\005\022V" +
- "\n\026post_declaration_block\030\003 \001(\01326.org.jet" +
- "brains.kotlin.serialization.js.ast.Globa" +
- "lBlock\";\n\014InlineModule\022\024\n\014signature_id\030\001" +
- " \002(\005\022\025\n\rexpression_id\030\002 \002(\005\"\034\n\013StringTab" +
- "le\022\r\n\005entry\030\001 \003(\t\"K\n\tNameTable\022>\n\005entry\030" +
- "\001 \003(\0132/.org.jetbrains.kotlin.serializati",
- "on.js.ast.Name\"D\n\004Name\022\021\n\ttemporary\030\001 \002(" +
- "\010\022\022\n\nidentifier\030\002 \001(\005\022\025\n\rlocal_name_id\030\003" +
- " \001(\005\"\346\001\n\005Chunk\022L\n\014string_table\030\001 \002(\01326.o" +
+ "BreakH\000\022Q\n\022continue_statement\030\030 \001(\01323.or" +
+ "g.jetbrains.kotlin.serialization.js.ast." +
+ "ContinueH\000\022G\n\010debugger\030\031 \001(\01323.org.jetbr" +
+ "ains.kotlin.serialization.js.ast.Debugge" +
+ "rH\000\022T\n\nexpression\030\032 \001(\0132>.org.jetbrains.",
+ "kotlin.serialization.js.ast.ExpressionSt" +
+ "atementH\000\022?\n\004vars\030\033 \001(\0132/.org.jetbrains." +
+ "kotlin.serialization.js.ast.VarsH\000\022A\n\005bl" +
+ "ock\030\034 \001(\01320.org.jetbrains.kotlin.seriali" +
+ "zation.js.ast.BlockH\000\022N\n\014global_block\030\035 " +
+ "\001(\01326.org.jetbrains.kotlin.serialization" +
+ ".js.ast.GlobalBlockH\000\022A\n\005label\030\036 \001(\01320.o" +
"rg.jetbrains.kotlin.serialization.js.ast" +
- ".StringTable\022H\n\nname_table\030\002 \002(\01324.org.j" +
- "etbrains.kotlin.serialization.js.ast.Nam" +
- "eTable\022E\n\010fragment\030\003 \002(\01323.org.jetbrains" +
- ".kotlin.serialization.js.ast.Fragment*@\n" +
- "\013SideEffects\022\021\n\rAFFECTS_STATE\020\001\022\024\n\020DEPEN" +
- "DS_ON_STATE\020\002\022\010\n\004PURE\020\003*?\n\016InlineStrateg",
- "y\022\017\n\013AS_FUNCTION\020\000\022\014\n\010IN_PLACE\020\001\022\016\n\nNOT_" +
- "INLINE\020\002B\024B\022DebugJsAstProtoBuf"
+ ".LabelH\000\022E\n\014if_statement\030\037 \001(\0132-.org.jet" +
+ "brains.kotlin.serialization.js.ast.IfH\000\022",
+ "M\n\020switch_statement\030 \001(\01321.org.jetbrain" +
+ "s.kotlin.serialization.js.ast.SwitchH\000\022K" +
+ "\n\017while_statement\030! \001(\01320.org.jetbrains." +
+ "kotlin.serialization.js.ast.WhileH\000\022P\n\022d" +
+ "o_while_statement\030\" \001(\01322.org.jetbrains." +
+ "kotlin.serialization.js.ast.DoWhileH\000\022G\n" +
+ "\rfor_statement\030# \001(\0132..org.jetbrains.kot" +
+ "lin.serialization.js.ast.ForH\000\022L\n\020for_in" +
+ "_statement\030$ \001(\01320.org.jetbrains.kotlin." +
+ "serialization.js.ast.ForInH\000\022G\n\rtry_stat",
+ "ement\030% \001(\0132..org.jetbrains.kotlin.seria" +
+ "lization.js.ast.TryH\000\022A\n\005empty\030& \001(\01320.o" +
+ "rg.jetbrains.kotlin.serialization.js.ast" +
+ ".EmptyH\000B\013\n\tstatement\"N\n\006Return\022D\n\005value" +
+ "\030\001 \001(\01325.org.jetbrains.kotlin.serializat" +
+ "ion.js.ast.Expression\"Q\n\005Throw\022H\n\texcept" +
+ "ion\030\001 \002(\01325.org.jetbrains.kotlin.seriali" +
+ "zation.js.ast.Expression\"\031\n\005Break\022\020\n\010lab" +
+ "el_id\030\001 \001(\005\"\034\n\010Continue\022\020\n\010label_id\030\001 \001(" +
+ "\005\"\n\n\010Debugger\"y\n\023ExpressionStatement\022I\n\n",
+ "expression\030\001 \002(\01325.org.jetbrains.kotlin." +
+ "serialization.js.ast.Expression\022\027\n\017expor" +
+ "ted_tag_id\030\002 \001(\005\"\215\001\n\004Vars\022N\n\013declaration" +
+ "\030\001 \003(\01329.org.jetbrains.kotlin.serializat" +
+ "ion.js.ast.VarDeclaration\022\030\n\tmultiline\030\002" +
+ " \001(\010:\005false\022\033\n\023exported_package_id\030\003 \001(\005" +
+ "\"\306\001\n\016VarDeclaration\022\017\n\007name_id\030\001 \002(\005\022L\n\r" +
+ "initial_value\030\002 \001(\01325.org.jetbrains.kotl" +
+ "in.serialization.js.ast.Expression\022\016\n\006fi" +
+ "leId\030\003 \001(\005\022E\n\010location\030\004 \001(\01323.org.jetbr",
+ "ains.kotlin.serialization.js.ast.Locatio" +
+ "n\"P\n\005Block\022G\n\tstatement\030\001 \003(\01324.org.jetb" +
+ "rains.kotlin.serialization.js.ast.Statem" +
+ "ent\"V\n\013GlobalBlock\022G\n\tstatement\030\001 \003(\01324." +
+ "org.jetbrains.kotlin.serialization.js.as" +
+ "t.Statement\"f\n\005Label\022\016\n\006nameId\030\001 \002(\005\022M\n\017" +
+ "inner_statement\030\002 \002(\01324.org.jetbrains.ko" +
+ "tlin.serialization.js.ast.Statement\"\352\001\n\002" +
+ "If\022H\n\tcondition\030\001 \002(\01325.org.jetbrains.ko" +
+ "tlin.serialization.js.ast.Expression\022L\n\016",
+ "then_statement\030\002 \002(\01324.org.jetbrains.kot" +
+ "lin.serialization.js.ast.Statement\022L\n\016el" +
+ "se_statement\030\003 \001(\01324.org.jetbrains.kotli" +
+ "n.serialization.js.ast.Statement\"\232\001\n\006Swi" +
+ "tch\022I\n\nexpression\030\001 \002(\01325.org.jetbrains." +
+ "kotlin.serialization.js.ast.Expression\022E" +
+ "\n\005entry\030\002 \003(\01326.org.jetbrains.kotlin.ser" +
+ "ialization.js.ast.SwitchEntry\"\234\001\n\013Switch" +
+ "Entry\022D\n\005label\030\001 \001(\01325.org.jetbrains.kot" +
+ "lin.serialization.js.ast.Expression\022G\n\ts",
+ "tatement\030\002 \003(\01324.org.jetbrains.kotlin.se" +
+ "rialization.js.ast.Statement\"\225\001\n\005While\022H" +
+ "\n\tcondition\030\001 \002(\01325.org.jetbrains.kotlin" +
+ ".serialization.js.ast.Expression\022B\n\004body" +
+ "\030\002 \002(\01324.org.jetbrains.kotlin.serializat" +
+ "ion.js.ast.Statement\"\227\001\n\007DoWhile\022H\n\tcond" +
+ "ition\030\001 \002(\01325.org.jetbrains.kotlin.seria" +
+ "lization.js.ast.Expression\022B\n\004body\030\002 \002(\013" +
+ "24.org.jetbrains.kotlin.serialization.js" +
+ ".ast.Statement\"\304\003\n\003For\022I\n\tvariables\030\001 \001(",
+ "\01324.org.jetbrains.kotlin.serialization.j" +
+ "s.ast.StatementH\000\022K\n\nexpression\030\002 \001(\01325." +
+ "org.jetbrains.kotlin.serialization.js.as" +
+ "t.ExpressionH\000\022E\n\005empty\030\003 \001(\01324.org.jetb" +
+ "rains.kotlin.serialization.js.ast.EmptyI" +
+ "nitH\000\022H\n\tcondition\030\004 \001(\01325.org.jetbrains" +
+ ".kotlin.serialization.js.ast.Expression\022" +
+ "H\n\tincrement\030\005 \001(\01325.org.jetbrains.kotli" +
+ "n.serialization.js.ast.Expression\022B\n\004bod" +
+ "y\030\006 \002(\01324.org.jetbrains.kotlin.serializa",
+ "tion.js.ast.StatementB\006\n\004init\"\013\n\tEmptyIn" +
+ "it\"\374\001\n\005ForIn\022\020\n\006nameId\030\001 \001(\005H\000\022K\n\nexpres" +
+ "sion\030\002 \001(\01325.org.jetbrains.kotlin.serial" +
+ "ization.js.ast.ExpressionH\000\022G\n\010iterable\030" +
+ "\003 \002(\01325.org.jetbrains.kotlin.serializati" +
+ "on.js.ast.Expression\022B\n\004body\030\004 \002(\01324.org" +
+ ".jetbrains.kotlin.serialization.js.ast.S" +
+ "tatementB\007\n\005value\"\337\001\n\003Try\022F\n\010tryBlock\030\001 " +
+ "\002(\01324.org.jetbrains.kotlin.serialization" +
+ ".js.ast.Statement\022D\n\ncatchBlock\030\002 \001(\01320.",
+ "org.jetbrains.kotlin.serialization.js.as" +
+ "t.Catch\022J\n\014finallyBlock\030\003 \001(\01324.org.jetb" +
+ "rains.kotlin.serialization.js.ast.Statem" +
+ "ent\"\224\001\n\005Catch\022G\n\tparameter\030\001 \002(\01324.org.j" +
+ "etbrains.kotlin.serialization.js.ast.Par" +
+ "ameter\022B\n\004body\030\002 \002(\01324.org.jetbrains.kot" +
+ "lin.serialization.js.ast.Statement\"\007\n\005Em" +
+ "pty\"\327\005\n\010Fragment\022R\n\017imported_module\030\001 \003(" +
+ "\01329.org.jetbrains.kotlin.serialization.j" +
+ "s.ast.ImportedModule\022G\n\014import_entry\030\002 \003",
+ "(\01321.org.jetbrains.kotlin.serialization." +
+ "js.ast.Import\022Q\n\021declaration_block\030\003 \001(\013" +
+ "26.org.jetbrains.kotlin.serialization.js" +
+ ".ast.GlobalBlock\022L\n\014export_block\030\004 \001(\01326" +
+ ".org.jetbrains.kotlin.serialization.js.a" +
+ "st.GlobalBlock\022Q\n\021initializer_block\030\005 \001(" +
+ "\01326.org.jetbrains.kotlin.serialization.j" +
+ "s.ast.GlobalBlock\022L\n\014name_binding\030\006 \003(\0132" +
+ "6.org.jetbrains.kotlin.serialization.js." +
+ "ast.NameBinding\022J\n\013class_model\030\007 \003(\01325.o",
+ "rg.jetbrains.kotlin.serialization.js.ast" +
+ ".ClassModel\022P\n\021module_expression\030\010 \003(\01325" +
+ ".org.jetbrains.kotlin.serialization.js.a" +
+ "st.Expression\022N\n\rinline_module\030\t \003(\01327.o" +
+ "rg.jetbrains.kotlin.serialization.js.ast" +
+ ".InlineModule\"\224\001\n\016ImportedModule\022\030\n\020exte" +
+ "rnal_name_id\030\001 \002(\005\022\030\n\020internal_name_id\030\002" +
+ " \002(\005\022N\n\017plain_reference\030\003 \001(\01325.org.jetb" +
+ "rains.kotlin.serialization.js.ast.Expres" +
+ "sion\"i\n\006Import\022\024\n\014signature_id\030\001 \002(\005\022I\n\n",
+ "expression\030\002 \002(\01325.org.jetbrains.kotlin." +
+ "serialization.js.ast.Expression\"3\n\013NameB" +
+ "inding\022\024\n\014signature_id\030\001 \002(\005\022\016\n\006nameId\030\002" +
+ " \002(\005\"\214\001\n\nClassModel\022\017\n\007name_id\030\001 \002(\005\022\025\n\r" +
+ "super_name_id\030\002 \001(\005\022V\n\026post_declaration_" +
+ "block\030\003 \001(\01326.org.jetbrains.kotlin.seria" +
+ "lization.js.ast.GlobalBlock\";\n\014InlineMod" +
+ "ule\022\024\n\014signature_id\030\001 \002(\005\022\025\n\rexpression_" +
+ "id\030\002 \002(\005\"\034\n\013StringTable\022\r\n\005entry\030\001 \003(\t\"K" +
+ "\n\tNameTable\022>\n\005entry\030\001 \003(\0132/.org.jetbrai",
+ "ns.kotlin.serialization.js.ast.Name\"D\n\004N" +
+ "ame\022\021\n\ttemporary\030\001 \002(\010\022\022\n\nidentifier\030\002 \001" +
+ "(\005\022\025\n\rlocal_name_id\030\003 \001(\005\"\346\001\n\005Chunk\022L\n\014s" +
+ "tring_table\030\001 \002(\01326.org.jetbrains.kotlin" +
+ ".serialization.js.ast.StringTable\022H\n\nnam" +
+ "e_table\030\002 \002(\01324.org.jetbrains.kotlin.ser" +
+ "ialization.js.ast.NameTable\022E\n\010fragment\030" +
+ "\003 \002(\01323.org.jetbrains.kotlin.serializati" +
+ "on.js.ast.Fragment*@\n\013SideEffects\022\021\n\rAFF" +
+ "ECTS_STATE\020\001\022\024\n\020DEPENDS_ON_STATE\020\002\022\010\n\004PU",
+ "RE\020\003*?\n\016InlineStrategy\022\017\n\013AS_FUNCTION\020\000\022" +
+ "\014\n\010IN_PLACE\020\001\022\016\n\nNOT_INLINE\020\002B\024B\022DebugJs" +
+ "AstProtoBuf"
};
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
@@ -49040,7 +49119,7 @@ public final class DebugJsAstProtoBuf {
internal_static_org_jetbrains_kotlin_serialization_js_ast_Expression_fieldAccessorTable = new
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_js_ast_Expression_descriptor,
- new java.lang.String[] { "FileId", "Location", "Synthetic", "SideEffects", "SimpleNameReference", "ThisLiteral", "NullLiteral", "TrueLiteral", "FalseLiteral", "StringLiteral", "RegExpLiteral", "IntLiteral", "DoubleLiteral", "ArrayLiteral", "ObjectLiteral", "Function", "DocComment", "Binary", "Unary", "Conditional", "ArrayAccess", "NameReference", "PropertyReference", "Invocation", "Instantiation", "Expression", });
+ new java.lang.String[] { "FileId", "Location", "Synthetic", "SideEffects", "LocalAlias", "SimpleNameReference", "ThisLiteral", "NullLiteral", "TrueLiteral", "FalseLiteral", "StringLiteral", "RegExpLiteral", "IntLiteral", "DoubleLiteral", "ArrayLiteral", "ObjectLiteral", "Function", "DocComment", "Binary", "Unary", "Conditional", "ArrayAccess", "NameReference", "PropertyReference", "Invocation", "Instantiation", "Expression", });
internal_static_org_jetbrains_kotlin_serialization_js_ast_ThisLiteral_descriptor =
getDescriptor().getMessageTypes().get(2);
internal_static_org_jetbrains_kotlin_serialization_js_ast_ThisLiteral_fieldAccessorTable = new
diff --git a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/metadata/metadataProperties.kt b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/metadata/metadataProperties.kt
index 8eef1365446..905ff62a09d 100644
--- a/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/metadata/metadataProperties.kt
+++ b/js/js.ast/src/org/jetbrains/kotlin/js/backend/ast/metadata/metadataProperties.kt
@@ -31,6 +31,8 @@ var JsName.descriptor: DeclarationDescriptor? by MetadataProperty(default = null
var JsName.localAlias: JsName? by MetadataProperty(default = null)
+var JsExpression.localAlias: JsName? by MetadataProperty(default = null)
+
// TODO: move this to module 'js.inliner' and change dependency on 'frontend' to dependency on 'descriptors'
var JsInvocation.inlineStrategy: InlineStrategy? by MetadataProperty(default = null)
diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java
index b0dc220c932..f25a2956b4f 100644
--- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java
+++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java
@@ -389,6 +389,10 @@ public class JsInliner extends JsVisitorWithContextImpl {
if (statement instanceof JsReturn) continue;
statement = statement.deepCopy();
+ if (inlineFunctionDepth == 0) {
+ replaceExpressionsWithLocalAliases(statement);
+ }
+
if (statement instanceof JsVars) {
JsVars jsVars = (JsVars) statement;
String tag = getImportTag(jsVars);
@@ -443,6 +447,28 @@ public class JsInliner extends JsVisitorWithContextImpl {
}
}
+ private static void replaceExpressionsWithLocalAliases(@NotNull JsStatement statement) {
+ new JsVisitorWithContextImpl() {
+ @Override
+ public void endVisit(@NotNull JsNameRef x, @NotNull JsContext ctx) {
+ replaceIfNecessary(x, ctx);
+ }
+
+ @Override
+ public void endVisit(@NotNull JsArrayAccess x, @NotNull JsContext ctx) {
+ replaceIfNecessary(x, ctx);
+ }
+
+ private void replaceIfNecessary(@NotNull JsExpression expression, @NotNull JsContext context) {
+ JsName alias = MetadataProperties.getLocalAlias(expression);
+ if (alias != null) {
+ context.replaceMe(alias.makeRef());
+ }
+ }
+
+ }.accept(statement);
+ }
+
private static boolean isSuspendWithCurrentContinuation(@Nullable DeclarationDescriptor descriptor) {
if (!(descriptor instanceof FunctionDescriptor)) return false;
return CommonCoroutineCodegenUtilKt.isBuiltInSuspendCoroutineOrReturn((FunctionDescriptor) descriptor.getOriginal());
@@ -497,9 +523,11 @@ public class JsInliner extends JsVisitorWithContextImpl {
return false;
}
sb.append(".");
- if (!extractImportTagImpl(arrayAccess.getIndexExpression(), sb)) {
+ if (!(arrayAccess.getIndexExpression() instanceof JsStringLiteral)) {
return false;
}
+ JsStringLiteral stringLiteral = (JsStringLiteral) arrayAccess.getIndexExpression();
+ sb.append(JsToStringGenerationVisitor.javaScriptString(stringLiteral.getValue()));
return true;
}
else {
diff --git a/js/js.serializer/src/js-ast.proto b/js/js.serializer/src/js-ast.proto
index bff71c54a11..a05d4a8e4e9 100644
--- a/js/js.serializer/src/js-ast.proto
+++ b/js/js.serializer/src/js-ast.proto
@@ -40,6 +40,7 @@ message Expression {
optional Location location = 2;
optional bool synthetic = 3 [default = false];
optional SideEffects side_effects = 4 [default = AFFECTS_STATE];
+ optional int32 local_alias = 5;
oneof expression {
int32 simple_name_reference = 22;
diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstDeserializer.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstDeserializer.kt
index 508fac0ac8f..3f7884ff6ff 100644
--- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstDeserializer.kt
+++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstDeserializer.kt
@@ -262,6 +262,9 @@ class JsAstDeserializer(program: JsProgram, private val sourceRoots: Iterableoptional int32 local_alias = 5;
+ */
+ boolean hasLocalAlias();
+ /**
+ * optional int32 local_alias = 5;
+ */
+ int getLocalAlias();
+
/**
* optional int32 simple_name_reference = 22;
*/
@@ -898,6 +907,11 @@ public final class JsAstProtoBuf {
}
break;
}
+ case 40: {
+ bitField0_ |= 0x00000010;
+ localAlias_ = input.readInt32();
+ break;
+ }
case 176: {
expressionCase_ = 22;
expression_ = input.readInt32();
@@ -1302,6 +1316,21 @@ public final class JsAstProtoBuf {
return sideEffects_;
}
+ public static final int LOCAL_ALIAS_FIELD_NUMBER = 5;
+ private int localAlias_;
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public boolean hasLocalAlias() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public int getLocalAlias() {
+ return localAlias_;
+ }
+
public static final int SIMPLE_NAME_REFERENCE_FIELD_NUMBER = 22;
/**
* optional int32 simple_name_reference = 22;
@@ -1664,6 +1693,7 @@ public final class JsAstProtoBuf {
location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
synthetic_ = false;
sideEffects_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects.AFFECTS_STATE;
+ localAlias_ = 0;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@@ -1774,6 +1804,9 @@ public final class JsAstProtoBuf {
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeEnum(4, sideEffects_.getNumber());
}
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeInt32(5, localAlias_);
+ }
if (expressionCase_ == 22) {
output.writeInt32(
22, (int)((java.lang.Integer) expression_));
@@ -1866,6 +1899,10 @@ public final class JsAstProtoBuf {
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
.computeEnumSize(4, sideEffects_.getNumber());
}
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += org.jetbrains.kotlin.protobuf.CodedOutputStream
+ .computeInt32Size(5, localAlias_);
+ }
if (expressionCase_ == 22) {
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
.computeInt32Size(
@@ -2056,6 +2093,8 @@ public final class JsAstProtoBuf {
bitField0_ = (bitField0_ & ~0x00000004);
sideEffects_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects.AFFECTS_STATE;
bitField0_ = (bitField0_ & ~0x00000008);
+ localAlias_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000010);
expressionCase_ = 0;
expression_ = null;
return this;
@@ -2097,6 +2136,10 @@ public final class JsAstProtoBuf {
to_bitField0_ |= 0x00000008;
}
result.sideEffects_ = sideEffects_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.localAlias_ = localAlias_;
if (expressionCase_ == 22) {
result.expression_ = expression_;
}
@@ -2179,6 +2222,9 @@ public final class JsAstProtoBuf {
if (other.hasSideEffects()) {
setSideEffects(other.getSideEffects());
}
+ if (other.hasLocalAlias()) {
+ setLocalAlias(other.getLocalAlias());
+ }
switch (other.getExpressionCase()) {
case SIMPLE_NAME_REFERENCE: {
setSimpleNameReference(other.getSimpleNameReference());
@@ -2553,6 +2599,38 @@ public final class JsAstProtoBuf {
return this;
}
+ private int localAlias_ ;
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public boolean hasLocalAlias() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public int getLocalAlias() {
+ return localAlias_;
+ }
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public Builder setLocalAlias(int value) {
+ bitField0_ |= 0x00000010;
+ localAlias_ = value;
+
+ return this;
+ }
+ /**
+ * optional int32 local_alias = 5;
+ */
+ public Builder clearLocalAlias() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ localAlias_ = 0;
+
+ return this;
+ }
+
/**
* optional int32 simple_name_reference = 22;
*/
diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstSerializer.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstSerializer.kt
index ed82930e078..da8e75a3e82 100644
--- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstSerializer.kt
+++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/ast/JsAstSerializer.kt
@@ -435,6 +435,7 @@ class JsAstSerializer(private val pathResolver: (File) -> String) {
with (visitor.builder) {
synthetic = expression.synthetic
sideEffects = map(expression.sideEffects)
+ expression.localAlias?.let { localAlias = serialize(it) }
}
return visitor.builder.build()
diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java
index 95b214a48da..76733085cdd 100644
--- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java
+++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java
@@ -4748,6 +4748,12 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
doTest(fileName);
}
+ @TestMetadata("inlineableAliasForExternalDeclaration.kt")
+ public void testInlineableAliasForExternalDeclaration() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/inlineableAliasForExternalDeclaration.kt");
+ doTest(fileName);
+ }
+
@TestMetadata("internalNameClash.kt")
public void testInternalNameClash() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/internalNameClash.kt");
diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StaticContext.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StaticContext.java
index bb3884c029a..d9fc0a284c2 100644
--- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StaticContext.java
+++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StaticContext.java
@@ -850,6 +850,7 @@ public final class StaticContext {
MetadataProperties.setSideEffects(moduleRef, SideEffectKind.PURE);
lhsModuleRef = new JsArrayAccess(currentImports, new JsStringLiteral(moduleId));
}
+ MetadataProperties.setLocalAlias(moduleRef, moduleName);
JsExpressionStatement importStmt = new JsExpressionStatement(JsAstUtils.assignment(lhsModuleRef, moduleName.makeRef()));
MetadataProperties.setExportedTag(importStmt, "imports:" + moduleId);
diff --git a/js/js.translator/testData/box/inlineMultiModule/inlineableAliasForExternalDeclaration.kt b/js/js.translator/testData/box/inlineMultiModule/inlineableAliasForExternalDeclaration.kt
new file mode 100644
index 00000000000..16afe4aa3c7
--- /dev/null
+++ b/js/js.translator/testData/box/inlineMultiModule/inlineableAliasForExternalDeclaration.kt
@@ -0,0 +1,11 @@
+// MODULE: lib
+// FILE: lib.kt
+fun foo() = "OK"
+
+// MODULE: main(lib)
+// FILE: main1.kt
+inline fun bar() = foo()
+
+// FILE: main2.kt
+// RECOMPILE
+fun box() = bar()