OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library compiler.src.inferrer.map_tracer; | 5 library compiler.src.inferrer.map_tracer; |
6 | 6 |
7 import '../elements/entities.dart'; | 7 import '../elements/entities.dart'; |
8 import '../js_backend/backend.dart' show JavaScriptBackend; | 8 import '../js_backend/backend.dart' show JavaScriptBackend; |
9 import '../universe/selector.dart' show Selector; | 9 import '../universe/selector.dart' show Selector; |
10 import 'node_tracer.dart'; | 10 import 'node_tracer.dart'; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 | 62 |
63 visitClosureCallSiteTypeInformation(ClosureCallSiteTypeInformation info) { | 63 visitClosureCallSiteTypeInformation(ClosureCallSiteTypeInformation info) { |
64 bailout('Passed to a closure'); | 64 bailout('Passed to a closure'); |
65 } | 65 } |
66 | 66 |
67 visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) { | 67 visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) { |
68 super.visitStaticCallSiteTypeInformation(info); | 68 super.visitStaticCallSiteTypeInformation(info); |
69 MemberEntity called = info.calledElement; | 69 MemberEntity called = info.calledElement; |
70 if (inferrer.closedWorld.commonElements.isForeign(called) && | 70 if (inferrer.closedWorld.commonElements.isForeign(called) && |
71 called.name == JavaScriptBackend.JS) { | 71 called.name == JavaScriptBackend.JS) { |
72 bailout('Used in JS ${info.call}'); | 72 bailout('Used in JS ${info.debugName}'); |
73 } | 73 } |
74 } | 74 } |
75 | 75 |
76 visitDynamicCallSiteTypeInformation(DynamicCallSiteTypeInformation info) { | 76 visitDynamicCallSiteTypeInformation(DynamicCallSiteTypeInformation info) { |
77 super.visitDynamicCallSiteTypeInformation(info); | 77 super.visitDynamicCallSiteTypeInformation(info); |
78 Selector selector = info.selector; | 78 Selector selector = info.selector; |
79 String selectorName = selector.name; | 79 String selectorName = selector.name; |
80 if (currentUser == info.receiver) { | 80 if (currentUser == info.receiver) { |
81 if (!okMapSelectorsSet.contains(selectorName)) { | 81 if (!okMapSelectorsSet.contains(selectorName)) { |
82 if (selector.isCall) { | 82 if (selector.isCall) { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 return; | 121 return; |
122 } | 122 } |
123 } | 123 } |
124 } else if (selector.isCall && | 124 } else if (selector.isCall && |
125 !info.targets.every((element) => element.isFunction)) { | 125 !info.targets.every((element) => element.isFunction)) { |
126 bailout('Passed to a closure'); | 126 bailout('Passed to a closure'); |
127 return; | 127 return; |
128 } | 128 } |
129 } | 129 } |
130 } | 130 } |
OLD | NEW |