diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
index 6da91e1..600ed94 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
@@ -58,7 +58,7 @@
 
 Component transformComponent(Component component, ConstantsBackend backend,
     Map<String, String> environmentDefines, ErrorReporter errorReporter,
-    {bool keepFields: false,
+    {bool keepFields: true,
     bool enableAsserts: false,
     bool evaluateAnnotations: true,
     CoreTypes coreTypes,
@@ -82,7 +82,7 @@
     Map<String, String> environmentDefines,
     TypeEnvironment typeEnvironment,
     ErrorReporter errorReporter,
-    {bool keepFields: false,
+    {bool keepFields: true,
     bool keepVariables: false,
     bool evaluateAnnotations: true,
     bool enableAsserts: false}) {
@@ -137,7 +137,7 @@
       // The transformer API does not iterate over `Library.additionalExports`,
       // so we manually delete the references to shaken nodes.
       library.additionalExports.removeWhere((Reference reference) {
-        return reference.canonicalName == null;
+        return reference.node is Field && reference.canonicalName == null;
       });
     }
   }
diff --git a/tests/compiler/dart2js/end_to_end/data/hello_world.dart b/tests/compiler/dart2js/end_to_end/data/hello_world.dart
new file mode 100644
index 0000000..3e3c4d4
--- /dev/null
+++ b/tests/compiler/dart2js/end_to_end/data/hello_world.dart
@@ -0,0 +1,7 @@
+// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+main() {
+  print("Hello World!");
+}
diff --git a/tests/compiler/dart2js/end_to_end/no_platform_test.dart b/tests/compiler/dart2js/end_to_end/no_platform_test.dart
new file mode 100644
index 0000000..5a562a8
--- /dev/null
+++ b/tests/compiler/dart2js/end_to_end/no_platform_test.dart
@@ -0,0 +1,37 @@
+// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:async_helper/async_helper.dart';
+import 'package:expect/expect.dart';
+import 'package:compiler/src/kernel/dart2js_target.dart' show Dart2jsTarget;
+import 'package:kernel/ast.dart' as ir;
+import 'package:kernel/core_types.dart' as ir;
+import 'package:kernel/target/targets.dart' hide DiagnosticReporter;
+import 'package:front_end/src/api_prototype/standard_file_system.dart' as fe;
+import 'package:front_end/src/api_unstable/dart2js.dart' as fe;
+
+main() {
+  asyncTest(() async {
+    fe.InitializedCompilerState initializedCompilerState =
+        fe.initializeCompiler(
+            null,
+            new Dart2jsTarget('dart2js', new TargetFlags()),
+            Uri.base
+                .resolve('sdk/lib/libraries.json'), // librariesSpecificationUri
+            [], // linkedDependencies
+            Uri.base.resolve('.packages'), // packagesFileUri
+            experimentalFlags: const {
+              fe.ExperimentalFlag.constantUpdate2018: true
+            });
+    ir.Component component = await fe.compile(
+        initializedCompilerState, false, fe.StandardFileSystem.instance,
+        (fe.DiagnosticMessage message) {
+      message.plainTextFormatted.forEach(print);
+      Expect.notEquals(fe.Severity.error, message.severity);
+    },
+        Uri.base.resolve(
+            'tests/compiler/dart2js/end_to_end/data/hello_world.dart'));
+    Expect.isNotNull(new ir.CoreTypes(component).futureClass);
+  });
+}
