Chromium Code Reviews| Index: runtime/lib/mirrors_impl.dart |
| diff --git a/runtime/lib/mirrors_impl.dart b/runtime/lib/mirrors_impl.dart |
| index 81bd6bcde4505a2b5e0d0bce6118c596f2f224cd..a0e7c8abd92806ad9ea9af127e9f5a9961625dd5 100644 |
| --- a/runtime/lib/mirrors_impl.dart |
| +++ b/runtime/lib/mirrors_impl.dart |
| @@ -222,6 +222,7 @@ class _SyntheticSetterParameter implements ParameterMirror { |
| bool get isPrivate => false; |
| bool get hasDefaultValue => false; |
| InstanceMirror get defaultValue => null; |
| + List<InstanceMirror> get metadata => emptyList; |
| } |
| abstract class _LocalObjectMirror extends _LocalMirror implements ObjectMirror { |
| @@ -581,7 +582,8 @@ class _LocalClassMirror extends _LocalObjectMirror |
| } |
| } |
| }); |
| - _cachedStaticMembers = result; |
| + _cachedStaticMembers = |
| + new _UnmodifiableMapView<Symbol, MethodMirror>(result); |
| } |
| return _cachedStaticMembers; |
| } |
| @@ -609,7 +611,8 @@ class _LocalClassMirror extends _LocalObjectMirror |
| } |
| } |
| }); |
| - _cachedInstanceMembers = result; |
| + _cachedInstanceMembers = |
| + new _UnmodifiableMapView<Symbol, MethodMirror>(result); |
| } |
| return _cachedInstanceMembers; |
| } |
| @@ -1080,28 +1083,32 @@ class _LocalLibraryMirror extends _LocalObjectMirror implements LibraryMirror { |
| var _cachedTopLevelMembers; |
| Map<Symbol, MethodMirror> get topLevelMembers { |
| - if (_cachedTopLevelMembers != null) return _cachedTopLevelMembers; |
| - var result = new Map<Symbol, MethodMirror>(); |
| - declarations.values.forEach((decl) { |
| - if (decl is MethodMirror && !decl.isAbstract) { |
| - result[decl.simpleName] = decl; |
| - } |
| - if (decl is VariableMirror) { |
| - var getterName = decl.simpleName; |
| - result[getterName] = |
| - new _SyntheticAccessor(this, getterName, true, true, true, decl); |
| - if (!decl.isFinal) { |
| - var setterName = _asSetter(decl.simpleName, this); |
| - result[setterName] = new _SyntheticAccessor( |
| - this, setterName, false, true, true, decl); |
| + if (_cachedTopLevelMembers == null) { |
| + var result = new Map<Symbol, MethodMirror>(); |
| + declarations.values.forEach((decl) { |
| + if (decl is MethodMirror && !decl.isAbstract) { |
| + result[decl.simpleName] = decl; |
| } |
| - } |
| - // if (decl is TypeMirror) { |
| - // var getterName = decl.simpleName; |
| - // result[getterName] = new _SyntheticTypeGetter(this, getterName, decl); |
| - // } |
| - }); |
| - return _cachedTopLevelMembers = result; |
| + if (decl is VariableMirror) { |
| + var getterName = decl.simpleName; |
| + result[getterName] = |
| + new _SyntheticAccessor(this, getterName, true, true, true, decl); |
| + if (!decl.isFinal) { |
| + var setterName = _asSetter(decl.simpleName, this); |
| + result[setterName] = new _SyntheticAccessor( |
| + this, setterName, false, true, true, decl); |
| + } |
| + } |
| + // if (decl is TypeMirror) { |
| + // var getterName = decl.simpleName; |
| + // result[getterName] = |
| + // new _SyntheticTypeGetter(this, getterName, decl); |
| + // } |
|
siva
2014/01/09 19:29:49
Why are we carrying this commented out code?
Mayb
rmacnak
2014/01/09 20:38:07
This was for behavior that wasn't agreed to. I'll
|
| + }); |
| + _cachedTopLevelMembers = |
| + new _UnmodifiableMapView<Symbol, MethodMirror>(result); |
| + } |
| + return _cachedTopLevelMembers; |
| } |