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

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

Issue 1571433002: dart2js cps: Compute intercepted classes in optimize_interceptors. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Address comments Created 4 years, 11 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 8f3819f465407ec06aa6dc9a2cfcb502cb0dbc70..f9e7bb5b0a2c5688a8090b894002be6111dc737b 100644
--- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
+++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
@@ -863,8 +863,13 @@ class CodeGenerator extends tree_ir.StatementVisitor
@override
js.Expression visitInterceptor(tree_ir.Interceptor node) {
registry.registerUseInterceptor();
- registry.registerSpecializedGetInterceptor(node.interceptedClasses);
- js.Name helperName = glue.getInterceptorName(node.interceptedClasses);
+ // Default to all intercepted classes if they have not been computed.
+ // This is to ensure we can run codegen without prior optimization passes.
+ Set<ClassElement> interceptedClasses = node.interceptedClasses.isEmpty
+ ? glue.interceptedClasses
+ : node.interceptedClasses;
+ registry.registerSpecializedGetInterceptor(interceptedClasses);
+ js.Name helperName = glue.getInterceptorName(interceptedClasses);
js.Expression globalHolder = glue.getInterceptorLibrary();
return js.js('#.#(#)',
[globalHolder, helperName, visitExpression(node.input)])
« no previous file with comments | « pkg/compiler/lib/src/cps_ir/type_propagation.dart ('k') | pkg/compiler/lib/src/js_backend/codegen/task.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698