Repository: flutter
Issue: Newly uploaded icons in Flutter web app appear invisible due to caching issues
Labels: engine,platform-web,c: rendering,has reproducible steps,P2,team-web,triaged-web,found in release: 3.13,found in release: 3.16

### Is there an existing issue for this?

- [X] I have searched the [existing issues](https://github.com/flutter/flutter/issues)
- [X] I have read the [guide to filing a bug](https://flutter.dev/docs/resources/bug-reports)

### Steps to reproduce

1. Make a flutter app with one icon. [code sample 1]
2. Build the app with flutter build web and upload the app to a web hosting. [image 1]
4. Update the app code, adding a new, different icon. I added ElevatedButton to the code to demonstrate that it's not the app logic not being updated, but the icon font. [code sample 2]
5. Add a cache-busting string in web/index.html for flutter.js [code sample 3]
6. Upload the app to the same website. [image 2]
7. Press CTRL+F5 [image 3]



### Expected results

It's expected for the new icon font to be downloaded when i upload a new version. It's especially bad for end users, who don't necessarily know how to clear cache.

### Actual results

Icon font cache isn't being cleared from the browser's cache when i upload a new build.

### Code sample

<details><summary>Code sample 1</summary>
One icon:

```dart
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: Center(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Icon(Icons.abc),
            ],
          ),
        ),
      ),
    );
  }
}
```

</details>

<details><summary>Code sample 2</summary>
Add a new icon:

```dart
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              const Icon(Icons.abc),
              ElevatedButton.icon(
                onPressed: () {},
                icon: const Icon(Icons.add),
                label: const Text('foo'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
```

</details>

<details><summary>Code sample 3</summary>
Bust cache

```html
...
  <script src="flutter.js?v=1" defer></script>
...
```

</details>

### Screenshots or Video

<details>
<summary>Screenshots / Video demonstration</summary>
Have one icon:

![Icon ABC in the middle of the screen](https://github.com/flutter/flutter/assets/41835472/46096267-ab2b-4837-8abf-ba4eafb939cd)

Add new icon, but it's missing!

![Icon ABC in ](https://github.com/flutter/flutter/assets/41835472/9ee6a58d-7366-4e03-9f8f-63612ff3b220)

After pressing ctrl+f5

![Icon ABC and a button with a plus icon](https://github.com/flutter/flutter/assets/41835472/a9e385ef-4c99-4180-91f4-369ef7a106e4)

</details>


### Logs

<details><summary>Logs</summary>
Building the first code sample:

```console
PS D:\Projects\flutter\icon_cache_demo> flutter --verbose build web
[ +249 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[   +9 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'LegacyCanvasKitRemover' is not required, skipping update.
[   +6 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +77 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[  +19 ms] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[   +7 ms] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[ +111 ms] Skipping pub get: version match.
[ +524 ms] Generating D:\Projects\flutter\icon_cache_demo\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[ +231 ms] generated_plugin_registrant.dart not found. Skipping.
[   +3 ms] Compiling lib\main.dart for the Web...
[  +12 ms] Initializing file store
[  +70 ms] Done initializing file store
[ +337 ms] Skipping target: web_entrypoint
[   +3 ms] Skipping target: gen_localizations
[   +6 ms] web_static_assets: Starting due to {InvalidatedReasonKind.outputMissing: The following outputs were missing:
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\flutter.js,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\canvaskit.js,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\canvaskit.wasm,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\chromium\canvaskit.js,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\chromium\canvaskit.wasm,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\skwasm.js,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\skwasm.wasm,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\skwasm.worker.js}
[+1641 ms] dart2js: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents: D:\Projects\flutter\icon_cache_demo\lib\main.dart}
[   +8 ms] executing: C:\tools\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev C:\tools\flutter\bin\cache\dart-sdk\bin\snapshots\dart2js.dart.snapshot
--platform-binaries=C:\tools\flutter\bin\cache\flutter_web_sdk\kernel --invoker=flutter_tool -Ddart.vm.product=true -DFLUTTER_WEB_AUTO_DETECT=true
-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/a794cf2681c6c9fe7b260e0e84de96298dc9c18b/ --native-null-assertions --no-source-maps -o
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\app.dill --packages=.dart_tool/package_config.json --cfe-only
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\main.dart
[   +5 ms] web_static_assets: Complete
[+16533 ms] Compiled 36,311,957 input bytes (28,300,280 characters source) to 52,212,712 kernel bytes in 15.9 seconds using 623.520 MB of memory
                     Dart file .dart_tool/flutter_build/775afdfcb0c21dbe48b6d80339df600b/main.dart compiled to dill: .dart_tool/flutter_build/775afdfcb0c21dbe48b6d80339df600b/app.dill.    
[   +1 ms] executing: C:\tools\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev C:\tools\flutter\bin\cache\dart-sdk\bin\snapshots\dart2js.dart.snapshot
--platform-binaries=C:\tools\flutter\bin\cache\flutter_web_sdk\kernel --invoker=flutter_tool -Ddart.vm.product=true -DFLUTTER_WEB_AUTO_DETECT=true
-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/a794cf2681c6c9fe7b260e0e84de96298dc9c18b/ --native-null-assertions --no-source-maps -O4 -o
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\main.dart.js
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\app.dill
[+19362 ms] Hint: When run on the command-line, the compiled output might require a preamble file located in:
                       <sdk>/lib/_internal/js_runtime/lib/preambles.
                     file:///C:/tools/flutter/packages/flutter/lib/src/widgets/widget_inspector.dart:291:11:
                     Hint: Overriding 'noSuchMethod' causes the compiler to generate more code and prevents the compiler from doing some optimizations.
                     Consider removing this 'noSuchMethod' implementation.
                       dynamic noSuchMethod(Invocation invocation) {
                               ^
                     Compiled 68,121,456 input bytes (28,300,280 characters source) to 1,464,556 characters JavaScript in 18.8 seconds using 642.137 MB of memory
[  +49 ms] dart2js: Complete
[ +515 ms] web_release_bundle: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\main.dart.js,D:\Projects\flutter\icon_cache_demo\lib\main.dart,D:\Projects\flutter\icon_cache_
demo\web\index.html, InvalidatedReasonKind.outputMissing: The following outputs were missing:
D:\Projects\flutter\icon_cache_demo\build\web\main.dart.js,build\web\assets\packages/cupertino_icons/assets/CupertinoIcons.ttf,build\web\assets\fonts/MaterialIcons-Regular.otf,build\web\as
sets\shaders/ink_sparkle.frag,build\web\assets\AssetManifest.json,build\web\assets\AssetManifest.bin,build\web\assets\FontManifest.json,build\web\assets\NOTICES,build\web\favicon.png,build
\web\icons\Icon-192.png,build\web\icons\Icon-512.png,build\web\icons\Icon-maskable-192.png,build\web\icons\Icon-maskable-512.png,build\web\index.html,build\web\manifest.json,
InvalidatedReasonKind.outputChanged: The following outputs have updated contents:
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\main.dart.js}
[ +165 ms] shaderc command: [C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\impellerc.exe, --sksl, --iplr, --json, --sl=build\web\assets\shaders/ink_sparkle.frag,
--spirv=build\web\assets\shaders/ink_sparkle.frag.spirv, --input=C:\tools\flutter\packages\flutter\lib\src\material\shaders\ink_sparkle.frag, --input-type=frag,
--include=C:\tools\flutter\packages\flutter\lib\src\material\shaders, --include=C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\shader_lib]
[ +108 ms] Running command: C:\tools\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\const_finder.dart.snapshot
--kernel-file D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\app.dill --class-library-uri package:flutter/src/widgets/icon_data.dart
--class-name IconData --annotation-class-name _StaticIconProvider --annotation-class-library-uri package:flutter/src/widgets/icon_data.dart
[+1972 ms] Running font-subset: C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\font-subset.exe build\web\assets\packages/cupertino_icons/assets/CupertinoIcons.ttf
C:\Users\Drew\AppData\Local\Pub\Cache\hosted\pub.dev\cupertino_icons-1.0.6\assets\CupertinoIcons.ttf, using codepoints 62629 62419 62415 62318 optional:32
[   +2 ms] Running font-subset: C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\font-subset.exe build\web\assets\fonts/MaterialIcons-Regular.otf
C:\tools\flutter\bin\cache\artifacts\material_fonts\MaterialIcons-Regular.otf, using codepoints 984246 57490 57491 57706 58332 58727 57496 57694 57695 57657 57882 57504 61453 57634 57498  
57926 61061 61060 62834 62833 59283 59282 57499 57500 61069 61068 62842 62841 59291 59290 58011 58012 61575 61576 63348 63349 59797 59798 58372 58370 61930 61927 63708 63705 60157 60154   
58771 58189 62328 61752 983402 63526 60555 59975 57704 57502 58814 58813 57846 57862 57686 61764 57402 optional:32
[ +117 ms] Font asset "CupertinoIcons.ttf" was tree-shaken, reducing it from 283452 to 1272 bytes (99.6% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons
flag when
                    building your app.
[   +5 ms] Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 7740 bytes (99.5% reduction). Tree-shaking can be disabled by providing the
--no-tree-shake-icons flag
           when building your app.
[  +32 ms] web_release_bundle: Complete
[ +558 ms] invalidated build due to missing files: build\web\web1.rar
[ +337 ms] web_service_worker: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
build\web\index.html,build\web\assets\fonts\MaterialIcons-Regular.otf,build\web\main.dart.js, InvalidatedReasonKind.outputMissing: The following outputs were missing:
build\web\flutter_service_worker.js, InvalidatedReasonKind.inputMissing: The following inputs were missing: build\web\web1.rar}
[ +236 ms] web_service_worker: Complete
[  +23 ms] Persisting file store
[  +11 ms] Done persisting file store
[  +34 ms] Compiling lib\main.dart for the Web... (completed in 42,1s)
[  +12 ms] "flutter web" took 43 214ms.
[ +134 ms] ensureAnalyticsSent: 124ms
[        ] Running 0 shutdown hooks
[        ] Shutdown hooks complete
[        ] exiting with code 0
```

Building the second code sample:
```console
PS D:\Projects\flutter\icon_cache_demo> flutter --verbose build web
[ +253 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[   +9 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'LegacyCanvasKitRemover' is not required, skipping update.
[   +6 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +70 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +9 ms] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[ +127 ms] Skipping pub get: version match.
[ +299 ms] Generating D:\Projects\flutter\icon_cache_demo\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[ +154 ms] generated_plugin_registrant.dart not found. Skipping.
[   +2 ms] Compiling lib\main.dart for the Web...
[  +12 ms] Initializing file store
[  +19 ms] Done initializing file store
[ +102 ms] Skipping target: web_entrypoint
[   +4 ms] Skipping target: gen_localizations
[   +6 ms] web_static_assets: Starting due to {InvalidatedReasonKind.outputMissing: The following outputs were missing:
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\flutter.js,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d8
0339df600b\canvaskit\canvaskit.js,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\canvaskit.wasm,D:\Projects\flutter\icon_cache_demo
\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\chromium\canvaskit.js,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\can
vaskit\chromium\canvaskit.wasm,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\skwasm.js,D:\Projects\flutter\icon_cache_demo\.dart_t
ool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\skwasm.wasm,D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\canvaskit\skwasm.work
er.js}
[ +631 ms] dart2js: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents: D:\Projects\flutter\icon_cache_demo\lib\main.dart}
[  +10 ms] executing: C:\tools\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev C:\tools\flutter\bin\cache\dart-sdk\bin\snapshots\dart2js.dart.snapshot
--platform-binaries=C:\tools\flutter\bin\cache\flutter_web_sdk\kernel --invoker=flutter_tool -Ddart.vm.product=true -DFLUTTER_WEB_AUTO_DETECT=true
-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/a794cf2681c6c9fe7b260e0e84de96298dc9c18b/ --native-null-assertions --no-source-maps -o
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\app.dill --packages=.dart_tool/package_config.json --cfe-only
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\main.dart
[   +5 ms] web_static_assets: Complete
[+16221 ms] Compiled 36,312,135 input bytes (28,300,458 characters source) to 52,216,712 kernel bytes in 15.5 seconds using 620.320 MB of memory
                     Dart file .dart_tool/flutter_build/775afdfcb0c21dbe48b6d80339df600b/main.dart compiled to dill: .dart_tool/flutter_build/775afdfcb0c21dbe48b6d80339df600b/app.dill.    
[   +2 ms] executing: C:\tools\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev C:\tools\flutter\bin\cache\dart-sdk\bin\snapshots\dart2js.dart.snapshot
--platform-binaries=C:\tools\flutter\bin\cache\flutter_web_sdk\kernel --invoker=flutter_tool -Ddart.vm.product=true -DFLUTTER_WEB_AUTO_DETECT=true
-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/a794cf2681c6c9fe7b260e0e84de96298dc9c18b/ --native-null-assertions --no-source-maps -O4 -o
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\main.dart.js
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\app.dill
[+19315 ms] Hint: When run on the command-line, the compiled output might require a preamble file located in:
                       <sdk>/lib/_internal/js_runtime/lib/preambles.
                     file:///C:/tools/flutter/packages/flutter/lib/src/widgets/widget_inspector.dart:291:11:
                     Hint: Overriding 'noSuchMethod' causes the compiler to generate more code and prevents the compiler from doing some optimizations.
                     Consider removing this 'noSuchMethod' implementation.
                       dynamic noSuchMethod(Invocation invocation) {
                               ^
                     Compiled 68,125,456 input bytes (28,300,458 characters source) to 1,483,409 characters JavaScript in 18.7 seconds using 647.461 MB of memory
[  +47 ms] dart2js: Complete
[ +268 ms] web_release_bundle: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\main.dart.js,D:\Projects\flutter\icon_cache_demo\lib\main.dart,D:\Projects\flutter\icon_cache_
demo\web\index.html, InvalidatedReasonKind.outputChanged: The following outputs have updated contents:
D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\main.dart.js}
[ +161 ms] shaderc command: [C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\impellerc.exe, --sksl, --iplr, --json, --sl=build\web\assets\shaders/ink_sparkle.frag,
--spirv=build\web\assets\shaders/ink_sparkle.frag.spirv, --input=C:\tools\flutter\packages\flutter\lib\src\material\shaders\ink_sparkle.frag, --input-type=frag,
--include=C:\tools\flutter\packages\flutter\lib\src\material\shaders, --include=C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\shader_lib]
[  +28 ms] Running command: C:\tools\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\const_finder.dart.snapshot
--kernel-file D:\Projects\flutter\icon_cache_demo\.dart_tool\flutter_build\775afdfcb0c21dbe48b6d80339df600b\app.dill --class-library-uri package:flutter/src/widgets/icon_data.dart
--class-name IconData --annotation-class-name _StaticIconProvider --annotation-class-library-uri package:flutter/src/widgets/icon_data.dart
[+1929 ms] Running font-subset: C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\font-subset.exe build\web\assets\packages/cupertino_icons/assets/CupertinoIcons.ttf
C:\Users\Drew\AppData\Local\Pub\Cache\hosted\pub.dev\cupertino_icons-1.0.6\assets\CupertinoIcons.ttf, using codepoints 62629 62419 62415 62318 optional:32
[   +2 ms] Running font-subset: C:\tools\flutter\bin\cache\artifacts\engine\windows-x64\font-subset.exe build\web\assets\fonts/MaterialIcons-Regular.otf
C:\tools\flutter\bin\cache\artifacts\material_fonts\MaterialIcons-Regular.otf, using codepoints 984246 57415 57490 57491 57706 58332 58727 57496 57694 57695 57657 57882 57504 61453 57634  
57498 57926 61061 61060 62834 62833 59283 59282 57499 57500 61069 61068 62842 62841 59291 59290 58011 58012 61575 61576 63348 63349 59797 59798 58372 58370 61930 61927 63708 63705 60157   
60154 58771 58189 62328 61752 983402 63526 60555 59975 57704 57502 58814 58813 57846 57862 57686 61764 57402 optional:32
[  +43 ms] Font asset "CupertinoIcons.ttf" was tree-shaken, reducing it from 283452 to 1272 bytes (99.6% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons
flag when
           building your app.
[   +9 ms] Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 7812 bytes (99.5% reduction). Tree-shaking can be disabled by providing the
--no-tree-shake-icons flag
           when building your app.
[  +29 ms] web_release_bundle: Complete
[ +973 ms] web_service_worker: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
build\web\index.html,build\web\assets\fonts\MaterialIcons-Regular.otf,build\web\main.dart.js}
[ +264 ms] web_service_worker: Complete
[  +24 ms] Persisting file store
[  +14 ms] Done persisting file store
[  +37 ms] Compiling lib\main.dart for the Web... (completed in 40,1s)
[  +13 ms] "flutter web" took 40 916ms.
[ +141 ms] ensureAnalyticsSent: 131ms
[        ] Running 0 shutdown hooks
[        ] Shutdown hooks complete
[        ] exiting with code 0
```
</details>


### Flutter Doctor output

<details><summary>Doctor output</summary>

```console
PS D:\Projects\flutter\icon_cache_demo> flutter doctor -v
[√] Flutter (Channel stable, 3.13.6, on Microsoft Windows [Version 10.0.22621.2428], locale ru-RU)
    • Flutter version 3.13.6 on channel stable at C:\tools\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ead455963c (3 weeks ago), 2023-09-26 18:28:17 -0700
    • Engine revision a794cf2681
    • Dart version 3.1.3
    • DevTools version 2.25.0

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at C:\Users\Drew\AppData\Local\Android\sdk
    • Platform android-33-ext4, build-tools 33.0.2
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-9505619)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.5.0)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.5.33414.496
    • Windows 10 SDK version 10.0.22000.0

[√] Android Studio (version 2022.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-9505619)

[√] VS Code (version 1.83.1)
    • VS Code at C:\Users\Drew\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.74.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22621.2428]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 117.0.5938.150
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 117.0.2045.55

[√] Network resources
    • All expected network resources are available.

• No issues found!
```

</details>