Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
| =================================================================== |
| --- sdk/lib/_internal/compiler/implementation/ssa/builder.dart (revision 17058) |
| +++ sdk/lib/_internal/compiler/implementation/ssa/builder.dart (working copy) |
| @@ -2900,16 +2900,11 @@ |
| } |
| List<HInstruction> inputs = <HInstruction>[]; |
| - Set<ClassElement> interceptedClasses = |
| - getInterceptedClassesOn(node, selector); |
| - if (interceptedClasses != null) { |
| - inputs.add(invokeInterceptor(interceptedClasses, receiver, node)); |
| - } |
| - inputs.add(receiver); |
| - |
| addDynamicSendArgumentsToList(node, inputs); |
| - pushWithPosition(new HInvokeDynamicMethod(selector, inputs), node); |
| + HInvokeDynamicMethod invoke = buildInvokeDynamic( |
| + node, selector, receiver, inputs); |
|
kasperl
2013/01/16 07:26:03
That's a lot of indentation.
ngeoffray
2013/01/16 09:02:54
Done.
|
| + pushWithPosition(invoke, node); |
| if (isNotEquals) { |
| HNot not = new HNot(popBoolified()); |
| @@ -3645,12 +3640,13 @@ |
| Set<ClassElement> interceptedClasses = |
| getInterceptedClassesOn(node, selector); |
| List<HInstruction> inputs = <HInstruction>[]; |
| - if (interceptedClasses != null) { |
| + bool isIntercepted = interceptedClasses != null; |
|
kasperl
2013/01/16 07:26:03
I guess the set cannot be empty?
ngeoffray
2013/01/16 09:02:54
Indeed, it cannot be empty, I added an assert.
|
| + if (isIntercepted) { |
| inputs.add(invokeInterceptor(interceptedClasses, receiver, node)); |
| } |
| inputs.add(receiver); |
| inputs.addAll(arguments); |
| - return new HInvokeDynamicMethod(selector, inputs); |
| + return new HInvokeDynamicMethod(selector, inputs, isIntercepted); |
| } |
| visitSendSet(SendSet node) { |