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

Side by Side Diff: compiler/lib/implementation/string.dart

Issue 8321024: Clean up (most) uses of Array. Still more to come in the VM corelib code base. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 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 | Annotate | Revision Log
« no previous file with comments | « compiler/lib/implementation/regexp.dart ('k') | compiler/lib/implementation/string.js » ('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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 class StringImplementation implements String native "String" { 5 class StringImplementation implements String native "String" {
6 factory StringImplementation.fromValues(Array<int> values) { 6 factory StringImplementation.fromValues(List<int> values) {
7 return _newFromValues(values); 7 return _newFromValues(values);
8 } 8 }
9 9
10 String operator[](int index) { 10 String operator[](int index) {
11 if (0 <= index && index < length) { 11 if (0 <= index && index < length) {
12 return _indexOperator(index); 12 return _indexOperator(index);
13 } 13 }
14 throw new IndexOutOfRangeException(index); 14 throw new IndexOutOfRangeException(index);
15 } 15 }
16 16
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 return _replaceAll(from, to); 121 return _replaceAll(from, to);
122 } 122 }
123 } else if (from is JSSyntaxRegExp) { 123 } else if (from is JSSyntaxRegExp) {
124 return _replaceAll(from, to); 124 return _replaceAll(from, to);
125 } else { 125 } else {
126 // TODO(floitsch): implement generic String.replace (with patterns). 126 // TODO(floitsch): implement generic String.replace (with patterns).
127 throw "StringImplementation.replaceAll(Pattern) UNIMPLEMENTED"; 127 throw "StringImplementation.replaceAll(Pattern) UNIMPLEMENTED";
128 } 128 }
129 } 129 }
130 130
131 Array<String> split(Pattern pattern) { 131 List<String> split(Pattern pattern) {
132 if (pattern is String || pattern is JSSyntaxRegExp) { 132 if (pattern is String || pattern is JSSyntaxRegExp) {
133 return _split(pattern); 133 return _split(pattern);
134 } else { 134 } else {
135 throw "StringImplementation.split(Pattern) UNIMPLEMENTED"; 135 throw "StringImplementation.split(Pattern) UNIMPLEMENTED";
136 } 136 }
137 } 137 }
138 138
139 Iterable<Match> allMatches(String str) { 139 Iterable<Match> allMatches(String str) {
140 List<Match> result = []; 140 List<Match> result = [];
141 if (this.isEmpty()) return result; 141 if (this.isEmpty()) return result;
142 int length = this.length; 142 int length = this.length;
143 143
144 int ix = 0; 144 int ix = 0;
145 while (ix < str.length) { 145 while (ix < str.length) {
146 int foundIx = str.indexOf(this, ix); 146 int foundIx = str.indexOf(this, ix);
147 if (foundIx < 0) break; 147 if (foundIx < 0) break;
148 // Call "toString" to coerce the "this" back to a primitive string. 148 // Call "toString" to coerce the "this" back to a primitive string.
149 result.add(new _StringMatch(foundIx, str, this.toString())); 149 result.add(new _StringMatch(foundIx, str, this.toString()));
150 ix = foundIx + length; 150 ix = foundIx + length;
151 } 151 }
152 return result; 152 return result;
153 } 153 }
154 154
155 Array<String> splitChars() { 155 List<String> splitChars() {
156 return _split(""); 156 return _split("");
157 } 157 }
158 158
159 Array<int> charCodes() { 159 List<int> charCodes() {
160 int len = length; 160 int len = length;
161 Array<int> result = new Array<int>(len); 161 List<int> result = new List<int>(len);
162 for (int i = 0; i < len; i++) { 162 for (int i = 0; i < len; i++) {
163 // It is safe to call the private function (which doesn't do 163 // It is safe to call the private function (which doesn't do
164 // range-checks). 164 // range-checks).
165 result[i] = _charCodeAt(i); 165 result[i] = _charCodeAt(i);
166 } 166 }
167 return result; 167 return result;
168 } 168 }
169 169
170 String toLowerCase() native; 170 String toLowerCase() native;
171 String toUpperCase() native; 171 String toUpperCase() native;
172 172
173 int hashCode() native; 173 int hashCode() native;
174 174
175 // Note: we can't just return 'this', because we want the primitive string 175 // Note: we can't just return 'this', because we want the primitive string
176 // and not the wrapped String object. 176 // and not the wrapped String object.
177 String toString() native; 177 String toString() native;
178 178
179 int compareTo(String other) native; 179 int compareTo(String other) native;
180 180
181 static String _newFromValues(Array<int> values) native; 181 static String _newFromValues(List<int> values) native;
182 String _indexOperator(int index) native; 182 String _indexOperator(int index) native;
183 int _charCodeAt(int index) native; 183 int _charCodeAt(int index) native;
184 String _substringUnchecked(int startIndex, int endIndex) native; 184 String _substringUnchecked(int startIndex, int endIndex) native;
185 String _replace(Pattern from, String to) native; 185 String _replace(Pattern from, String to) native;
186 String _replaceAll(Pattern from, String to) native; 186 String _replaceAll(Pattern from, String to) native;
187 Array<String> _split(Pattern pattern) native; 187 List<String> _split(Pattern pattern) native;
188 188
189 get dynamic() { return toString(); } 189 get dynamic() { return toString(); }
190 } 190 }
191 191
192 class _StringJsUtil { 192 class _StringJsUtil {
193 static String toDartString(o) native { 193 static String toDartString(o) native {
194 if (o === null) return "null"; 194 if (o === null) return "null";
195 return o.toString(); 195 return o.toString();
196 } 196 }
197 } 197 }
198 198
199 class _StringMatch implements Match { 199 class _StringMatch implements Match {
200 const _StringMatch(int this._start, 200 const _StringMatch(int this._start,
201 String this.str, 201 String this.str,
202 String this.pattern); 202 String this.pattern);
203 203
204 int start() => _start; 204 int start() => _start;
205 int end() => _start + pattern.length; 205 int end() => _start + pattern.length;
206 String operator[](int g) => group(g); 206 String operator[](int g) => group(g);
207 int groupCount() => 0; 207 int groupCount() => 0;
208 208
209 String group(int group) { 209 String group(int group) {
210 if (group != 0) { 210 if (group != 0) {
211 throw new IndexOutOfRangeException(group); 211 throw new IndexOutOfRangeException(group);
212 } 212 }
213 return pattern; 213 return pattern;
214 } 214 }
215 215
216 Array<String> groups(Array<int> groups) { 216 List<String> groups(List<int> groups) {
217 Array<String> result = new Array<String>(); 217 List<String> result = new List<String>();
218 for (int g in groups) { 218 for (int g in groups) {
219 result.add(group(g)); 219 result.add(group(g));
220 } 220 }
221 return result; 221 return result;
222 } 222 }
223 223
224 final int _start; 224 final int _start;
225 final String str; 225 final String str;
226 final String pattern; 226 final String pattern;
227 } 227 }
OLDNEW
« no previous file with comments | « compiler/lib/implementation/regexp.dart ('k') | compiler/lib/implementation/string.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698