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

Side by Side Diff: pkg/compiler/lib/src/js_backend/codegen/codegen.dart

Issue 1214643003: dart2js cps: Set receiver type in type propagation. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Remove JavaScriptBackend + update status Created 5 years, 5 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 unified diff | Download patch
OLDNEW
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 code_generator; 5 library code_generator;
6 6
7 import 'glue.dart'; 7 import 'glue.dart';
8 8
9 import '../../tree_ir/tree_ir_nodes.dart' as tree_ir; 9 import '../../tree_ir/tree_ir_nodes.dart' as tree_ir;
10 import '../../tree_ir/tree_ir_nodes.dart' show BuiltinOperator; 10 import '../../tree_ir/tree_ir_nodes.dart' show BuiltinOperator;
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 glue.registerUseInterceptorInCodegen(); 628 glue.registerUseInterceptorInCodegen();
629 registry.registerSpecializedGetInterceptor(node.interceptedClasses); 629 registry.registerSpecializedGetInterceptor(node.interceptedClasses);
630 js.Name helperName = glue.getInterceptorName(node.interceptedClasses); 630 js.Name helperName = glue.getInterceptorName(node.interceptedClasses);
631 js.Expression globalHolder = glue.getInterceptorLibrary(); 631 js.Expression globalHolder = glue.getInterceptorLibrary();
632 return js.js('#.#(#)', 632 return js.js('#.#(#)',
633 [globalHolder, helperName, visitExpression(node.input)]); 633 [globalHolder, helperName, visitExpression(node.input)]);
634 } 634 }
635 635
636 @override 636 @override
637 js.Expression visitGetField(tree_ir.GetField node) { 637 js.Expression visitGetField(tree_ir.GetField node) {
638 registry.registerFieldGetter(node.field);
638 return new js.PropertyAccess( 639 return new js.PropertyAccess(
639 visitExpression(node.object), 640 visitExpression(node.object),
640 glue.instanceFieldPropertyName(node.field)); 641 glue.instanceFieldPropertyName(node.field));
641 } 642 }
642 643
643 @override 644 @override
644 js.Assignment visitSetField(tree_ir.SetField node) { 645 js.Assignment visitSetField(tree_ir.SetField node) {
646 registry.registerFieldSetter(node.field);
645 js.PropertyAccess field = 647 js.PropertyAccess field =
646 new js.PropertyAccess( 648 new js.PropertyAccess(
647 visitExpression(node.object), 649 visitExpression(node.object),
648 glue.instanceFieldPropertyName(node.field)); 650 glue.instanceFieldPropertyName(node.field));
649 return new js.Assignment(field, visitExpression(node.value)); 651 return new js.Assignment(field, visitExpression(node.value));
650 } 652 }
651 653
652 @override 654 @override
653 js.Expression visitGetStatic(tree_ir.GetStatic node) { 655 js.Expression visitGetStatic(tree_ir.GetStatic node) {
654 assert(node.element is FieldElement || node.element is FunctionElement); 656 assert(node.element is FieldElement || node.element is FunctionElement);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 return js.js("typeof # === 'number' && Math.floor(#) === #", args); 783 return js.js("typeof # === 'number' && Math.floor(#) === #", args);
782 } 784 }
783 } 785 }
784 786
785 visitFunctionExpression(tree_ir.FunctionExpression node) { 787 visitFunctionExpression(tree_ir.FunctionExpression node) {
786 // FunctionExpressions are currently unused. 788 // FunctionExpressions are currently unused.
787 // We might need them if we want to emit raw JS nested functions. 789 // We might need them if we want to emit raw JS nested functions.
788 throw 'FunctionExpressions should not be used'; 790 throw 'FunctionExpressions should not be used';
789 } 791 }
790 } 792 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/cps_ir/type_propagation.dart ('k') | tests/language/language_dart2js.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698