Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Unified Diff: pkg/compiler/lib/src/js_backend/codegen/codegen.dart

Issue 1182913003: Split TypedSelector into Selector and TypeMask. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_backend/codegen/codegen.dart
diff --git a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
index 9a05a589e8227ad157530bf829e44da0241278ef..166fa4befec0670f8dea2ac7512df9d45ebc4784 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
@@ -14,6 +14,8 @@ import '../../util/maplet.dart';
import '../../constants/values.dart';
import '../../dart2jslib.dart';
import '../../dart_types.dart';
+import '../../types/types.dart' show TypeMask;
+import '../../universe/universe.dart' show UniverseSelector;
class CodegenBailout {
final tree_ir.Node node;
@@ -251,10 +253,11 @@ class CodeGenerator extends tree_ir.StatementVisitor
void registerMethodInvoke(tree_ir.InvokeMethod node) {
Selector selector = node.selector;
+ TypeMask mask = node.mask;
if (selector.isGetter) {
- registry.registerDynamicGetter(selector);
+ registry.registerDynamicGetter(new UniverseSelector(selector, mask));
} else if (selector.isSetter) {
- registry.registerDynamicSetter(selector);
+ registry.registerDynamicSetter(new UniverseSelector(selector, mask));
} else {
assert(invariant(CURRENT_ELEMENT_SPANNABLE,
selector.isCall || selector.isOperator ||
@@ -262,8 +265,8 @@ class CodeGenerator extends tree_ir.StatementVisitor
message: 'unexpected kind ${selector.kind}'));
// TODO(sigurdm): We should find a better place to register the call.
Selector call = new Selector.callClosureFrom(selector);
- registry.registerDynamicInvocation(call);
- registry.registerDynamicInvocation(selector);
+ registry.registerDynamicInvocation(new UniverseSelector(call, null));
+ registry.registerDynamicInvocation(new UniverseSelector(selector, mask));
}
}

Powered by Google App Engine
This is Rietveld 408576698