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 a1b623fc25ece50a7c8c89729d428ab957b9f194..48ffcc9be66a9e9953dce629365364b4fb54dc0b 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 { |
+ // Tear-off method |
Kevin Millikin (Google)
2015/05/18 12:28:24
I like this comment inside the if, but maybe you d
asgerf
2015/05/18 12:38:19
Done.
|
+ if (node.element is FunctionElement) { |
registry.registerGetOfStaticFunction(node.element.declaration); |
return glue.isolateStaticClosureAccess(node.element); |
} |
+ // Read lazily initialized field |
+ if (glue.isLazilyInitialized(node.element)) { |
+ registry.registerStaticUse(node.element.declaration); |
+ js.Expression getter = glue.isolateLazyInitializerAccess(node.element); |
+ return new js.Call(getter, [], sourceInformation: node.sourceInformation); |
+ } |
+ // Ordinary field access |
+ registry.registerStaticUse(node.element.declaration); |
+ return glue.staticFieldAccess(node.element); |
} |
@override |