Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
=================================================================== |
--- sdk/lib/_internal/compiler/implementation/ssa/builder.dart (revision 15142) |
+++ sdk/lib/_internal/compiler/implementation/ssa/builder.dart (working copy) |
@@ -3857,11 +3857,14 @@ |
SourceString iteratorName = const SourceString("iterator"); |
Selector selector = |
new Selector.call(iteratorName, work.element.getLibrary(), 0); |
- Element interceptor = interceptors.getStaticInterceptor(selector); |
- assert(interceptor != null); |
+ Element element = interceptors.getStaticInterceptor(selector); |
visit(node.expression); |
- pushInvokeHelper1(interceptor, pop()); |
- iterator = pop(); |
+ HInstruction receiver = pop(); |
+ pushInvokeHelper1(element, receiver); |
+ HInstruction interceptor = pop(); |
+ iterator = new HInvokeDynamicMethod( |
+ selector, <HInstruction>[interceptor, receiver]); |
+ add(iterator); |
} |
HInstruction buildCondition() { |
SourceString name = const SourceString('hasNext'); |