| Index: pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| index 2998a5bc2f8db96bc219513f6f25360d220b7a74..2f2d997f580e79f3ac8d8571d977a1bd4692ad85 100644
|
| --- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| @@ -590,13 +590,20 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
| @override
|
| js.Expression visitGetStatic(tree_ir.GetStatic node) {
|
| assert(node.element is FieldElement || node.element is FunctionElement);
|
| - if (node.element is FieldElement) {
|
| - registry.registerStaticUse(node.element.declaration);
|
| - return glue.staticFieldAccess(node.element);
|
| - } else {
|
| + if (node.element is FunctionElement) {
|
| + // Tear off a method.
|
| registry.registerGetOfStaticFunction(node.element.declaration);
|
| return glue.isolateStaticClosureAccess(node.element);
|
| }
|
| + if (glue.isLazilyInitialized(node.element)) {
|
| + // Read a lazily initialized field.
|
| + registry.registerStaticUse(node.element.declaration);
|
| + js.Expression getter = glue.isolateLazyInitializerAccess(node.element);
|
| + return new js.Call(getter, [], sourceInformation: node.sourceInformation);
|
| + }
|
| + // Read an eagerly initialized field.
|
| + registry.registerStaticUse(node.element.declaration);
|
| + return glue.staticFieldAccess(node.element);
|
| }
|
|
|
| @override
|
|
|