Index: dart/sdk/lib/_internal/lib/js_mirrors.dart |
diff --git a/dart/sdk/lib/_internal/lib/js_mirrors.dart b/dart/sdk/lib/_internal/lib/js_mirrors.dart |
index 7b84eab5e1566961b80aefe6dd15fd45787c55b4..802ec36be2936060d4a50404c1e7d2077d9d2cde 100644 |
--- a/dart/sdk/lib/_internal/lib/js_mirrors.dart |
+++ b/dart/sdk/lib/_internal/lib/js_mirrors.dart |
@@ -633,7 +633,12 @@ class JsClassMirror extends JsTypeMirror with JsObjectMirror |
if (!JS('bool', '# in #', jsName, JS_CURRENT_ISOLATE())) { |
throw new RuntimeError('Cannot find "$jsName" in current isolate.'); |
} |
- return reflect(JS('', '#[#]', JS_CURRENT_ISOLATE(), jsName)); |
+ if (JS('bool', '# in init.lazies', jsName)) { |
+ String getterName = JS('String', 'init.lazies[#]', jsName); |
+ return reflect(JS('', '#[#]()', JS_CURRENT_ISOLATE(), getterName)); |
+ } else { |
+ return reflect(JS('', '#[#]', JS_CURRENT_ISOLATE(), jsName)); |
+ } |
} |
// TODO(ahe): What receiver to use? |
throw new NoSuchMethodError(this, n(fieldName), null, null); |