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

Side by Side Diff: lib/core/embedded_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/embedded_core.dart ('k') | lib/core/int.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 9
10 part 'bigint.dart'; 10 part 'bigint.dart';
11 part 'case.dart'; 11 part 'case.dart';
12 part 'double.dart'; 12 part 'double.dart';
13 part 'int.dart'; 13 part 'int.dart';
14 part 'string.dart'; 14 part 'string.dart';
15 15
16 // TODO(sigurdm): move the following a to part file shared with "core.patch" 16 // TODO(sigurdm): move the following a to part file shared with "core.patch"
17 // when part files can contain patch-classes. 17 // when part files can contain patch-classes.
18 18
19 @patch external bool identical(Object a, Object b); 19 @patch external bool identical(Object a, Object b);
20 20
21 @patch int identityHashCode(Object object) { 21 @patch int identityHashCode(Object object) {
22 if (object is int) return object; 22 if (object is int) return object;
23 return _identityHashCode(object); 23 return _identityHashCode(object);
24 } 24 }
25 25
26 @fletch.native external _identityHashCode(Object object); 26 @dartino.native external _identityHashCode(Object object);
27 27
28 @patch class Object { 28 @patch class Object {
29 @patch String toString() => '[object Object]'; 29 @patch String toString() => '[object Object]';
30 30
31 @patch int get hashCode => _identityHashCode(this); 31 @patch int get hashCode => _identityHashCode(this);
32 32
33 @patch noSuchMethod(Invocation invocation) { 33 @patch noSuchMethod(Invocation invocation) {
34 if (invocation is fletch.FletchInvocation) { 34 if (invocation is dartino.DartinoInvocation) {
35 throw invocation.asNoSuchMethodError; 35 throw invocation.asNoSuchMethodError;
36 } 36 }
37 // TODO(ahe): Get rid of this call. 37 // TODO(ahe): Get rid of this call.
38 fletch.unresolved("<unknown>"); 38 dartino.unresolved("<unknown>");
39 } 39 }
40 40
41 // The noSuchMethod helper is automatically called from the 41 // The noSuchMethod helper is automatically called from the
42 // trampoline and it is passed the selector. The arguments 42 // trampoline and it is passed the selector. The arguments
43 // to the original call are still present on the stack, so 43 // to the original call are still present on the stack, so
44 // it is possible to dig them out if need be. 44 // it is possible to dig them out if need be.
45 _noSuchMethod(receiver, receiverClass, receiverSelector) { 45 _noSuchMethod(receiver, receiverClass, receiverSelector) {
46 // NOTE: The number and type of arguments here must be kept in sync with: 46 // NOTE: The number and type of arguments here must be kept in sync with:
47 // src/vm/interpreter.cc:HandleEnterNoSuchMethod 47 // src/vm/interpreter.cc:HandleEnterNoSuchMethod
48 return noSuchMethod(new fletch.FletchInvocation( 48 return noSuchMethod(new dartino.DartinoInvocation(
49 receiver, receiverClass, receiverSelector)); 49 receiver, receiverClass, receiverSelector));
50 } 50 }
51 51
52 // The noSuchMethod trampoline is automatically generated 52 // The noSuchMethod trampoline is automatically generated
53 // by the compiler. It calls the noSuchMethod helper and 53 // by the compiler. It calls the noSuchMethod helper and
54 // takes care off removing an arbitrary number of arguments 54 // takes care off removing an arbitrary number of arguments
55 // from the caller stack before it returns. 55 // from the caller stack before it returns.
56 external _noSuchMethodTrampoline(); 56 external _noSuchMethodTrampoline();
57 } 57 }
58 58
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 } 183 }
184 return '[object Object]'; 184 return '[object Object]';
185 } 185 }
186 186
187 @patch StackTrace get stackTrace { 187 @patch StackTrace get stackTrace {
188 throw "getter stackTrace is unimplemented"; 188 throw "getter stackTrace is unimplemented";
189 } 189 }
190 } 190 }
191 191
192 @patch class Stopwatch { 192 @patch class Stopwatch {
193 @patch @fletch.native external static int _now(); 193 @patch @dartino.native external static int _now();
194 194
195 @patch static int _initTicker() { 195 @patch static int _initTicker() {
196 _frequency = _fletchNative_frequency(); 196 _frequency = _dartinoNative_frequency();
197 } 197 }
198 198
199 @fletch.native external static int _fletchNative_frequency(); 199 @dartino.native external static int _dartinoNative_frequency();
200 } 200 }
201 201
202 @patch class List { 202 @patch class List {
203 @patch factory List([int length]) { 203 @patch factory List([int length]) {
204 return fletch.newList(length); 204 return dartino.newList(length);
205 } 205 }
206 206
207 @patch factory List.filled(int length, E fill) { 207 @patch factory List.filled(int length, E fill) {
208 // All error handling on the length parameter is done at the implementation 208 // All error handling on the length parameter is done at the implementation
209 // of new _List. 209 // of new _List.
210 var result = fletch.newList(length); 210 var result = dartino.newList(length);
211 if (fill != null) { 211 if (fill != null) {
212 for (int i = 0; i < length; i++) { 212 for (int i = 0; i < length; i++) {
213 result[i] = fill; 213 result[i] = fill;
214 } 214 }
215 } 215 }
216 return result; 216 return result;
217 } 217 }
218 218
219 @patch factory List.from(Iterable elements, {bool growable: true}) { 219 @patch factory List.from(Iterable elements, {bool growable: true}) {
220 // TODO(ajohnsen): elements.length can be slow if not a List. Consider 220 // TODO(ajohnsen): elements.length can be slow if not a List. Consider
221 // fast-path non-list & growable, and create internal helper for non-list & 221 // fast-path non-list & growable, and create internal helper for non-list &
222 // non-growable. 222 // non-growable.
223 int length = elements.length; 223 int length = elements.length;
224 var list; 224 var list;
225 if (growable) { 225 if (growable) {
226 list = fletch.newList(null); 226 list = dartino.newList(null);
227 list.length = length; 227 list.length = length;
228 } else { 228 } else {
229 list = fletch.newList(length); 229 list = dartino.newList(length);
230 } 230 }
231 if (elements is List) { 231 if (elements is List) {
232 for (int i = 0; i < length; i++) { 232 for (int i = 0; i < length; i++) {
233 list[i] = elements[i]; 233 list[i] = elements[i];
234 } 234 }
235 } else { 235 } else {
236 int i = 0; 236 int i = 0;
237 elements.forEach((e) { list[i++] = e; }); 237 elements.forEach((e) { list[i++] = e; });
238 } 238 }
239 return list; 239 return list;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 source.startsWith('+0x')) { 282 source.startsWith('+0x')) {
283 if (onError != null) return onError(source); 283 if (onError != null) return onError(source);
284 throw new FormatException("Can't parse string as integer", source); 284 throw new FormatException("Can't parse string as integer", source);
285 } 285 }
286 } else { 286 } else {
287 if (radix < 2 || radix > 36) throw new ArgumentError(radix); 287 if (radix < 2 || radix > 36) throw new ArgumentError(radix);
288 } 288 }
289 return _parse(source, radix, onError); 289 return _parse(source, radix, onError);
290 } 290 }
291 291
292 @fletch.native static int _parse( 292 @dartino.native static int _parse(
293 String source, 293 String source,
294 int radix, 294 int radix,
295 int onError(String source)) { 295 int onError(String source)) {
296 switch (fletch.nativeError) { 296 switch (dartino.nativeError) {
297 case fletch.wrongArgumentType: 297 case dartino.wrongArgumentType:
298 throw new ArgumentError(source); 298 throw new ArgumentError(source);
299 case fletch.indexOutOfBounds: 299 case dartino.indexOutOfBounds:
300 if (onError != null) return onError(source); 300 if (onError != null) return onError(source);
301 throw new FormatException("Can't parse string as integer", source); 301 throw new FormatException("Can't parse string as integer", source);
302 } 302 }
303 } 303 }
304 304
305 @patch factory int.fromEnvironment( 305 @patch factory int.fromEnvironment(
306 String name, 306 String name,
307 {int defaultValue}) => defaultValue; 307 {int defaultValue}) => defaultValue;
308 } 308 }
309 309
310 @patch class double { 310 @patch class double {
311 @patch static double parse(String source, [double onError(String source)]) { 311 @patch static double parse(String source, [double onError(String source)]) {
312 return _parse(source.trim(), onError); 312 return _parse(source.trim(), onError);
313 } 313 }
314 314
315 @fletch.native static double _parse( 315 @dartino.native static double _parse(
316 String source, 316 String source,
317 double onError(String source)) { 317 double onError(String source)) {
318 switch (fletch.nativeError) { 318 switch (dartino.nativeError) {
319 case fletch.wrongArgumentType: 319 case dartino.wrongArgumentType:
320 throw new ArgumentError(source); 320 throw new ArgumentError(source);
321 case fletch.indexOutOfBounds: 321 case dartino.indexOutOfBounds:
322 if (onError != null) return onError(source); 322 if (onError != null) return onError(source);
323 throw new FormatException("Can't parse string as double", source); 323 throw new FormatException("Can't parse string as double", source);
324 } 324 }
325 } 325 }
326 } 326 }
327 327
328 @patch class DateTime { 328 @patch class DateTime {
329 static const _MILLISECOND_INDEX = 0; 329 static const _MILLISECOND_INDEX = 0;
330 static const _SECOND_INDEX = 1; 330 static const _SECOND_INDEX = 1;
331 static const _MINUTE_INDEX = 2; 331 static const _MINUTE_INDEX = 2;
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 static int _timeZoneOffsetInSeconds(int millisecondsSinceEpoch) { 646 static int _timeZoneOffsetInSeconds(int millisecondsSinceEpoch) {
647 int equivalentSeconds = _equivalentSeconds(millisecondsSinceEpoch); 647 int equivalentSeconds = _equivalentSeconds(millisecondsSinceEpoch);
648 return _timeZoneOffset(equivalentSeconds); 648 return _timeZoneOffset(equivalentSeconds);
649 } 649 }
650 650
651 static String _timeZoneName(int millisecondsSinceEpoch) { 651 static String _timeZoneName(int millisecondsSinceEpoch) {
652 int equivalentSeconds = _equivalentSeconds(millisecondsSinceEpoch); 652 int equivalentSeconds = _equivalentSeconds(millisecondsSinceEpoch);
653 return _timeZone(equivalentSeconds); 653 return _timeZone(equivalentSeconds);
654 } 654 }
655 655
656 @fletch.native external static int _getCurrentMs(); 656 @dartino.native external static int _getCurrentMs();
657 657
658 @fletch.native external static String _timeZone(int clampedSecondsSinceEpoch); 658 @dartino.native external static String _timeZone(int clampedSecondsSinceEpoch) ;
659 659
660 @fletch.native external static int _timeZoneOffset( 660 @dartino.native external static int _timeZoneOffset(
661 int clampedSecondsSinceEpoch); 661 int clampedSecondsSinceEpoch);
662 662
663 @fletch.native external static int _localTimeZoneOffset(); 663 @dartino.native external static int _localTimeZoneOffset();
664 } 664 }
OLDNEW
« no previous file with comments | « lib/core/embedded_core.dart ('k') | lib/core/int.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698