| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library dart._js_helper; | 5 library dart._js_helper; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'dart:_foreign_helper' show | 9 import 'dart:_foreign_helper' show |
| 10 JS, | 10 JS, |
| 11 JS_STRING_CONCAT; | 11 JS_STRING_CONCAT; |
| 12 | 12 |
| 13 import 'dart:_interceptors'; | 13 import 'dart:_interceptors'; |
| 14 | 14 |
| 15 part 'annotations.dart'; | 15 part 'annotations.dart'; |
| 16 part 'native_helper.dart'; | 16 part 'native_helper.dart'; |
| 17 part 'regexp_helper.dart'; | 17 part 'regexp_helper.dart'; |
| 18 part 'string_helper.dart'; | 18 part 'string_helper.dart'; |
| 19 part 'js_rti.dart'; | 19 part 'js_rti.dart'; |
| 20 | 20 |
| 21 class _Patch { | 21 class _Patch { |
| 22 const _Patch(); | 22 const _Patch(); |
| 23 } | 23 } |
| 24 | 24 |
| 25 const _Patch patch = const _Patch(); | 25 const _Patch patch = const _Patch(); |
| 26 | 26 |
| 27 | |
| 28 /// Marks the internal map in dart2js, so that internal libraries can is-check | 27 /// Marks the internal map in dart2js, so that internal libraries can is-check |
| 29 // them. | 28 // them. |
| 30 abstract class InternalMap { | 29 abstract class InternalMap { |
| 31 } | 30 } |
| 32 | 31 |
| 33 class Primitives { | 32 class Primitives { |
| 34 /// Isolate-unique ID for caching [JsClosureMirror.function]. | 33 /// Isolate-unique ID for caching [JsClosureMirror.function]. |
| 35 /// Note the initial value is used by the first isolate (or if there are no | 34 /// Note the initial value is used by the first isolate (or if there are no |
| 36 /// isolates), new isolates will update this value to avoid conflicts by | 35 /// isolates), new isolates will update this value to avoid conflicts by |
| 37 /// calling [initializeStatics]. | 36 /// calling [initializeStatics]. |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 /// Returns the type of [object] as a string (including type arguments). | 168 /// Returns the type of [object] as a string (including type arguments). |
| 170 /// | 169 /// |
| 171 /// In minified mode, uses the unminified names if available. | 170 /// In minified mode, uses the unminified names if available. |
| 172 static String objectTypeName(Object object) { | 171 static String objectTypeName(Object object) { |
| 173 return getRuntimeType(object).toString(); | 172 return getRuntimeType(object).toString(); |
| 174 } | 173 } |
| 175 | 174 |
| 176 /// In minified mode, uses the unminified names if available. | 175 /// In minified mode, uses the unminified names if available. |
| 177 static String objectToString(Object object) { | 176 static String objectToString(Object object) { |
| 178 // String name = objectTypeName(object); | 177 // String name = objectTypeName(object); |
| 179 String name = JS('String', 'dart.typeName(dart.realRuntimeType(#))', object)
; | 178 String name = JS('String', 'dart.typeName(dart.realRuntimeType(#))', object)
; |
| 180 return "Instance of '$name'"; | 179 return "Instance of '$name'"; |
| 181 } | 180 } |
| 182 | 181 |
| 183 static int dateNow() => JS('int', r'Date.now()'); | 182 static int dateNow() => JS('int', r'Date.now()'); |
| 184 | 183 |
| 185 static void initTicker() { | 184 static void initTicker() { |
| 186 if (timerFrequency != null) return; | 185 if (timerFrequency != null) return; |
| 187 // Start with low-resolution. We overwrite the fields if we find better. | 186 // Start with low-resolution. We overwrite the fields if we find better. |
| 188 timerFrequency = 1000; | 187 timerFrequency = 1000; |
| 189 timerTicks = dateNow; | 188 timerTicks = dateNow; |
| (...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 788 | 787 |
| 789 SyncIterable(this._generator, this._args); | 788 SyncIterable(this._generator, this._args); |
| 790 | 789 |
| 791 // TODO(jmesserly): this should be [Symbol.iterator]() method. Unfortunately | 790 // TODO(jmesserly): this should be [Symbol.iterator]() method. Unfortunately |
| 792 // we have no way of telling the compiler yet, so it will generate an extra | 791 // we have no way of telling the compiler yet, so it will generate an extra |
| 793 // layer of indirection that wraps the SyncIterator. | 792 // layer of indirection that wraps the SyncIterator. |
| 794 _jsIterator() => JS('', '#(...#)', _generator, _args); | 793 _jsIterator() => JS('', '#(...#)', _generator, _args); |
| 795 | 794 |
| 796 Iterator<E> get iterator => new SyncIterator<E>(_jsIterator()); | 795 Iterator<E> get iterator => new SyncIterator<E>(_jsIterator()); |
| 797 } | 796 } |
| OLD | NEW |