Chromium Code Reviews| 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 |