Index: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
=================================================================== |
--- sdk/lib/_internal/compiler/implementation/js_backend/backend.dart (revision 17130) |
+++ sdk/lib/_internal/compiler/implementation/js_backend/backend.dart (working copy) |
@@ -485,6 +485,13 @@ |
void registerDynamicInvocation(HInvokeDynamic node, |
Selector selector, |
HTypeMap types) { |
+ if (selector.name == Compiler.CALL_OPERATOR_NAME) { |
kasperl
2013/01/16 11:54:46
Using == is kind of dangerous because it works for
ngeoffray
2013/01/16 12:10:03
Good point. I added a Selector.isClosureCall for n
|
+ // We cannot use the current framework to do optimizations based |
+ // on the 'call' selector because we are also generating closure |
+ // calls during the emitter phase, which at this point, does not |
+ // track parameter types, nor invalidates optimized methods. |
+ return; |
+ } |
HTypeList providedTypes = |
new HTypeList.fromDynamicInvocation(node, selector, types); |
if (!selectorTypeMap.containsKey(selector)) { |