make sure profile is forwarded through build web command (#39414)

diff --git a/packages/flutter_tools/lib/src/build_runner/web_compilation_delegate.dart b/packages/flutter_tools/lib/src/build_runner/web_compilation_delegate.dart
index 749863b..a62eccb 100644
--- a/packages/flutter_tools/lib/src/build_runner/web_compilation_delegate.dart
+++ b/packages/flutter_tools/lib/src/build_runner/web_compilation_delegate.dart
@@ -22,6 +22,7 @@
 import '../base/file_system.dart';
 import '../base/logger.dart';
 import '../base/platform.dart';
+import '../build_info.dart';
 import '../compile.dart';
 import '../convert.dart';
 import '../dart/package_map.dart';
@@ -41,7 +42,7 @@
   Future<bool> initialize({
     Directory projectDirectory,
     String testOutputDir,
-    bool release = false,
+    BuildMode mode,
   }) async {
     // Create the .dart_tool directory if it doesn't exist.
     projectDirectory.childDirectory('.dart_tool').createSync();
@@ -92,7 +93,7 @@
       result = await _runBuilder(
         buildEnvironment,
         buildOptions,
-        release,
+        mode,
         buildDirs,
       );
       return result.status == core.BuildStatus.success;
@@ -101,7 +102,7 @@
       result = await _runBuilder(
         buildEnvironment,
         buildOptions,
-        release,
+        mode,
         buildDirs,
       );
       return result.status == core.BuildStatus.success;
@@ -110,7 +111,7 @@
       result = await _runBuilder(
         buildEnvironment,
         buildOptions,
-        release,
+        mode,
         buildDirs,
       );
       return result.status == core.BuildStatus.success;
@@ -135,7 +136,7 @@
     return result.status == core.BuildStatus.success;
   }
 
-  Future<core.BuildResult> _runBuilder(core.BuildEnvironment buildEnvironment, BuildOptions buildOptions, bool release, Set<core.BuildDirectory> buildDirs) async {
+  Future<core.BuildResult> _runBuilder(core.BuildEnvironment buildEnvironment, BuildOptions buildOptions, BuildMode buildMode, Set<core.BuildDirectory> buildDirs) async {
     _builder = await BuildImpl.create(
       buildOptions,
       buildEnvironment,
@@ -145,11 +146,13 @@
           'flutterWebSdk': artifacts.getArtifactPath(Artifact.flutterWebSdk),
         },
         'flutter_tools:entrypoint': <String, dynamic>{
-          'release': release,
+          'release': buildMode == BuildMode.release,
           'flutterWebSdk': artifacts.getArtifactPath(Artifact.flutterWebSdk),
+          'profile': buildMode == BuildMode.profile,
         },
         'flutter_tools:test_entrypoint': <String, dynamic>{
-          'release': release,
+          'release': buildMode == BuildMode.release,
+          'profile': buildMode == BuildMode.profile,
         },
       },
       isReleaseBuild: false,
diff --git a/packages/flutter_tools/lib/src/web/compile.dart b/packages/flutter_tools/lib/src/web/compile.dart
index d241998..94bd2ac 100644
--- a/packages/flutter_tools/lib/src/web/compile.dart
+++ b/packages/flutter_tools/lib/src/web/compile.dart
@@ -30,7 +30,7 @@
   try {
     result = await webCompilationProxy.initialize(
       projectDirectory: FlutterProject.current().directory,
-      release: buildInfo.isRelease,
+      mode: buildInfo.mode,
     );
     if (result) {
       // Places assets adjacent to the web stuff.
@@ -81,7 +81,7 @@
   Future<bool> initialize({
     @required Directory projectDirectory,
     String testOutputDir,
-    bool release,
+    BuildMode mode,
   }) async {
     throw UnimplementedError();
   }
diff --git a/packages/flutter_tools/test/general.shard/commands/build_web_test.dart b/packages/flutter_tools/test/general.shard/commands/build_web_test.dart
index 201287e..d245464 100644
--- a/packages/flutter_tools/test/general.shard/commands/build_web_test.dart
+++ b/packages/flutter_tools/test/general.shard/commands/build_web_test.dart
@@ -41,7 +41,7 @@
       fs.file(fs.path.join('lib', 'main.dart')).createSync(recursive: true);
       when(mockWebCompilationProxy.initialize(
         projectDirectory: anyNamed('projectDirectory'),
-        release: anyNamed('release')
+        mode: anyNamed('mode')
       )).thenAnswer((Invocation invocation) {
         final String path = fs.path.join('.dart_tool', 'build', 'flutter_web', 'foo', 'lib', 'main_web_entrypoint.dart.js');
         fs.file(path).createSync(recursive: true);