| 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 |