diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsInvocation.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsInvocation.java index 75878323221..6bae72001ca 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsInvocation.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsInvocation.java @@ -7,14 +7,12 @@ package com.google.dart.compiler.backend.js.ast; import com.google.dart.compiler.util.AstUtil; import com.intellij.util.SmartList; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.types.lang.InlineStrategy; import java.util.Arrays; import java.util.List; public final class JsInvocation extends JsExpressionImpl.JsExpressionHasArguments { private JsExpression qualifier; - private InlineStrategy inlineStrategy = InlineStrategy.NOT_INLINE; public JsInvocation() { super(new SmartList()); @@ -52,14 +50,6 @@ public final class JsInvocation extends JsExpressionImpl.JsExpressionHasArgument this.qualifier = qualifier; } - public InlineStrategy getInlineStrategy() { - return inlineStrategy; - } - - public void setInlineStrategy(InlineStrategy inlineStrategy) { - this.inlineStrategy = inlineStrategy; - } - @Override public void accept(JsVisitor v) { v.visitInvocation(this); @@ -85,8 +75,6 @@ public final class JsInvocation extends JsExpressionImpl.JsExpressionHasArgument public JsInvocation deepCopy() { JsExpression qualifierCopy = AstUtil.deepCopy(qualifier); List argumentsCopy = AstUtil.deepCopy(arguments); - JsInvocation copy = new JsInvocation(qualifierCopy, argumentsCopy); - copy.setInlineStrategy(inlineStrategy); - return copy.withMetadataFrom(this); + return new JsInvocation(qualifierCopy, argumentsCopy).withMetadataFrom(this); } } diff --git a/js/js.inliner/src/org/jetbrains/k2js/inline/JsInliner.java b/js/js.inliner/src/org/jetbrains/k2js/inline/JsInliner.java index e549c8b97be..00101a65b73 100644 --- a/js/js.inliner/src/org/jetbrains/k2js/inline/JsInliner.java +++ b/js/js.inliner/src/org/jetbrains/k2js/inline/JsInliner.java @@ -17,8 +17,10 @@ package org.jetbrains.k2js.inline; import com.google.dart.compiler.backend.js.ast.*; +import com.google.dart.compiler.backend.js.ast.metadata.MetadataPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.types.lang.InlineStrategy; import org.jetbrains.k2js.inline.context.*; import org.jetbrains.k2js.inline.exception.InlineRecursionException; @@ -26,9 +28,9 @@ import java.util.IdentityHashMap; import java.util.Set; import java.util.Stack; -import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedLocalFunctionDeclarations; -import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedFunctionDefinitions; import static org.jetbrains.k2js.inline.FunctionInlineMutator.getInlineableCallReplacement; +import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedFunctionDefinitions; +import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedLocalFunctionDeclarations; import static org.jetbrains.k2js.inline.util.UtilPackage.IdentitySet; import static org.jetbrains.k2js.inline.util.UtilPackage.collectNamedFunctions; import static org.jetbrains.k2js.translate.utils.JsAstUtils.flattenStatement; @@ -179,7 +181,8 @@ public class JsInliner extends JsVisitorWithContextImpl { } private static boolean shouldInline(@NotNull JsInvocation call) { - return call.getInlineStrategy().isInline(); + InlineStrategy strategy = MetadataPackage.getInlineStrategy(call); + return strategy != null && strategy.isInline(); } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/CallExpressionTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/CallExpressionTranslator.java index 4a3cd9c3a1c..6816b8d8293 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/CallExpressionTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/CallExpressionTranslator.java @@ -18,6 +18,7 @@ package org.jetbrains.k2js.translate.reference; import com.google.dart.compiler.backend.js.ast.JsExpression; import com.google.dart.compiler.backend.js.ast.JsInvocation; +import com.google.dart.compiler.backend.js.ast.metadata.MetadataPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.CallableDescriptor; @@ -46,7 +47,7 @@ public final class CallExpressionTranslator extends AbstractCallExpressionTransl if (shouldBeInlined(expression, context) && callExpression instanceof JsInvocation) { - ((JsInvocation) callExpression).setInlineStrategy(InlineStrategy.IN_PLACE); + MetadataPackage.setInlineStrategy((JsInvocation) callExpression, InlineStrategy.IN_PLACE); } return callExpression;