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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart

Issue 11783009: Big merge from experimental to bleeding edge. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 part of js_backend; 5 part of js_backend;
6 6
7 typedef void Recompile(Element element); 7 typedef void Recompile(Element element);
8 8
9 class ReturnInfo { 9 class ReturnInfo {
10 HType returnType; 10 HType returnType;
(...skipping 26 matching lines...) Expand all
37 // Note that lazy initializers are treated like functions (but are not 37 // Note that lazy initializers are treated like functions (but are not
38 // of type [FunctionElement]. 38 // of type [FunctionElement].
39 addCompiledFunction(Element function) => compiledFunctions.add(function); 39 addCompiledFunction(Element function) => compiledFunctions.add(function);
40 } 40 }
41 41
42 class OptionalParameterTypes { 42 class OptionalParameterTypes {
43 final List<SourceString> names; 43 final List<SourceString> names;
44 final List<HType> types; 44 final List<HType> types;
45 45
46 OptionalParameterTypes(int optionalArgumentsCount) 46 OptionalParameterTypes(int optionalArgumentsCount)
47 : names = new List<SourceString>(optionalArgumentsCount), 47 : names = new List<SourceString>.fixedLength(optionalArgumentsCount),
48 types = new List<HType>(optionalArgumentsCount); 48 types = new List<HType>.fixedLength(optionalArgumentsCount);
49 49
50 int get length => names.length; 50 int get length => names.length;
51 SourceString name(int index) => names[index]; 51 SourceString name(int index) => names[index];
52 HType type(int index) => types[index]; 52 HType type(int index) => types[index];
53 int indexOf(SourceString name) => names.indexOf(name); 53 int indexOf(SourceString name) => names.indexOf(name);
54 54
55 HType typeFor(SourceString name) { 55 HType typeFor(SourceString name) {
56 int index = indexOf(name); 56 int index = indexOf(name);
57 if (index == -1) return null; 57 if (index == -1) return null;
58 return type(index); 58 return type(index);
59 } 59 }
60 60
61 void update(int index, SourceString name, HType type) { 61 void update(int index, SourceString name, HType type) {
62 names[index] = name; 62 names[index] = name;
63 types[index] = type; 63 types[index] = type;
64 } 64 }
65 65
66 String toString() => "OptionalParameterTypes($names, $types)"; 66 String toString() => "OptionalParameterTypes($names, $types)";
67 } 67 }
68 68
69 class HTypeList { 69 class HTypeList {
70 final List<HType> types; 70 final List<HType> types;
71 final List<SourceString> namedArguments; 71 final List<SourceString> namedArguments;
72 72
73 HTypeList(int length) 73 HTypeList(int length)
74 : types = new List<HType>(length), 74 : types = new List<HType>.fixedLength(length),
75 namedArguments = null; 75 namedArguments = null;
76 HTypeList.withNamedArguments(int length, this.namedArguments) 76 HTypeList.withNamedArguments(int length, this.namedArguments)
77 : types = new List<HType>(length); 77 : types = new List<HType>.fixedLength(length);
78 const HTypeList.withAllUnknown() 78 const HTypeList.withAllUnknown()
79 : types = null, 79 : types = null,
80 namedArguments = null; 80 namedArguments = null;
81 81
82 factory HTypeList.fromStaticInvocation(HInvokeStatic node, HTypeMap types) { 82 factory HTypeList.fromStaticInvocation(HInvokeStatic node, HTypeMap types) {
83 bool allUnknown = true; 83 bool allUnknown = true;
84 for (int i = 1; i < node.inputs.length; i++) { 84 for (int i = 1; i < node.inputs.length; i++) {
85 if (types[node.inputs[i]] != HType.UNKNOWN) { 85 if (types[node.inputs[i]] != HType.UNKNOWN) {
86 allUnknown = false; 86 allUnknown = false;
87 break; 87 break;
(...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 print("Inferred return types:"); 1138 print("Inferred return types:");
1139 print("----------------------"); 1139 print("----------------------");
1140 dumpReturnTypes(); 1140 dumpReturnTypes();
1141 print(""); 1141 print("");
1142 print("Inferred field types:"); 1142 print("Inferred field types:");
1143 print("------------------------"); 1143 print("------------------------");
1144 fieldTypes.dump(); 1144 fieldTypes.dump();
1145 print(""); 1145 print("");
1146 } 1146 }
1147 } 1147 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698