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

Side by Side Diff: pkg/compiler/lib/src/kernel/kernel_visitor.dart

Issue 2404123002: Build CFG for various JS() foreign methods (Closed)
Patch Set: format Created 4 years 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
« no previous file with comments | « no previous file | pkg/compiler/lib/src/ssa/builder_kernel.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 import 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 import 'package:kernel/frontend/accessors.dart' 6 import 'package:kernel/frontend/accessors.dart'
7 show 7 show
8 Accessor, 8 Accessor,
9 IndexAccessor, 9 IndexAccessor,
10 NullAwarePropertyAccessor, 10 NullAwarePropertyAccessor,
(...skipping 1907 matching lines...) Expand 10 before | Expand all | Expand 10 after
1918 // Shouldn't be called, handled by fieldToIr. 1918 // Shouldn't be called, handled by fieldToIr.
1919 return internalError(node, "StaticFieldDeclaration"); 1919 return internalError(node, "StaticFieldDeclaration");
1920 } 1920 }
1921 1921
1922 ir.Expression buildStaticGet(Element element) { 1922 ir.Expression buildStaticGet(Element element) {
1923 return buildStaticAccessor(element).buildSimpleRead(); 1923 return buildStaticAccessor(element).buildSimpleRead();
1924 } 1924 }
1925 1925
1926 @override 1926 @override
1927 ir.Expression handleStaticFieldGet(Send node, FieldElement field, _) { 1927 ir.Expression handleStaticFieldGet(Send node, FieldElement field, _) {
1928 return buildStaticGet(field); 1928 return associateNode(buildStaticGet(field), node);
1929 } 1929 }
1930 1930
1931 @override 1931 @override
1932 ir.MethodInvocation handleStaticFieldInvoke(Send node, FieldElement field, 1932 ir.MethodInvocation handleStaticFieldInvoke(Send node, FieldElement field,
1933 NodeList arguments, CallStructure callStructure, _) { 1933 NodeList arguments, CallStructure callStructure, _) {
1934 return associateNode( 1934 return associateNode(
1935 buildCall(buildStaticGet(field), callStructure, arguments), node); 1935 buildCall(buildStaticGet(field), callStructure, arguments), node);
1936 } 1936 }
1937 1937
1938 @override 1938 @override
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
2125 isConst: isConst); 2125 isConst: isConst);
2126 } 2126 }
2127 2127
2128 @override 2128 @override
2129 ir.StaticInvocation handleStaticFunctionInvoke( 2129 ir.StaticInvocation handleStaticFunctionInvoke(
2130 Send node, 2130 Send node,
2131 MethodElement function, 2131 MethodElement function,
2132 NodeList arguments, 2132 NodeList arguments,
2133 CallStructure callStructure, 2133 CallStructure callStructure,
2134 _) { 2134 _) {
2135 return buildStaticInvoke(function, arguments, isConst: false); 2135 return associateNode(
2136 buildStaticInvoke(function, arguments, isConst: false), node);
2136 } 2137 }
2137 2138
2138 @override 2139 @override
2139 ir.Expression handleStaticFunctionSet( 2140 ir.Expression handleStaticFunctionSet(
2140 Send node, MethodElement function, Node rhs, _) { 2141 Send node, MethodElement function, Node rhs, _) {
2141 return buildStaticAccessor(function) 2142 return buildStaticAccessor(function)
2142 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext); 2143 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext);
2143 } 2144 }
2144 2145
2145 @override 2146 @override
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
2750 } 2751 }
2751 } 2752 }
2752 }); 2753 });
2753 } 2754 }
2754 2755
2755 ir.Expression buildInitializer() { 2756 ir.Expression buildInitializer() {
2756 return kernel.compiler.reporter.withCurrentElement(currentElement, () { 2757 return kernel.compiler.reporter.withCurrentElement(currentElement, () {
2757 FieldElement field = currentElement; 2758 FieldElement field = currentElement;
2758 return field.isMalformed 2759 return field.isMalformed
2759 ? new ir.InvalidExpression() 2760 ? new ir.InvalidExpression()
2760 : visitForValue(field.initializer); 2761 : associateNode(visitForValue(field.initializer), field.initializer);
2761 }); 2762 });
2762 } 2763 }
2763 } 2764 }
2764 2765
2765 class VariableDeclarations implements ir.Node { 2766 class VariableDeclarations implements ir.Node {
2766 final List<ir.VariableDeclaration> variables; 2767 final List<ir.VariableDeclaration> variables;
2767 2768
2768 VariableDeclarations(this.variables); 2769 VariableDeclarations(this.variables);
2769 2770
2770 accept(ir.Visitor v) => throw "unsupported"; 2771 accept(ir.Visitor v) => throw "unsupported";
(...skipping 19 matching lines...) Expand all
2790 : this(null, true, node, initializers); 2791 : this(null, true, node, initializers);
2791 2792
2792 accept(ir.Visitor v) => throw "unsupported"; 2793 accept(ir.Visitor v) => throw "unsupported";
2793 2794
2794 visitChildren(ir.Visitor v) => throw "unsupported"; 2795 visitChildren(ir.Visitor v) => throw "unsupported";
2795 2796
2796 String toString() { 2797 String toString() {
2797 return "IrFunction($kind, $isConstructor, $node, $initializers)"; 2798 return "IrFunction($kind, $isConstructor, $node, $initializers)";
2798 } 2799 }
2799 } 2800 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/ssa/builder_kernel.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698