Index: sdk/lib/_internal/compiler/implementation/ssa/codegen.dart |
=================================================================== |
--- sdk/lib/_internal/compiler/implementation/ssa/codegen.dart (revision 15500) |
+++ sdk/lib/_internal/compiler/implementation/ssa/codegen.dart (working copy) |
@@ -1546,23 +1546,27 @@ |
List<js.Expression> arguments = visitArguments(node.inputs); |
Element target = node.element; |
- // Avoid adding the generative constructor name to the list of |
- // seen selectors. |
- if (target != null && target.isGenerativeConstructorBody()) { |
- methodName = name.slowToString(); |
- } else if (target == backend.jsArrayAdd) { |
- methodName = 'push'; |
- } else if (target == backend.jsArrayRemoveLast) { |
- methodName = 'pop'; |
- } else if (target == backend.jsStringSplit) { |
- methodName = 'split'; |
- // Split returns a List, so we make sure the backend knows the |
- // list class is instantiated. |
- world.registerInstantiatedClass(compiler.listClass); |
- } else if (target == backend.jsStringConcat) { |
- push(new js.Binary('+', object, arguments[0]), node); |
- return; |
- } else { |
+ if (target != null) { |
+ // Avoid adding the generative constructor name to the list of |
+ // seen selectors. |
+ if (target.isGenerativeConstructorBody()) { |
+ methodName = name.slowToString(); |
+ } else if (target == backend.jsArrayAdd) { |
+ methodName = 'push'; |
+ } else if (target == backend.jsArrayRemoveLast) { |
+ methodName = 'pop'; |
+ } else if (target == backend.jsStringSplit) { |
+ methodName = 'split'; |
+ // Split returns a List, so we make sure the backend knows the |
+ // list class is instantiated. |
+ world.registerInstantiatedClass(compiler.listClass); |
+ } else if (target == backend.jsStringConcat) { |
+ push(new js.Binary('+', object, arguments[0]), node); |
+ return; |
+ } |
+ } |
+ |
+ if (methodName == null) { |
methodName = backend.namer.instanceMethodInvocationName( |
node.selector.library, name, node.selector); |
bool inLoop = node.block.enclosingLoopHeader != null; |