| Index: pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
|
| diff --git a/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart b/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
|
| index af68cc362342b90974df7f1d4b94a6d957912f4f..5a0a277ece943677132c490945f0aa43181db1f0 100644
|
| --- a/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
|
| +++ b/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart
|
| @@ -200,22 +200,26 @@ class ASTEmitter
|
| FieldDefinition emitField(tree.FieldDefinition definition,
|
| BuilderContext<Statement> context) {
|
| context.currentElement = definition.element;
|
| - visitStatement(definition.body, context);
|
| - List<Statement> bodyParts;
|
| - for (tree.Variable variable in context.variableNames.keys) {
|
| - if (!context.declaredVariables.contains(variable)) {
|
| - context.addDeclaration(variable);
|
| + Expression initializer;
|
| + if (definition.hasInitializer) {
|
| + visitStatement(definition.body, context);
|
| + List<Statement> bodyParts;
|
| + for (tree.Variable variable in context.variableNames.keys) {
|
| + if (!context.declaredVariables.contains(variable)) {
|
| + context.addDeclaration(variable);
|
| + }
|
| }
|
| - }
|
| - if (context.variables.length > 0) {
|
| - bodyParts = new List<Statement>();
|
| - bodyParts.add(new VariableDeclarations(context.variables));
|
| - bodyParts.addAll(context.statements);
|
| - } else {
|
| - bodyParts = context.statements;
|
| + if (context.variables.length > 0) {
|
| + bodyParts = new List<Statement>();
|
| + bodyParts.add(new VariableDeclarations(context.variables));
|
| + bodyParts.addAll(context.statements);
|
| + } else {
|
| + bodyParts = context.statements;
|
| + }
|
| + initializer = ensureExpression(bodyParts);
|
| }
|
|
|
| - return new FieldDefinition(definition.element, ensureExpression(bodyParts));
|
| + return new FieldDefinition(definition.element, initializer);
|
| }
|
|
|
| /// Returns an expression that will evaluate all of [bodyParts].
|
|
|