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

Side by Side Diff: lib/core/core_patch.dart

Issue 1659163007: Rename fletch -> dartino (Closed) Base URL: https://github.com/dartino/sdk.git@master
Patch Set: address comments Created 4 years, 10 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
« no previous file with comments | « lib/core/bigint.dart ('k') | lib/core/double.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) 2015, the Dartino project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dartino 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 library dart.core_patch; 5 library dart.core_patch;
6 6
7 import 'dart:fletch._system' as fletch; 7 import 'dart:dartino._system' as dartino;
8 import 'dart:fletch._system' show patch; 8 import 'dart:dartino._system' show patch;
9 import 'dart:collection' show LinkedHashMap, UnmodifiableMapView; 9 import 'dart:collection' show LinkedHashMap, UnmodifiableMapView;
10 10
11 part 'bigint.dart'; 11 part 'bigint.dart';
12 part 'case.dart'; 12 part 'case.dart';
13 part 'double.dart'; 13 part 'double.dart';
14 part 'int.dart'; 14 part 'int.dart';
15 part 'regexp.dart'; 15 part 'regexp.dart';
16 part 'string.dart'; 16 part 'string.dart';
17 17
18 @patch external bool identical(Object a, Object b); 18 @patch external bool identical(Object a, Object b);
19 19
20 @patch int identityHashCode(Object object) { 20 @patch int identityHashCode(Object object) {
21 if (object is int) return object; 21 if (object is int) return object;
22 return _identityHashCode(object); 22 return _identityHashCode(object);
23 } 23 }
24 24
25 @fletch.native external _identityHashCode(Object object); 25 @dartino.native external _identityHashCode(Object object);
26 26
27 @patch class Object { 27 @patch class Object {
28 @patch String toString() => '[object Object]'; 28 @patch String toString() => '[object Object]';
29 29
30 @patch int get hashCode => _identityHashCode(this); 30 @patch int get hashCode => _identityHashCode(this);
31 31
32 @patch noSuchMethod(Invocation invocation) { 32 @patch noSuchMethod(Invocation invocation) {
33 if (invocation is fletch.FletchInvocation) { 33 if (invocation is dartino.DartinoInvocation) {
34 throw invocation.asNoSuchMethodError; 34 throw invocation.asNoSuchMethodError;
35 } 35 }
36 // TODO(ahe): Get rid of this call. 36 // TODO(ahe): Get rid of this call.
37 fletch.unresolved("<unknown>"); 37 dartino.unresolved("<unknown>");
38 } 38 }
39 39
40 // The noSuchMethod helper is automatically called from the 40 // The noSuchMethod helper is automatically called from the
41 // trampoline and it is passed the selector. The arguments 41 // trampoline and it is passed the selector. The arguments
42 // to the original call are still present on the stack, so 42 // to the original call are still present on the stack, so
43 // it is possible to dig them out if need be. 43 // it is possible to dig them out if need be.
44 _noSuchMethod(receiver, receiverClass, receiverSelector) { 44 _noSuchMethod(receiver, receiverClass, receiverSelector) {
45 // NOTE: The number and type of arguments here must be kept in sync with: 45 // NOTE: The number and type of arguments here must be kept in sync with:
46 // src/vm/interpreter.cc:HandleEnterNoSuchMethod 46 // src/vm/interpreter.cc:HandleEnterNoSuchMethod
47 return noSuchMethod(new fletch.FletchInvocation( 47 return noSuchMethod(new dartino.DartinoInvocation(
48 receiver, receiverClass, receiverSelector)); 48 receiver, receiverClass, receiverSelector));
49 } 49 }
50 50
51 // The noSuchMethod trampoline is automatically generated 51 // The noSuchMethod trampoline is automatically generated
52 // by the compiler. It calls the noSuchMethod helper and 52 // by the compiler. It calls the noSuchMethod helper and
53 // takes care off removing an arbitrary number of arguments 53 // takes care off removing an arbitrary number of arguments
54 // from the caller stack before it returns. 54 // from the caller stack before it returns.
55 external _noSuchMethodTrampoline(); 55 external _noSuchMethodTrampoline();
56 } 56 }
57 57
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 181 }
182 return '[object Object]'; 182 return '[object Object]';
183 } 183 }
184 184
185 @patch StackTrace get stackTrace { 185 @patch StackTrace get stackTrace {
186 throw "getter stackTrace is unimplemented"; 186 throw "getter stackTrace is unimplemented";
187 } 187 }
188 } 188 }
189 189
190 @patch class Stopwatch { 190 @patch class Stopwatch {
191 @patch @fletch.native external static int _now(); 191 @patch @dartino.native external static int _now();
192 192
193 @patch static int _initTicker() { 193 @patch static int _initTicker() {
194 _frequency = _fletchNative_frequency(); 194 _frequency = _dartinoNative_frequency();
195 } 195 }
196 196
197 @fletch.native external static int _fletchNative_frequency(); 197 @dartino.native external static int _dartinoNative_frequency();
198 } 198 }
199 199
200 @patch class RegExp { 200 @patch class RegExp {
201 @patch factory RegExp(String source, {bool multiLine: false, 201 @patch factory RegExp(String source, {bool multiLine: false,
202 bool caseSensitive: true}) { 202 bool caseSensitive: true}) {
203 return new _MiniExp(source, multiLine, caseSensitive); 203 return new _MiniExp(source, multiLine, caseSensitive);
204 } 204 }
205 } 205 }
206 206
207 @patch class List { 207 @patch class List {
208 @patch factory List([int length]) { 208 @patch factory List([int length]) {
209 return fletch.newList(length); 209 return dartino.newList(length);
210 } 210 }
211 211
212 @patch factory List.filled(int length, E fill) { 212 @patch factory List.filled(int length, E fill) {
213 // All error handling on the length parameter is done at the implementation 213 // All error handling on the length parameter is done at the implementation
214 // of new _List. 214 // of new _List.
215 var result = fletch.newList(length); 215 var result = dartino.newList(length);
216 if (fill != null) { 216 if (fill != null) {
217 for (int i = 0; i < length; i++) { 217 for (int i = 0; i < length; i++) {
218 result[i] = fill; 218 result[i] = fill;
219 } 219 }
220 } 220 }
221 return result; 221 return result;
222 } 222 }
223 223
224 @patch factory List.from(Iterable elements, {bool growable: true}) { 224 @patch factory List.from(Iterable elements, {bool growable: true}) {
225 // TODO(ajohnsen): elements.length can be slow if not a List. Consider 225 // TODO(ajohnsen): elements.length can be slow if not a List. Consider
226 // fast-path non-list & growable, and create internal helper for non-list & 226 // fast-path non-list & growable, and create internal helper for non-list &
227 // non-growable. 227 // non-growable.
228 int length = elements.length; 228 int length = elements.length;
229 var list; 229 var list;
230 if (growable) { 230 if (growable) {
231 list = fletch.newList(null); 231 list = dartino.newList(null);
232 list.length = length; 232 list.length = length;
233 } else { 233 } else {
234 list = fletch.newList(length); 234 list = dartino.newList(length);
235 } 235 }
236 if (elements is List) { 236 if (elements is List) {
237 for (int i = 0; i < length; i++) { 237 for (int i = 0; i < length; i++) {
238 list[i] = elements[i]; 238 list[i] = elements[i];
239 } 239 }
240 } else { 240 } else {
241 int i = 0; 241 int i = 0;
242 elements.forEach((e) { list[i++] = e; }); 242 elements.forEach((e) { list[i++] = e; });
243 } 243 }
244 return list; 244 return list;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 source.startsWith('+0x')) { 287 source.startsWith('+0x')) {
288 if (onError != null) return onError(source); 288 if (onError != null) return onError(source);
289 throw new FormatException("Can't parse string as integer", source); 289 throw new FormatException("Can't parse string as integer", source);
290 } 290 }
291 } else { 291 } else {
292 if (radix < 2 || radix > 36) throw new ArgumentError(radix); 292 if (radix < 2 || radix > 36) throw new ArgumentError(radix);
293 } 293 }
294 return _parse(source, radix, onError); 294 return _parse(source, radix, onError);
295 } 295 }
296 296
297 @fletch.native static int _parse( 297 @dartino.native static int _parse(
298 String source, 298 String source,
299 int radix, 299 int radix,
300 int onError(String source)) { 300 int onError(String source)) {
301 switch (fletch.nativeError) { 301 switch (dartino.nativeError) {
302 case fletch.wrongArgumentType: 302 case dartino.wrongArgumentType:
303 throw new ArgumentError(source); 303 throw new ArgumentError(source);
304 case fletch.indexOutOfBounds: 304 case dartino.indexOutOfBounds:
305 if (onError != null) return onError(source); 305 if (onError != null) return onError(source);
306 throw new FormatException("Can't parse string as integer", source); 306 throw new FormatException("Can't parse string as integer", source);
307 } 307 }
308 } 308 }
309 309
310 @patch factory int.fromEnvironment( 310 @patch factory int.fromEnvironment(
311 String name, 311 String name,
312 {int defaultValue}) => defaultValue; 312 {int defaultValue}) => defaultValue;
313 } 313 }
314 314
315 @patch class double { 315 @patch class double {
316 @patch static double parse(String source, [double onError(String source)]) { 316 @patch static double parse(String source, [double onError(String source)]) {
317 return _parse(source.trim(), onError); 317 return _parse(source.trim(), onError);
318 } 318 }
319 319
320 @fletch.native static double _parse( 320 @dartino.native static double _parse(
321 String source, 321 String source,
322 double onError(String source)) { 322 double onError(String source)) {
323 switch (fletch.nativeError) { 323 switch (dartino.nativeError) {
324 case fletch.wrongArgumentType: 324 case dartino.wrongArgumentType:
325 throw new ArgumentError(source); 325 throw new ArgumentError(source);
326 case fletch.indexOutOfBounds: 326 case dartino.indexOutOfBounds:
327 if (onError != null) return onError(source); 327 if (onError != null) return onError(source);
328 throw new FormatException("Can't parse string as double", source); 328 throw new FormatException("Can't parse string as double", source);
329 } 329 }
330 } 330 }
331 } 331 }
332 332
333 @patch class DateTime { 333 @patch class DateTime {
334 static const _MILLISECOND_INDEX = 0; 334 static const _MILLISECOND_INDEX = 0;
335 static const _SECOND_INDEX = 1; 335 static const _SECOND_INDEX = 1;
336 static const _MINUTE_INDEX = 2; 336 static const _MINUTE_INDEX = 2;
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 static int _timeZoneOffsetInSeconds(int millisecondsSinceEpoch) { 650 static int _timeZoneOffsetInSeconds(int millisecondsSinceEpoch) {
651 int equivalentSeconds = _equivalentSeconds(millisecondsSinceEpoch); 651 int equivalentSeconds = _equivalentSeconds(millisecondsSinceEpoch);
652 return _timeZoneOffset(equivalentSeconds); 652 return _timeZoneOffset(equivalentSeconds);
653 } 653 }
654 654
655 static String _timeZoneName(int millisecondsSinceEpoch) { 655 static String _timeZoneName(int millisecondsSinceEpoch) {
656 int equivalentSeconds = _equivalentSeconds(millisecondsSinceEpoch); 656 int equivalentSeconds = _equivalentSeconds(millisecondsSinceEpoch);
657 return _timeZone(equivalentSeconds); 657 return _timeZone(equivalentSeconds);
658 } 658 }
659 659
660 @fletch.native external static int _getCurrentMs(); 660 @dartino.native external static int _getCurrentMs();
661 661
662 @fletch.native external static String _timeZone(int clampedSecondsSinceEpoch); 662 @dartino.native external static String _timeZone(int clampedSecondsSinceEpoch) ;
663 663
664 @fletch.native external static int _timeZoneOffset( 664 @dartino.native external static int _timeZoneOffset(
665 int clampedSecondsSinceEpoch); 665 int clampedSecondsSinceEpoch);
666 666
667 @fletch.native external static int _localTimeZoneOffset(); 667 @dartino.native external static int _localTimeZoneOffset();
668 } 668 }
669 669
670 @patch class Uri { 670 @patch class Uri {
671 @patch static Uri get base { 671 @patch static Uri get base {
672 return new Uri.file(_base()); 672 return new Uri.file(_base());
673 } 673 }
674 674
675 @patch static bool get _isWindows => false; 675 @patch static bool get _isWindows => false;
676 676
677 @fletch.native static String _base() { 677 @dartino.native static String _base() {
678 throw new RangeError("The Uri.base path is too large"); 678 throw new RangeError("The Uri.base path is too large");
679 } 679 }
680 680
681 /// Encodes all characters in the string [text] except for those 681 /// Encodes all characters in the string [text] except for those
682 /// that appear in [canonicalTable], and returns the escaped string. 682 /// that appear in [canonicalTable], and returns the escaped string.
683 @patch static String _uriEncode( 683 @patch static String _uriEncode(
684 List<int> canonicalTable, 684 List<int> canonicalTable,
685 String text, 685 String text,
686 Encoding encoding, 686 Encoding encoding,
687 bool spaceToPlus) { 687 bool spaceToPlus) {
(...skipping 15 matching lines...) Expand all
703 } else if (spaceToPlus && byte == _SPACE) { 703 } else if (spaceToPlus && byte == _SPACE) {
704 result.writeCharCode(_PLUS); 704 result.writeCharCode(_PLUS);
705 } else { 705 } else {
706 result.writeCharCode(_PERCENT); 706 result.writeCharCode(_PERCENT);
707 byteToHex(byte, result); 707 byteToHex(byte, result);
708 } 708 }
709 } 709 }
710 return result.toString(); 710 return result.toString();
711 } 711 }
712 } 712 }
OLDNEW
« no previous file with comments | « lib/core/bigint.dart ('k') | lib/core/double.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698