Chromium Code Reviews| Index: pkg/compiler/lib/src/js_backend/backend_helpers.dart |
| diff --git a/pkg/compiler/lib/src/js_backend/backend_helpers.dart b/pkg/compiler/lib/src/js_backend/backend_helpers.dart |
| index 3d7944e4b9a171e0cc97a200a7719c8099a9cf10..a4f814f654ef20ed5a8d9b2f40ae81a3b63677fd 100644 |
| --- a/pkg/compiler/lib/src/js_backend/backend_helpers.dart |
| +++ b/pkg/compiler/lib/src/js_backend/backend_helpers.dart |
| @@ -638,17 +638,26 @@ class BackendHelpers { |
| return _findHelper('throwNoSuchMethod'); |
| } |
| - Element get genericNoSuchMethod => |
| - _genericNoSuchMethod ??= findCoreHelper('_genericNoSuchMethod'); |
| - MethodElement _genericNoSuchMethod; |
| - |
| - Element get unresolvedConstructorError => _unresolvedConstructorError ??= |
| - findCoreHelper('_unresolvedConstructorError'); |
| - MethodElement _unresolvedConstructorError; |
| - |
| - Element get malformedTypeError => |
| - _malformedTypeError ??= findCoreHelper('_malformedTypeError'); |
| - MethodElement _malformedTypeError; |
| + Element get malformedTypeError => _cachedCoreHelper('_malformedTypeError'); |
| + Element get genericNoSuchMethod => _cachedCoreHelper('_genericNoSuchMethod'); |
| + Element get unresolvedConstructorError => |
| + _cachedCoreHelper('_unresolvedConstructorError'); |
| + Element get unresolvedStaticGetterError => |
| + _cachedCoreHelper('_unresolvedStaticGetterError'); |
| + Element get unresolvedStaticSetterError => |
| + _cachedCoreHelper('_unresolvedStaticSetterError'); |
| + Element get unresolvedStaticMethodError => |
| + _cachedCoreHelper('_unresolvedStaticMethodError'); |
| + Element get unresolvedTopLevelGetterError => |
| + _cachedCoreHelper('_unresolvedTopLevelGetterError'); |
| + Element get unresolvedTopLevelSetterError => |
| + _cachedCoreHelper('_unresolvedTopLevelSetterError'); |
| + Element get unresolvedTopLevelMethodError => |
| + _cachedCoreHelper('_unresolvedTopLevelMethodError'); |
| + |
| + Map<String, Element> _cachedCoreHelpers = <String, Element>{}; |
| + Element _cachedCoreHelper(String name) => |
| + _cachedCoreHelpers[name] ??= findCoreHelper(name); |
|
Siggi Cherem (dart-lang)
2017/01/11 19:08:03
Im ok with either, but any reason to prefer this o
sra1
2017/01/11 19:14:39
putIfAbsent requires a closure argument (hence all
|
| Element get createRuntimeType { |
| return _findHelper('createRuntimeType'); |