OLD | NEW |
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 // Patch file for dart:core classes. | 5 // Patch file for dart:core classes. |
6 import "dart:_collection-dev" as _symbol_dev; | 6 import "dart:_collection-dev" as _symbol_dev; |
7 import 'dart:_interceptors'; | 7 import 'dart:_interceptors'; |
8 import 'dart:_js_helper' show checkNull, | 8 import 'dart:_js_helper' show checkNull, |
9 getRuntimeType, | 9 getRuntimeType, |
10 JSSyntaxRegExp, | 10 JSSyntaxRegExp, |
11 Primitives, | 11 Primitives, |
12 stringJoinUnchecked, | 12 stringJoinUnchecked, |
13 objectHashCode; | 13 objectHashCode; |
| 14 import 'dart:_js_primitives' show |
| 15 newFixedList, |
| 16 newGrowableList; |
14 | 17 |
15 String _symbolToString(Symbol symbol) => _symbol_dev.Symbol.getName(symbol); | 18 String _symbolToString(Symbol symbol) => _symbol_dev.Symbol.getName(symbol); |
16 | 19 |
17 _symbolMapToStringMap(Map<Symbol, dynamic> map) { | 20 _symbolMapToStringMap(Map<Symbol, dynamic> map) { |
18 if (map == null) return null; | 21 if (map == null) return null; |
19 var result = new Map<String, dynamic>(); | 22 var result = new Map<String, dynamic>(); |
20 map.forEach((Symbol key, value) { | 23 map.forEach((Symbol key, value) { |
21 result[_symbolToString(key)] = value; | 24 result[_symbolToString(key)] = value; |
22 }); | 25 }); |
23 return result; | 26 return result; |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 // Patch for Stopwatch implementation. | 186 // Patch for Stopwatch implementation. |
184 patch class Stopwatch { | 187 patch class Stopwatch { |
185 patch static int _frequency() => 1000000; | 188 patch static int _frequency() => 1000000; |
186 patch static int _now() => Primitives.numMicroseconds(); | 189 patch static int _now() => Primitives.numMicroseconds(); |
187 } | 190 } |
188 | 191 |
189 | 192 |
190 // Patch for List implementation. | 193 // Patch for List implementation. |
191 patch class List<E> { | 194 patch class List<E> { |
192 patch factory List([int length]) { | 195 patch factory List([int length]) { |
193 if (length == null) return new JSArray<E>.emptyGrowable(); | 196 if (length == null) return newGrowableList(0); |
194 return new JSArray<E>.fixed(length); | 197 // Explicit type test is necessary to protect [newFixedList] in |
| 198 // unchecked mode. |
| 199 if ((length is !int) || (length < 0)) { |
| 200 throw new ArgumentError("Length must be a positive integer: $length."); |
| 201 } |
| 202 return newFixedList(length); |
195 } | 203 } |
196 | 204 |
197 patch factory List.filled(int length, E fill) { | 205 patch factory List.filled(int length, E fill) { |
198 List result = new JSArray<E>.fixed(length); | 206 // Explicit type test is necessary to protect [newFixedList] in |
| 207 // unchecked mode. |
| 208 if ((length is !int) || (length < 0)) { |
| 209 throw new ArgumentError("Length must be a positive integer: $length."); |
| 210 } |
| 211 List result = newFixedList(length); |
199 if (length != 0 && fill != null) { | 212 if (length != 0 && fill != null) { |
200 for (int i = 0; i < result.length; i++) { | 213 for (int i = 0; i < result.length; i++) { |
201 result[i] = fill; | 214 result[i] = fill; |
202 } | 215 } |
203 } | 216 } |
204 return result; | 217 return result; |
205 } | 218 } |
206 } | 219 } |
207 | 220 |
208 | 221 |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 | 331 |
319 patch class Uri { | 332 patch class Uri { |
320 patch static bool get _isWindows => false; | 333 patch static bool get _isWindows => false; |
321 | 334 |
322 patch static Uri get base { | 335 patch static Uri get base { |
323 String uri = Primitives.currentUri(); | 336 String uri = Primitives.currentUri(); |
324 if (uri != null) return Uri.parse(uri); | 337 if (uri != null) return Uri.parse(uri); |
325 throw new UnsupportedError("'Uri.base' is not supported"); | 338 throw new UnsupportedError("'Uri.base' is not supported"); |
326 } | 339 } |
327 } | 340 } |
OLD | NEW |