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

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

Issue 2404123002: Build CFG for various JS() foreign methods (Closed)
Patch Set: Created 4 years, 2 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) 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 1912 matching lines...) Expand 10 before | Expand all | Expand 10 after
1923 // Shouldn't be called, handled by fieldToIr. 1923 // Shouldn't be called, handled by fieldToIr.
1924 return internalError(node, "StaticFieldDeclaration"); 1924 return internalError(node, "StaticFieldDeclaration");
1925 } 1925 }
1926 1926
1927 ir.Expression buildStaticGet(Element element) { 1927 ir.Expression buildStaticGet(Element element) {
1928 return buildStaticAccessor(element).buildSimpleRead(); 1928 return buildStaticAccessor(element).buildSimpleRead();
1929 } 1929 }
1930 1930
1931 @override 1931 @override
1932 ir.Expression handleStaticFieldGet(Send node, FieldElement field, _) { 1932 ir.Expression handleStaticFieldGet(Send node, FieldElement field, _) {
1933 return buildStaticGet(field); 1933 return associateNode(buildStaticGet(field), node);
1934 } 1934 }
1935 1935
1936 @override 1936 @override
1937 ir.MethodInvocation handleStaticFieldInvoke(Send node, FieldElement field, 1937 ir.MethodInvocation handleStaticFieldInvoke(Send node, FieldElement field,
1938 NodeList arguments, CallStructure callStructure, _) { 1938 NodeList arguments, CallStructure callStructure, _) {
1939 return associateNode( 1939 return associateNode(
1940 buildCall(buildStaticGet(field), callStructure, arguments), node); 1940 buildCall(buildStaticGet(field), callStructure, arguments), node);
1941 } 1941 }
1942 1942
1943 @override 1943 @override
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
2130 isConst: isConst); 2130 isConst: isConst);
2131 } 2131 }
2132 2132
2133 @override 2133 @override
2134 ir.StaticInvocation handleStaticFunctionInvoke( 2134 ir.StaticInvocation handleStaticFunctionInvoke(
2135 Send node, 2135 Send node,
2136 MethodElement function, 2136 MethodElement function,
2137 NodeList arguments, 2137 NodeList arguments,
2138 CallStructure callStructure, 2138 CallStructure callStructure,
2139 _) { 2139 _) {
2140 return buildStaticInvoke(function, arguments, isConst: false); 2140 return associateNode(buildStaticInvoke(function, arguments, isConst: false), node);
Harry Terkelsen 2016/10/12 16:42:58 dartfmt
sra1 2016/10/13 19:02:00 Done.
2141 } 2141 }
2142 2142
2143 @override 2143 @override
2144 ir.Expression handleStaticFunctionSet( 2144 ir.Expression handleStaticFunctionSet(
2145 Send node, MethodElement function, Node rhs, _) { 2145 Send node, MethodElement function, Node rhs, _) {
2146 return buildStaticAccessor(function) 2146 return buildStaticAccessor(function)
2147 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext); 2147 .buildAssignment(visitForValue(rhs), voidContext: isVoidContext);
2148 } 2148 }
2149 2149
2150 @override 2150 @override
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
2755 } 2755 }
2756 } 2756 }
2757 }); 2757 });
2758 } 2758 }
2759 2759
2760 ir.Expression buildInitializer() { 2760 ir.Expression buildInitializer() {
2761 return kernel.compiler.reporter.withCurrentElement(currentElement, () { 2761 return kernel.compiler.reporter.withCurrentElement(currentElement, () {
2762 FieldElement field = currentElement; 2762 FieldElement field = currentElement;
2763 return field.isMalformed 2763 return field.isMalformed
2764 ? new ir.InvalidExpression() 2764 ? new ir.InvalidExpression()
2765 : visitForValue(field.initializer); 2765 : associateNode(visitForValue(field.initializer), field.initializer);
2766 }); 2766 });
2767 } 2767 }
2768 } 2768 }
2769 2769
2770 class VariableDeclarations implements ir.Node { 2770 class VariableDeclarations implements ir.Node {
2771 final List<ir.VariableDeclaration> variables; 2771 final List<ir.VariableDeclaration> variables;
2772 2772
2773 VariableDeclarations(this.variables); 2773 VariableDeclarations(this.variables);
2774 2774
2775 accept(ir.Visitor v) => throw "unsupported"; 2775 accept(ir.Visitor v) => throw "unsupported";
(...skipping 19 matching lines...) Expand all
2795 : this(null, true, node, initializers); 2795 : this(null, true, node, initializers);
2796 2796
2797 accept(ir.Visitor v) => throw "unsupported"; 2797 accept(ir.Visitor v) => throw "unsupported";
2798 2798
2799 visitChildren(ir.Visitor v) => throw "unsupported"; 2799 visitChildren(ir.Visitor v) => throw "unsupported";
2800 2800
2801 String toString() { 2801 String toString() {
2802 return "IrFunction($kind, $isConstructor, $node, $initializers)"; 2802 return "IrFunction($kind, $isConstructor, $node, $initializers)";
2803 } 2803 }
2804 } 2804 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/ssa/builder_kernel.dart » ('j') | pkg/compiler/lib/src/ssa/builder_kernel.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698