| 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 // VM-specific implementation of the dart:mirrors library. |    5 // VM-specific implementation of the dart:mirrors library. | 
|    6  |    6  | 
|    7 // These values are allowed to be passed directly over the wire. |    7 // These values are allowed to be passed directly over the wire. | 
|    8 bool _isSimpleValue(var value) { |    8 bool _isSimpleValue(var value) { | 
|    9   return (value == null || value is num || value is String || value is bool); |    9   return (value == null || value is num || value is String || value is bool); | 
|   10 } |   10 } | 
|   11  |   11  | 
|   12 Map _filterMap(Map old_map, bool filter(key, value)) { |   12 Map _filterMap(Map old_map, bool filter(key, value)) { | 
|   13   Map new_map = new Map(); |   13   Map new_map = new Map(); | 
|   14   old_map.forEach((key, value) { |   14   old_map.forEach((key, value) { | 
|   15       if (filter(key, value)) { |   15       if (filter(key, value)) { | 
|   16         new_map[key] = value; |   16         new_map[key] = value; | 
|   17       } |   17       } | 
|   18     }); |   18     }); | 
|   19   return new_map; |   19   return new_map; | 
|   20 } |   20 } | 
|   21  |   21  | 
|   22 String _makeSignatureString(TypeMirror returnType, |   22 String _makeSignatureString(TypeMirror returnType, | 
|   23                             List<ParameterMirror> parameters) { |   23                             List<ParameterMirror> parameters) { | 
|   24   StringBuffer buf = new StringBuffer(); |   24   StringBuffer buf = new StringBuffer(); | 
|   25   buf.add(returnType.qualifiedName); |   25   buf.write(returnType.qualifiedName); | 
|   26   buf.add(' ('); |   26   buf.write(' ('); | 
|   27   bool found_optional_param = false; |   27   bool found_optional_param = false; | 
|   28   for (int i = 0; i < parameters.length; i++) { |   28   for (int i = 0; i < parameters.length; i++) { | 
|   29     var param = parameters[i]; |   29     var param = parameters[i]; | 
|   30     if (param.isOptional && !found_optional_param) { |   30     if (param.isOptional && !found_optional_param) { | 
|   31       buf.add('['); |   31       buf.write('['); | 
|   32       found_optional_param = true; |   32       found_optional_param = true; | 
|   33     } |   33     } | 
|   34     buf.add(param.type.qualifiedName); |   34     buf.write(param.type.qualifiedName); | 
|   35     if (i < (parameters.length - 1)) { |   35     if (i < (parameters.length - 1)) { | 
|   36       buf.add(', '); |   36       buf.write(', '); | 
|   37     } |   37     } | 
|   38   } |   38   } | 
|   39   if (found_optional_param) { |   39   if (found_optional_param) { | 
|   40     buf.add(']'); |   40     buf.write(']'); | 
|   41   } |   41   } | 
|   42   buf.add(')'); |   42   buf.write(')'); | 
|   43   return buf.toString(); |   43   return buf.toString(); | 
|   44 } |   44 } | 
|   45  |   45  | 
|   46 class _LocalMirrorSystemImpl implements MirrorSystem { |   46 class _LocalMirrorSystemImpl implements MirrorSystem { | 
|   47   _LocalMirrorSystemImpl(this.libraries, this.isolate) |   47   _LocalMirrorSystemImpl(this.libraries, this.isolate) | 
|   48       : _functionTypes = new Map<String, FunctionTypeMirror>() {} |   48       : _functionTypes = new Map<String, FunctionTypeMirror>() {} | 
|   49  |   49  | 
|   50   final Map<String, LibraryMirror> libraries; |   50   final Map<String, LibraryMirror> libraries; | 
|   51   final IsolateMirror isolate; |   51   final IsolateMirror isolate; | 
|   52  |   52  | 
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  246       default: |  246       default: | 
|  247         // TODO(lrn): Someone decide if this should combine surrogate pairs. |  247         // TODO(lrn): Someone decide if this should combine surrogate pairs. | 
|  248         int code = input.codeUnitAt(0); |  248         int code = input.codeUnitAt(0); | 
|  249         if (isNice(code)) { |  249         if (isNice(code)) { | 
|  250           output = input; |  250           output = input; | 
|  251         } else { |  251         } else { | 
|  252           output = '\\u{${code.toRadixString(16)}}'; |  252           output = '\\u{${code.toRadixString(16)}}'; | 
|  253         } |  253         } | 
|  254         break; |  254         break; | 
|  255     } |  255     } | 
|  256     buf.add(output); |  256     buf.write(output); | 
|  257   } |  257   } | 
|  258   return buf.toString(); |  258   return buf.toString(); | 
|  259 } |  259 } | 
|  260  |  260  | 
|  261 class _LocalInstanceMirrorImpl extends _LocalObjectMirrorImpl |  261 class _LocalInstanceMirrorImpl extends _LocalObjectMirrorImpl | 
|  262     implements InstanceMirror { |  262     implements InstanceMirror { | 
|  263   _LocalInstanceMirrorImpl(ref, |  263   _LocalInstanceMirrorImpl(ref, | 
|  264                            this._type, |  264                            this._type, | 
|  265                            this._reflectee) : super(ref) {} |  265                            this._reflectee) : super(ref) {} | 
|  266  |  266  | 
| (...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  965  |  965  | 
|  966   // Creates a new local InstanceMirror |  966   // Creates a new local InstanceMirror | 
|  967   static InstanceMirror makeLocalInstanceMirror(Object reflectee) |  967   static InstanceMirror makeLocalInstanceMirror(Object reflectee) | 
|  968       native 'Mirrors_makeLocalInstanceMirror'; |  968       native 'Mirrors_makeLocalInstanceMirror'; | 
|  969  |  969  | 
|  970   // Creates a new local mirror for some Object. |  970   // Creates a new local mirror for some Object. | 
|  971   static InstanceMirror reflect(Object reflectee) { |  971   static InstanceMirror reflect(Object reflectee) { | 
|  972     return makeLocalInstanceMirror(reflectee); |  972     return makeLocalInstanceMirror(reflectee); | 
|  973   } |  973   } | 
|  974 } |  974 } | 
| OLD | NEW |