 -      FunctionArgumentInjector.maybeAddTempsForCallArguments(
 -          fnNode, args, allNamesToAlias, compiler.getCodingConvention());
 -      if (!allNamesToAlias.isEmpty()) {
--        return CanInlineResult.NO;
 +      if (cArg != null) {
 +        if (NodeUtil.mayHaveSideEffects(cArg, compiler)) {
-+          return CanInlineResult.NO;
+         return CanInlineResult.NO;
 +        }
 +        cArg = cArg.getNext();
        }

     }
 
+    Node block = fnNode.getLastChild();
+
     // CALL NODE: [ NAME, ARG1, ARG2, ... ]
     Node cArg = callNode.getFirstChild().getNext();
 
@@ -719,17 +713,25 @@ class FunctionInjector {
       }
     }
 

     } else {
       return canInlineReferenceAsStatementBlock(
           t, callNode, fnNode, needAliases);
@@ -695,11 +687,12 @@ class FunctionInjector {
    * </pre>
    */
   private CanInlineResult canInlineReferenceDirectly(
