Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory leak on flutter web when using Icon in ListView #122189

Closed
IvoB1987 opened this issue Mar 8, 2023 · 28 comments
Closed

Memory leak on flutter web when using Icon in ListView #122189

IvoB1987 opened this issue Mar 8, 2023 · 28 comments
Assignees
Labels
c: performance Relates to speed or footprint issues (see "perf:" labels) c: regression It was better in the past than it is now engine flutter/engine repository. See also e: labels. found in release: 3.7 Found to occur in 3.7 found in release: 3.9 Found to occur in 3.9 has reproducible steps The issue has been confirmed reproducible and is ready to work on P0 Critical issues such as a build break or regression perf: memory Performance issues related to memory platform-web Web applications specifically r: fixed Issue is closed as already fixed in a newer version

Comments

@IvoB1987
Copy link
Contributor

IvoB1987 commented Mar 8, 2023

Details

Consider this simple full application:

import 'package:flutter/material.dart';
void main() {
  runApp(const MaterialApp(
    home: Scaffold(body: MemoryTest()),
  ));
}

class MemoryTest extends StatelessWidget {
  const MemoryTest({super.key});
  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: 500,
      itemBuilder: (context, index) => const Icon(Icons.circle)
    );
  }
}

When running on web the memory keeps increasing indefinitely while scrolling through the list, as can seen in the Task Manager of Windows. Is this a bug in Flutter or how can I rewrite this code to prevent the memory leak? Simply replacing the Icon with a Text does not cause a leak.

Target Platform: web
Target OS version/browser: Chrome Version 110.0.5481.180 (Official Build) (64-bit)
Devices: Windows 10

Logs

Logs
Analyzing fluttertest...                                                
No issues found! (ran in 0.8s)
[√] Flutter (Channel stable, 3.7.6, on Microsoft Windows [Version 10.0.19045.2604], locale en-DK)
    • Flutter version 3.7.6 on channel stable at C:\Users\ivb\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 12cb4eb7a0 (7 days ago), 2023-03-01 10:29:26 -0800
    • Engine revision ada363ee93
    • Dart version 2.19.3
    • DevTools version 2.20.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at C:\Users\ivb\AppData\Local\Android\sdk
    • Platform android-33, build-tools 33.0.1
    • 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 for Windows (Visual Studio Enterprise 2022 17.5.0)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Enterprise
    • Visual Studio Enterprise 2022 version 17.5.33414.496
    • Windows 10 SDK version 10.0.19041.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)

[√] IntelliJ IDEA Community Edition (version 2022.3)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.1
    • Flutter plugin version 72.1.4
    • Dart plugin version 223.8617.8

[√] VS Code (version 1.72.2)
    • VS Code at C:\Users\ivb\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.56.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19045.2604]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 110.0.5481.180
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 110.0.1587.63

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
@IvoB1987 IvoB1987 added the from: performance template Issues created via a performance issue template label Mar 8, 2023
@IvoB1987
Copy link
Contributor Author

IvoB1987 commented Mar 8, 2023

@darshankawar darshankawar removed the from: performance template Issues created via a performance issue template label Mar 9, 2023
@exaby73 exaby73 added the in triage Presently being triaged by the triage team label Mar 9, 2023
@exaby73
Copy link
Member

exaby73 commented Mar 9, 2023

Triage report

I can reproduce this issue with Master (3.9.0-1.0.pre.119). I took 3 heap snapshots on the Chrome devtools. Each time, I scrolled the list for a few seconds. After a minute of scrolling, the memory usage was >1GB.

Code Sample (Same as OP)
import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    home: Scaffold(body: MemoryTest()),
  ));
}

class MemoryTest extends StatelessWidget {
  const MemoryTest({super.key});
  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: 500,
      itemBuilder: (context, index) => const Icon(Icons.circle)
    );
  }
}
Screenshot of heap snapshots using Chrome devtools

image

flutter doctor -v (Master)
[!] Flutter (Channel master, 3.9.0-1.0.pre.119, on Ubuntu 22.04.2 LTS 5.15.0-67-generic, locale en_US.UTF-8)
    • Flutter version 3.9.0-1.0.pre.119 on channel master at /home/exabyt3/fvm/versions/master
    ! Warning: `dart` on your path resolves to /usr/lib/dart/bin/dart, which is not inside your current Flutter SDK checkout at /home/exabyt3/fvm/versions/master. Consider adding /home/exabyt3/fvm/versions/master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 367ba011fd (2 hours ago), 2023-03-09 00:01:53 -0500
    • Engine revision 78ff6a0934
    • Dart version 3.0.0 (build 3.0.0-312.0.dev)
    • DevTools version 2.22.2
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /home/exabyt3/Android/Sdk
    • Platform android-33-ext4, build-tools 33.0.2
    • ANDROID_SDK_ROOT = /home/exabyt3/Android/Sdk
    • Java binary at: /home/exabyt3/programs/android-studio-preview/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /usr/bin/brave-browser

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.0-1ubuntu1
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2022.3)
    • Android Studio at /home/exabyt3/programs/android-studio-preview
    • 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 17.0.6+0-17.0.6b802.4-9586694)

[✓] Android Studio (version 2022.1)
    • Android Studio at /home/exabyt3/programs/android-studio
    • Flutter plugin version 72.1.2
    • Dart plugin version 221.6096
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.76.0)
    • VS Code at /usr/share/code
    • Flutter extension version 3.60.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 22.04.2 LTS 5.15.0-67-generic
    • Chrome (web)    • chrome • web-javascript • Brave Browser 110.1.48.171

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

@exaby73 exaby73 added engine flutter/engine repository. See also e: labels. c: performance Relates to speed or footprint issues (see "perf:" labels) platform-web Web applications specifically perf: memory Performance issues related to memory has reproducible steps The issue has been confirmed reproducible and is ready to work on found in release: 3.7 Found to occur in 3.7 found in release: 3.9 Found to occur in 3.9 and removed in triage Presently being triaged by the triage team labels Mar 9, 2023
@rydmike
Copy link
Contributor

rydmike commented Mar 9, 2023

This issue feels a bit related to my issue, so for now I'm posting my initial comments here. If it later proves to not be related to this issue, I will open a separate issue.

I have also been tracking a troublesome bug in a rather big Flutter WEB build as well. It feels like the app gets more sluggish as it runs and eventually crashes with an issue on "MaterialIcons", shown below:

Screenshot 2023-03-08 at 23 46 19

I see this on both Flutter 3.7.7 and latest 3.9 master. I only see it in WEB release build, not in WEB debug mode builds. Also in VM builds, like macOS, I see no issues at all, there are no console log message at all that could provide a hint about what might be wrong.

Since I only get the crash on a web release build, I'm finding it very difficult to debug it and provide any useful info. Also time to crash is a bit random, but not very long.

I also see other strange behavior in the release mode build of same app, with values changes in hover over items, that do have a hover response, but in the particular use case should not change on hover and does not do so on other builds, except on WEB release mode builds, again WEB debug build does not show that issue either.

I feel something important is being optimized out by the WEB release mode to JS compiler that should not be. This would not be the first time I have experienced this type of bug, this has the exact same "smell" the other dart2js (now dart compile js) one I experienced some years ago.

The web crash above says "Build with -sASSERTIONS" for more info. How do I do that in Flutter? I see in docs that "dart compile js" has a "--enable-asserts" flag, sounds like it, but it did not work with flutter run, like in:

flutter run -v -d chrome --release --web-renderer canvaskit --enable-asserts 

At the moment I don't know how to dig deeper into this issue to provide any more helpful info on the issue. I can only see that it seems like a quite bad Dart web compiler bug. Perhaps this issue belongs in the Dart repo? Maybe there is a report about it already. I will god have a look and see if I can find something related to this there as well.

@IvoB1987
Copy link
Contributor Author

IvoB1987 commented Mar 9, 2023

@rydmike it could be related yeah. My application also starts to throw the same errors when the memory runs up too high. Maybe that's also happening with your application.

@rydmike
Copy link
Contributor

rydmike commented Mar 9, 2023

@IvoB1987 I think it is related as well. As mentioned I also see other flaky behavior on the release mode WEB build. Do you get the memory leak in debug mode WEB builds? I did not see my issue there, but I will look again and do more tests and investigations into the issue.

@IvoB1987
Copy link
Contributor Author

IvoB1987 commented Mar 9, 2023

@rydmike it also happens in debug for me

@IvoB1987
Copy link
Contributor Author

IvoB1987 commented Mar 9, 2023

@rydmike I did some more testing and while it's true it happens both on debug as release for me it seems it does happen much faster on release. On release the memory raises faster and therefore the crashing happens earlier. And yeah I have very similar stack traces as you.

@IvoB1987
Copy link
Contributor Author

IvoB1987 commented Mar 9, 2023

I've tried downgrading to Flutter version 3.3.10. The issue doesn't seem to be there, so it must have been introduced in 3.7.0

@exaby73 exaby73 added the c: regression It was better in the past than it is now label Mar 9, 2023
@rydmike
Copy link
Contributor

rydmike commented Mar 9, 2023

@IvoB1987 I could try that downgrade as well, just to check, but I need to disable a significant amount of features in the app where I am observing suspected similar issues. Since the app is specifically geared towards using all new M3 features that did not exist in Flutter 3.3.10, so a bit tricky, but doable, I just need to comment a lot of code to do it.

I did however not experience the issues I see now on Web builds with Flutter 3.3 either, minus the new M3 widgets now used, that imo have nothing to do with this issue anyway.

I tried looking around in the DartLang repo for anything that might look related, but saw nothing immediately that stuck out in the 'area-web' tagged issues as related to this issue:

https://github.com/dart-lang/sdk/labels/area-web?page=2&q=is%3Aopen+label%3Aarea-web


@rydmike I did some more testing and while it's true it happens both on debug as release for me it seems it does happen much faster on release. On release the memory raises faster and therefore the crashing happens earlier. And yeah I have very similar stack traces as you.

EDIT: Also thanks for the abvoe additional info, I will look closer at my debug build as well.

@jason-simmons
Copy link
Member

Bisected the Icon leak to flutter/engine@52ae046e (variable font support in Web/CanvasKit).

The Icon widget is affected because it uses fontVariations internally.

@jason-simmons jason-simmons self-assigned this Mar 9, 2023
@rydmike
Copy link
Contributor

rydmike commented Mar 9, 2023

Thanks @jason-simmons for that info and for starting looking into this. I was now able to get a slightly different crash stack trace error on a WEB release mode build on same app as before, but with very similar details as before. This time the issue says font was "NotoSans_regular", which I use via GoogleFonts, but the primitives it crashes on looks identical as before:

image

All I did in the app was pretty much toggle it between light/dark mode until it gave up.

Again I was unable to get this crash in WEB debug mode, or any mode at all with VM builds, JIT or AOT.

@rydmike
Copy link
Contributor

rydmike commented Mar 9, 2023

@jason-simmons another very peculiar thing I can see in the same app, and only in its WEB release build, is that when I hover over the theme colored box below, somehow the values and names are changing, which in code would/should only happen if the shown colors are changing, and I do believe they are doing so but only very slightly and the boxes are just doing what they are supposed to do in that case.

I want to stress that this should not be happening in this app in this mouse hover over the boxes, and that it does NOT do so in any other build, except in WEB release mode.

I have no idea what is going in this WEB release build with this issue, as it is not happening in any other build and there is no way for me to debug it or even know how I would reproduce it. Maybe its root cause is the same as the issue we are looking at now, or maybe it is a different issue, but it did not exists before Flutter 3.7 either.

(The corresponding tonal palette tone, being highlighted on hover above the theme colors, is intentionally, that is what it should be doing).

Screen.Recording.2023-03-09.at.22.36.28.mov

@rydmike
Copy link
Contributor

rydmike commented Mar 14, 2023

Got a yet another crash with web release mode using the same app. This one is a bit different. Again there are no issues in VM debug/release builds, and I have not yet gotten the app to crash in web debug mode builds, but I will keep trying.

Screenshot 2023-03-14 at 7 01 05

Crash details example
WebGL: INVALID_VALUE: texSubImage2D: ArrayBufferView size exceeds the supported range

  | gb | @ | canvaskit.js:251
-- | -- | -- | --
  | $func4223 | @ | canvaskit.wasm:0x233915
  | $func4205 | @ | canvaskit.wasm:0x231f61
  | $func7917 | @ | canvaskit.wasm:0x4030c3
  | $func2310 | @ | canvaskit.wasm:0xfa5c1
  | $func4527 | @ | canvaskit.wasm:0x261f95
  | $func8978 | @ | canvaskit.wasm:0x459f6c
  | $func1909 | @ | canvaskit.wasm:0xc82fb
  | $func4488 | @ | canvaskit.wasm:0x25f072
  | $func1007 | @ | canvaskit.wasm:0x519be
  | $func4520 | @ | canvaskit.wasm:0x2612d3
  | $func9192 | @ | canvaskit.wasm:0x470771
  | $func417 | @ | canvaskit.wasm:0x14979
  | $func1905 | @ | canvaskit.wasm:0xc7c7a
  | $func1904 | @ | canvaskit.wasm:0xc6ea9
  | $func2277 | @ | canvaskit.wasm:0xf6aa7
  | $func2995 | @ | canvaskit.wasm:0x16538e
  | $func4672 | @ | canvaskit.wasm:0x277918
  | $func7814 | @ | canvaskit.wasm:0x3fa304
  | $func934 | @ | canvaskit.wasm:0x48013
  | $func2397 | @ | canvaskit.wasm:0x1063ea
  | $func3174 | @ | canvaskit.wasm:0x182b58
  | $func10108 | @ | canvaskit.wasm:0x49ef4d
  | $func1282 | @ | canvaskit.wasm:0x6fd33
  | $func11168 | @ | canvaskit.wasm:0x4d5f0e
  | $func967 | @ | canvaskit.wasm:0x4b34e
  | (anonymous) | @ | canvaskit.js:182
  | a.Canvas.drawPicture | @ | canvaskit.js:52
  | lF | @ | canvas.dart:214
  | kx | @ | layer.dart:471
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:257
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:257
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:216
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:257
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:216
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:257
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:216
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:257
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | kx | @ | layer.dart:368
  | q4 | @ | layer.dart:141
  | $0 | @ | layer.dart:154
  | baD | @ | profiler.dart:34
  | aP_ | @ | layer_tree.dart:96
  | aJG | @ | rasterizer.dart:33
  | abz | @ | renderer.dart:349
  | aHA | @ | platform_dispatcher.dart:645
  | Ru | @ | object.dart:939
  | Ru | @ | binding.dart:865
  | avQ | @ | binding.dart:381
  | (anonymous) | @ | js_helper.dart:2115
  | a22 | @ | binding.dart:1289
  | a21 | @ | binding.dart:1281
  | a9k | @ | binding.dart:1218
  | auh | @ | binding.dart:1076
  | (anonymous) | @ | js_helper.dart:2105
  | uG | @ | platform_dispatcher.dart:1168
  | $1 | @ | platform_dispatcher.dart:218
  | bja | @ | js_helper.dart:851
  | bhH | @ | core_patch.dart:84
  | bBn | @ | js_patch.dart:545
  | (anonymous) | @ | js_patch.dart:523
  | requestAnimationFrame (async) |   |  
  | W | @ | js_util_patch.dart:81
  | $0 | @ | dom.dart:49
  | oI | @ | platform_dispatcher.dart:616
  | oI | @ | binding.dart:871
  | z1 | @ | binding.dart:569
  | aEM | @ | binding.dart:251
  | (anonymous) | @ | js_helper.dart:2115
  | a22 | @ | binding.dart:1289
  | $2 | @ | binding.dart:1140
  | aZ | @ | linked_hash_map.dart:190
  | l_ | @ | main.dart.js:41148
  | a9h | @ | binding.dart:1138
  | ato | @ | binding.dart:1055
  | (anonymous) | @ | js_helper.dart:2115
  | ajx | @ | platform_dispatcher.dart:1183
  | $1 | @ | platform_dispatcher.dart:197
  | bja | @ | js_helper.dart:851
  | bhH | @ | core_patch.dart:84
  | bBn | @ | js_patch.dart:545
  | (anonymous) | @ | js_patch.dart:523
  | requestAnimationFrame (async) |   |  
  | W | @ | js_util_patch.dart:81
  | $0 | @ | dom.dart:49
  | oI | @ | platform_dispatcher.dart:616
  | oI | @ | binding.dart:871
  | z1 | @ | binding.dart:569
  | aEM | @ | binding.dart:251
  | (anonymous) | @ | js_helper.dart:2115
  | a22 | @ | binding.dart:1289
  | $2 | @ | binding.dart:1140
  | aZ | @ | linked_hash_map.dart:190
  | l_ | @ | main.dart.js:41148
  | a9h | @ | binding.dart:1138
  | ato | @ | binding.dart:1055
  | (anonymous) | @ | js_helper.dart:2115
  | ajx | @ | platform_dispatcher.dart:1183
  | $1 | @ | platform_dispatcher.dart:197
  | bja | @ | js_helper.dart:851
  | bhH | @ | core_patch.dart:84
  | bBn | @ | js_patch.dart:545
  | (anonymous) | @ | js_patch.dart:523
  | requestAnimationFrame (async) |   |  
  | W | @ | js_util_patch.dart:81
  | $0 | @ | dom.dart:49
  | oI | @ | platform_dispatcher.dart:616
  | oI | @ | binding.dart:871
  | z1 | @ | binding.dart:569
  | aEM | @ | binding.dart:251
  | (anonymous) | @ | js_helper.dart:2115
  | a22 | @ | binding.dart:1289
  | $2 | @ | binding.dart:1140
  | aZ | @ | linked_hash_map.dart:190
  | l_ | @ | main.dart.js:41148
  | a9h | @ | binding.dart:1138
  | ato | @ | binding.dart:1055
  | (anonymous) | @ | js_helper.dart:2115
  | ajx | @ | platform_dispatcher.dart:1183
  | $1 | @ | platform_dispatcher.dart:197
  | bja | @ | js_helper.dart:851
  | bhH | @ | core_patch.dart:84
  | bBn | @ | js_patch.dart:545
  | (anonymous) | @ | js_patch.dart:523
  | requestAnimationFrame (async) |   |  
  | W | @ | js_util_patch.dart:81
  | $0 | @ | dom.dart:49
  | oI | @ | platform_dispatcher.dart:616
  | oI | @ | binding.dart:871
  | z1 | @ | binding.dart:569
  | aEM | @ | binding.dart:251
  | (anonymous) | @ | js_helper.dart:2115
  | a22 | @ | binding.dart:1289
  | $2 | @ | binding.dart:1140
  | aZ | @ | linked_hash_map.dart:190
  | l_ | @ | main.dart.js:41148
  | a9h | @ | binding.dart:1138
  | ato | @ | binding.dart:1055
  | (anonymous) | @ | js_helper.dart:2115
  | ajx | @ | platform_dispatcher.dart:1183
  | $1 | @ | platform_dispatcher.dart:197
  | bja | @ | js_helper.dart:851
  | bhH | @ | core_patch.dart:84
  | bBn | @ | js_patch.dart:545
  | (anonymous) | @ | js_patch.dart:523
  | requestAnimationFrame (async) |   |  
  | W | @ | js_util_patch.dart:81
  | $0 | @ | dom.dart:49
  | oI | @ | platform_dispatcher.dart:616
  | oI | @ | binding.dart:871
  | z1 | @ | binding.dart:569
  | aEM | @ | binding.dart:251
  | (anonymous) | @ | js_helper.dart:2115
  | a22 | @ | binding.dart:1289
  | $2 | @ | binding.dart:1140
  | aZ | @ | linked_hash_map.dart:190
  | l_ | @ | main.dart.js:41148
  | a9h | @ | binding.dart:1138
  | ato | @ | binding.dart:1055
  | (anonymous) | @ | js_helper.dart:2115
  | ajx | @ | platform_dispatcher.dart:1183
  | $1 | @ | platform_dispatcher.dart:197
  | bja | @ | js_helper.dart:851
  | bhH | @ | core_patch.dart:84
  | bBn | @ | js_patch.dart:545
  | (anonymous) | @ | js_patch.dart:523
  | requestAnimationFrame (async) |   |  
  | W | @ | js_util_patch.dart:81
  | $0 | @ | dom.dart:49
  | oI | @ | platform_dispatcher.dart:616
  | oI | @ | binding.dart:871
  | z1 | @ | binding.dart:569
  | aEM | @ | binding.dart:251
  | (anonymous) | @ | js_helper.dart:2115
  | a22 | @ | binding.dart:1289
  | $2 | @ | binding.dart:1140
  | aZ | @ | linked_hash_map.dart:190
  | l_ | @ | main.dart.js:41148
  | a9h | @ | binding.dart:1138
  | ato | @ | binding.dart:1055
  | (anonymous) | @ | js_helper.dart:2115
  | ajx | @ | platform_dispatcher.dart:1183
  | $1 | @ | platform_dispatcher.dart:197
  | bja | @ | js_helper.dart:851
  | bhH | @ | core_patch.dart:84
  | bBn | @ | js_patch.dart:545
  | (anonymous) | @ | js_patch.dart:523
  | requestAnimationFrame (async) |   |  
  | W | @ | js_util_patch.dart:81
  | $0 | @ | dom.dart:49
  | oI | @ | platform_dispatcher.dart:616
  | oI | @ | binding.dart:871
  | Rz | @ | binding.dart:824
  | atq | @ | binding.dart:752
  | (anonymous) | @ | js_helper.dart:2105
  | UC | @ | framework.dart:2566
  | eB | @ | framework.dart:3369
  | N | @ | framework.dart:1153
  | RU | @ | ink_well.dart:810
  | (anonymous) | @ | js_helper.dart:2105
  | B | @ | change_notifier.dart:381
  | hF | @ | material_state.dart:752
  | a4F | @ | ink_well.dart:1078
  | aDU | @ | ink_well.dart:1067
  | aLt | @ | ink_well.dart:1059
  | (anonymous) | @ | js_helper.dart:2115
  | $0 | @ | tap.dart:596
  | a9Z | @ | recognizer.dart:253
  | i_ | @ | recognizer.dart:239
  | a9q | @ | tap.dart:596
  | ZV | @ | tap.dart:297
  | Rk | @ | tap.dart:267
  | $0 | @ | recognizer.dart:586
  | $0 | @ | async_patch.dart:131
  | bEX | @ | js_helper.dart:1838
  | (anonymous) | @ | js_helper.dart:1872
  | setTimeout (async) |   |  
  | anP | @ | async_patch.dart:134
  | bAO | @ | async_patch.dart:126
  | bki | @ | async_patch.dart:109
  | a8e | @ | zone.dart:1684
  | dy | @ | timer.dart:51
  | nU | @ | recognizer.dart:586
  | nU | @ | tap.dart:222
  | avW | @ | recognizer.dart:160
  | (anonymous) | @ | js_helper.dart:2115
  | kt | @ | proxy_box.dart:3168
  | Rn | @ | binding.dart:440
  | Rn | @ | binding.dart:336
  | a1x | @ | binding.dart:395
  | aLf | @ | binding.dart:357
  | NB | @ | binding.dart:314
  | avU | @ | binding.dart:295
  | (anonymous) | @ | js_helper.dart:2115
  | ajx | @ | platform_dispatcher.dart:1183
  | azz | @ | platform_dispatcher.dart:243
  | (anonymous) | @ | js_helper.dart:2115
  | $1 | @ | pointer_binding.dart:651
  | $1 | @ | pointer_binding.dart:620
  | $1 | @ | pointer_binding.dart:303
  | $1 | @ | pointer_binding.dart:188
  | bja | @ | js_helper.dart:851
  | bhH | @ | core_patch.dart:84
  | bBn | @ | js_patch.dart:545
  | (anonymous) | @ | js_patch.dart:523


@jason-simmons
Copy link
Member

Looked at Flutter Web's behavior in the original example in #122189 (comment)

The primary issue here is that CanvasKit's paragraph binding is creating a new SkParagraph FontCollection instance each time it creates a ParagraphBuilder.

In modules/canvaskit/paragraph_bindings.cpp:

    class_<para::ParagraphBuilderImpl>("ParagraphBuilder")
            .class_function(
                    "_Make",
                    optional_override([](SimpleParagraphStyle style, sk_sp<SkFontMgr> fontMgr)
                                              -> std::unique_ptr<para::ParagraphBuilderImpl> {
                        auto fc = sk_make_sp<para::FontCollection>();

FontCollection holds a cache of fonts and a cache of laid out paragraphs. Flutter on non-Web platforms creates one FontCollection for each engine instance and uses it for all paragraph builder.

On Web, the FontCollection and its cache are not kept around for the next paragraph. So FontCollection will need to query the font provider supplied by Flutter Web to obtains fonts for each paragraph. The font provider does its own caching of font families, so that works adequately for non-variable fonts.

However, for variable fonts SkParagraph needs to call SkTypeface::makeClone to build an SkTypeface with the variable font parameters. In this app the parameters are always the same, so the typeface would have been found in the FontCollection cache if it had been kept around.

But with no cache SkTypeface::makeClone needs to create a new SkTypeface instance. This also allocates a new typeface unique ID from the SkTypefaceCache. The unique IDs are used in keys for various caches like the HBLockedFaceCache in SkShaper_harfbuzz and the Skia SkStrikeCache.

So every new paragraph layout creates more typeface instances and cache entries, resulting in a leak.

@yjbanov @hterkelsen

@rydmike
Copy link
Contributor

rydmike commented Mar 15, 2023

Thanks @jason-simmons for this finding and info. I tested building the above same app that uses custom fonts, lots of icons, and yes it has a lot of text as well, with the html renderer only in release mode.

I could not get it to crash anymore. I tortured it for quite a while doing things that consistently quite quickly crashes the canvaskit build. It did not crash.

Normally the the html renderer is more sluggish, but with this canvaskit bug effective, it actually felt more snappy than the canvaskit build. The html render has other issues with poorer flutter_svg support and fuzzy scaled fonts, making it a not viable option for this app.

I could still see the numbers in the colored boxes (as shown and described above earlier) randomly changing values in the html release build as well. As before I cannot observe that behavior, that should not be there, on any VM build, debug/release, or even web debug buildd, be it canvaskit or html. That issue is only present on web release builds, and with both html and canvaskit renderer. Thus I still suspect the web release mode complier optimizes out something that breaks the correct and expected functionality.

I just noticed that there is a certain combination of other views/elements that must be present on the same screen for this issue to present itself on the web release mode builds. I will investigate that further. It looks like this is a separate issue, so I will open another case for it when/if I am able to isolate it better.

@yjbanov
Copy link
Contributor

yjbanov commented Mar 15, 2023

@jason-simmons That's amazing digging! We also have this issue - #120921 - where our paragraph caching strategy is ineffective in the material demo app. But perhaps we don't need any engine-side caching at all if we can fix this font collection issue, and rely on a combination of the recently added Paragraph.dispose and GC for timely clean-up of paragraph resources.

@jason-simmons
Copy link
Member

SkParagraph has the ability to cache paragraph layouts. But that cache is kept within the FontCollection object (see https://github.com/google/skia/blob/main/modules/skparagraph/include/FontCollection.h#L79)

So Flutter Web is not getting the benefits of SkParagraph's paragraph cache because it recreates the FontCollection for every paragraph. Hopefully fixing that will also improve performance for repeated text layouts in Web.

@rydmike
Copy link
Contributor

rydmike commented Mar 16, 2023

@yjbanov I also noticed the severely degraded performance on release mode skia builds, after 3.7 release I think, it could also have arrived with one of the 3.7 hotfixes, not sure.

Yes it can be seen on theme transitions in general, not just light/dark, but easier to observe on it. I also see it on tooltips, their show animation have gotten quite poor.

I also noticed that the mentioned official Material 3 demo app contains what might be considered to be an unusual amount of RepaintBoundaries. Where they added to try to amend the observed performance issues?

I started down the same road in the Theme Playground v7 app, but quickly noticed it did not help and besides they were not needed at all before Flutter 3.7, performance was quite OK.

Same issues observed in Themes Playground as in Material 3 demo

As a perhaps interesting side note, the FlexColorScheme package companion app ThemesPlayground, where I noticed all these, embeds a slightly modified version of the official Material 3 demo app. The demo app can be shown in various devices and it gets its theme from the FlexColorScheme package in that is configured by Themes Playground app. So all widgets in it can completely change style via in-app dynamic theming from its parent. It is used to show how different theme settings impacts the look of Material widgets.

It looks like this:
Screenshot 2023-03-16 at 7 55 14

I do see the same issues also when not using pages that contain the Material 3 demo app put into into a DeviceFrame, inside the Themes Playground. So I certainly knew it was not the cause.

The Themes Playground does all the things the Material 3 demo app does as well, and much more. Plus it contains a lot of text icons, much more than the Material 3 demo, and it uses custom in-app dynamic theming of almost all available Material component themes. It's a good torture test of almost all Flutter theming features and changing them in realtime inside the app. Additionally it's all inherited by a number of simple theme showcase apps, the Material 3 demo being one of them, plus it writes the FlexColorScheme API config code for the theme shown as the theme id modified interactively with UI controls.

Not just performance, larger SKIA web builds just crashes after a while

Why mentioned all this? Well I'm currently unable to release the new version of the FlexColorScheme package and the Themes Playground app due to this issue.

Suffice to say, it all works and runs buttery smooth on macOS and Windows desktop builds, or Android/iOS device as well.

Currently the app actually performs better as a html build on desktop, a first, never seen that before. Skia is very bad now, and it crashes pretty quickly.

HTML build has other issues, with fuzzy scaling and svgs being a bit so so, it is not fast either, but currently faster than SKIA with Flutter stable 3.7.7, and of course it does not crash after using it for about 1 minute.

More info about Themes Playground

If of interest, more images and videos can be found of the new Themes Playground app e.g. in these tweets:

How it started: https://twitter.com/RydMike/status/1625212853740249100?s=20

And more:

https://twitter.com/RydMike/status/1635684469284667392?s=20
https://twitter.com/RydMike/status/1630793457076781056?s=20
https://twitter.com/RydMike/status/1629960982972833794?s=20
https://twitter.com/RydMike/status/1627730525459709952?s=20

@rydmike
Copy link
Contributor

rydmike commented Mar 18, 2023

Just as info, I just tried going back to stable 3.7.0 and building the Themes Playground app on it as well. This same bug exists already then, so it did not sneak in via any later hotfix. I did not really think so, but I just wanted to make sure.

BTW, gosh is it slow in release mode with canvaskit, it really struggles with all the text and screen resizes. Ironically, the html renderer release mode build is now much faster and smoother (never seen that before this issue) and it does not crash. However, it draws some parts of the app really soft and fuzzy looking (scaled content, and normal UI sometimes too after a zoom transition), well to a critical eye at least. That has always been a "feature" of the html render, which is why I prefer to not use it. However, as long as this bug is in effect on stable channel, that will have to be the temporary workaround.

pull bot pushed a commit to TheRakeshPurohit/skia that referenced this issue Mar 21, 2023
Bug: flutter/flutter#122189
Change-Id: I7d951a676e11a1c9f4859daa744d280b56fb6d5c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/657270
Reviewed-by: Kevin Lubick <kjlubick@google.com>
@yjbanov yjbanov added the P2 label Mar 26, 2023
@yjbanov
Copy link
Contributor

yjbanov commented Mar 26, 2023

@rydmike

gosh is it slow in release mode in canvaskit

Are you observing it in the master channel? You may be seeing #123484, which only started yesterday.

@rydmike
Copy link
Contributor

rydmike commented Mar 26, 2023

Generally I do test with master as well, and follow what is happening there, mostly for theming and M3, but I have not tried a build of this particular app that recently on master, latest was a few days ago. I will try it later today, thx for the heads up 💙

@yjbanov
Copy link
Contributor

yjbanov commented Mar 26, 2023

which only started yesterday

What I should have said is that our benchmarks only caught it on Friday. The new build has been available for longer than that. I'm suspecting we have more than one regressions. We'll look into this this coming week.

@rydmike
Copy link
Contributor

rydmike commented Mar 27, 2023

Just made a test release build using Channel master, 3.9.0-17.0.pre.27

Tortured the app for a while, with theme and font changes, and complex layouts, lasted longer than before, but eventually, well eventually is maybe a bit strong, maybe I played with it for 2 minutes, until it bombed when just changing between light/dark theme:

Screenshot 2023-03-27 at 4 00 01

I think it used to bomb faster before, but not sure, it was always a bit random and varying feeling. I will start timing it in future tests. Feels like it depends on how much and fast (often) you torture it, with theme and text changes.

Chrome console trace
Installed new service worker.
js_primitives.dart:42 Got object store box in database flex_color_scheme_v5_box_5.
canvaskit.js:188 WebGL: INVALID_VALUE: texSubImage2D: ArrayBufferView size exceeds the supported range
Yc @ canvaskit.js:188
$func11764 @ canvaskit.wasm:0x1d46d8
$func5198 @ canvaskit.wasm:0xa1c54
$func11679 @ canvaskit.wasm:0x1d17bc
$func16967 @ canvaskit.wasm:0x2dad38
$func5380 @ canvaskit.wasm:0xa7a10
$func12497 @ canvaskit.wasm:0x1f6b23
$func17871 @ canvaskit.wasm:0x310629
$func9372 @ canvaskit.wasm:0x160059
$func9373 @ canvaskit.wasm:0x16007f
$func4168 @ canvaskit.wasm:0x719d7
$func12413 @ canvaskit.wasm:0x1f4d00
$func1855 @ canvaskit.wasm:0x2f198
$func12994 @ canvaskit.wasm:0x208cb2
$func18096 @ canvaskit.wasm:0x319d12
$func653 @ canvaskit.wasm:0x10e58
$func3899 @ canvaskit.wasm:0x6772f
$func4143 @ canvaskit.wasm:0x70e13
$func4887 @ canvaskit.wasm:0x91948
$func7589 @ canvaskit.wasm:0x100347
$func12967 @ canvaskit.wasm:0x207d78
$func15526 @ canvaskit.wasm:0x26aaaf
$func1934 @ canvaskit.wasm:0x30aab
$func9449 @ canvaskit.wasm:0x1637dc
$func6259 @ canvaskit.wasm:0xc97f1
$func14148 @ canvaskit.wasm:0x23efa6
$func15506 @ canvaskit.wasm:0x269c77
$func4266 @ canvaskit.wasm:0x75cf9
$func6326 @ canvaskit.wasm:0xcba04
$func8120 @ canvaskit.wasm:0x11a655
$func1687 @ canvaskit.wasm:0x2bf26
(anonymous) @ canvaskit.js:120
a.Canvas.drawPicture @ canvaskit.js:51
m0 @ canvas.dart:214
kH @ layer.dart:470
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:216
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:257
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:216
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:257
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:216
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:257
qz @ layer.dart:141
kH @ layer.dart:216
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:257
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:257
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
$0 @ layer.dart:154
bac @ profiler.dart:38
aTv @ layer_tree.dart:96
aO4 @ rasterizer.dart:33
aeT @ renderer.dart:365
aM_ @ platform_dispatcher.dart:692
TY @ object.dart:934
TY @ binding.dart:895
azq @ binding.dart:358
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
a4L @ binding.dart:1277
acz @ binding.dart:1214
axU @ binding.dart:1072
(anonymous) @ js_helper.dart:2171
rj @ platform_dispatcher.dart:1238
$1 @ platform_dispatcher.dart:244
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
U2 @ binding.dart:821
ax5 @ binding.dart:782
(anonymous) @ js_helper.dart:2171
X8 @ framework.dart:2606
eR @ framework.dart:3395
L @ framework.dart:1159
Us @ ink_well.dart:826
(anonymous) @ js_helper.dart:2171
B @ change_notifier.dart:403
i1 @ material_state.dart:752
a7t @ ink_well.dart:1105
aHY @ ink_well.dart:1094
acv @ ink_well.dart:1073
aPU @ ink_well.dart:1077
(anonymous) @ js_helper.dart:2181
$0 @ tap.dart:626
adh @ recognizer.dart:275
f2 @ recognizer.dart:262
acH @ tap.dart:626
a1o @ tap.dart:302
TN @ tap.dart:272
$0 @ recognizer.dart:601
$0 @ async_patch.dart:122
bGo @ js_helper.dart:1904
(anonymous) @ js_helper.dart:1938
setTimeout (async)
arr @ async_patch.dart:125
bBX @ async_patch.dart:117
bkm @ async_patch.dart:100
ab9 @ zone.dart:1684
dz @ timer.dart:51
l3 @ recognizer.dart:601
l3 @ tap.dart:227
azw @ recognizer.dart:183
(anonymous) @ js_helper.dart:2181
kD @ proxy_box.dart:3111
TR @ binding.dart:445
TR @ binding.dart:331
a4e @ binding.dart:400
Up @ binding.dart:363
PX @ binding.dart:320
azu @ binding.dart:293
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
aDm @ platform_dispatcher.dart:269
(anonymous) @ js_helper.dart:2181
$1 @ pointer_binding.dart:755
$1 @ pointer_binding.dart:724
$1 @ pointer_binding.dart:318
$1 @ pointer_binding.dart:200
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
canvaskit.js:99 Aborted()
Ja @ canvaskit.js:99
x @ canvaskit.js:169
$func690 @ canvaskit.wasm:0x18907
$func8421 @ canvaskit.wasm:0x12dec3
$func3458 @ canvaskit.wasm:0x5b3bc
$func891 @ canvaskit.wasm:0x1cf08
$func589 @ canvaskit.wasm:0x10155
$func7217 @ canvaskit.wasm:0xf2846
$func7260 @ canvaskit.wasm:0xf3aad
$func12387 @ canvaskit.wasm:0x1f35b6
$func653 @ canvaskit.wasm:0x11269
$func16802 @ canvaskit.wasm:0x2d56fa
$func11513 @ canvaskit.wasm:0x1c9042
$func18045 @ canvaskit.wasm:0x31582b
$func6563 @ canvaskit.wasm:0xd3fea
$func15523 @ canvaskit.wasm:0x26a934
$func15524 @ canvaskit.wasm:0x26a982
$func6324 @ canvaskit.wasm:0xcb9da
$func9449 @ canvaskit.wasm:0x16389a
$func6259 @ canvaskit.wasm:0xc97f1
$func14148 @ canvaskit.wasm:0x23efa6
$func15506 @ canvaskit.wasm:0x269c77
$func4266 @ canvaskit.wasm:0x75cf9
$func6326 @ canvaskit.wasm:0xcba04
$func8120 @ canvaskit.wasm:0x11a655
$func1687 @ canvaskit.wasm:0x2bf26
(anonymous) @ canvaskit.js:120
a.Canvas.drawPicture @ canvaskit.js:51
m0 @ canvas.dart:214
kH @ layer.dart:470
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:257
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:257
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
kH @ layer.dart:368
qz @ layer.dart:141
$0 @ layer.dart:154
bac @ profiler.dart:38
aTv @ layer_tree.dart:96
aO4 @ rasterizer.dart:33
aeT @ renderer.dart:365
aM_ @ platform_dispatcher.dart:692
TY @ object.dart:934
TY @ binding.dart:895
azq @ binding.dart:358
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
a4L @ binding.dart:1277
acz @ binding.dart:1214
axU @ binding.dart:1072
(anonymous) @ js_helper.dart:2171
rj @ platform_dispatcher.dart:1238
$1 @ platform_dispatcher.dart:244
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
U2 @ binding.dart:821
ax5 @ binding.dart:782
(anonymous) @ js_helper.dart:2171
X8 @ framework.dart:2606
eR @ framework.dart:3395
L @ framework.dart:1159
Us @ ink_well.dart:826
(anonymous) @ js_helper.dart:2171
B @ change_notifier.dart:403
i1 @ material_state.dart:752
a7t @ ink_well.dart:1105
aHY @ ink_well.dart:1094
acv @ ink_well.dart:1073
aPU @ ink_well.dart:1077
(anonymous) @ js_helper.dart:2181
$0 @ tap.dart:626
adh @ recognizer.dart:275
f2 @ recognizer.dart:262
acH @ tap.dart:626
a1o @ tap.dart:302
TN @ tap.dart:272
$0 @ recognizer.dart:601
$0 @ async_patch.dart:122
bGo @ js_helper.dart:1904
(anonymous) @ js_helper.dart:1938
setTimeout (async)
arr @ async_patch.dart:125
bBX @ async_patch.dart:117
bkm @ async_patch.dart:100
ab9 @ zone.dart:1684
dz @ timer.dart:51
l3 @ recognizer.dart:601
l3 @ tap.dart:227
azw @ recognizer.dart:183
(anonymous) @ js_helper.dart:2181
kD @ proxy_box.dart:3111
TR @ binding.dart:445
TR @ binding.dart:331
a4e @ binding.dart:400
Up @ binding.dart:363
PX @ binding.dart:320
azu @ binding.dart:293
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
aDm @ platform_dispatcher.dart:269
(anonymous) @ js_helper.dart:2181
$1 @ pointer_binding.dart:755
$1 @ pointer_binding.dart:724
$1 @ pointer_binding.dart:318
$1 @ pointer_binding.dart:200
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
js_primitives.dart:42 RuntimeError: Aborted(). Build with -s ASSERTIONS=1 for more info.
js_primitives.dart:42     at Ja (https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.js:99:75)
js_primitives.dart:42     at x (https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.js:169:116)
js_primitives.dart:42     at https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.wasm:wasm-function[690]:0x18907
js_primitives.dart:42     at https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.wasm:wasm-function[8421]:0x12dec3
js_primitives.dart:42     at https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.wasm:wasm-function[3458]:0x5b3bc
js_primitives.dart:42     at https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.wasm:wasm-function[891]:0x1cf08
js_primitives.dart:42     at https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.wasm:wasm-function[589]:0x10155
js_primitives.dart:42     at https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.wasm:wasm-function[7217]:0xf2846
js_primitives.dart:42     at https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.wasm:wasm-function[7260]:0xf3aad
js_primitives.dart:42     at https://www.gstatic.com/flutter-canvaskit/685fbc6f4d9db8026c56ee1a177bb10cc09f884b/chromium/canvaskit.wasm:wasm-function[12387]:0x1f35b6
canvaskit.js:99 Aborted()
Ja @ canvaskit.js:99
x @ canvaskit.js:169
$func690 @ canvaskit.wasm:0x18907
$func8421 @ canvaskit.wasm:0x12dec3
$func3458 @ canvaskit.wasm:0x5b3bc
$func891 @ canvaskit.wasm:0x1cf08
$func589 @ canvaskit.wasm:0x10155
$func7904 @ canvaskit.wasm:0x1130f2
$func7905 @ canvaskit.wasm:0x11313b
$func5608 @ canvaskit.wasm:0xaff37
$func13353 @ canvaskit.wasm:0x223cbd
$func5909 @ canvaskit.wasm:0xbacfa
$func5603 @ canvaskit.wasm:0xafd7d
$func13357 @ canvaskit.wasm:0x224440
$func13323 @ canvaskit.wasm:0x21fd64
$func6256 @ canvaskit.wasm:0xc96d6
(anonymous) @ canvaskit.js:120
rm @ text.dart:617
hR @ text.dart:794
a51 @ text_painter.dart:907
DG @ text_painter.dart:953
HG @ paragraph.dart:632
rs @ paragraph.dart:655
bD @ paragraph.dart:766
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ shifted_box.dart:438
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:297
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a7p @ stack.dart:580
bD @ box.dart:2029
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
hx @ custom_layout.dart:171
E4 @ navigation_bar.dart:998
asV @ custom_layout.dart:235
bD @ custom_layout.dart:321
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a3c @ flex.dart:868
bD @ flex.dart:903
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a7p @ stack.dart:580
bD @ box.dart:2029
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a3c @ flex.dart:868
bD @ flex.dart:903
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:297
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ object.dart:3856
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
bD @ proxy_box.dart:1449
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ shifted_box.dart:438
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
bD @ proxy_box.dart:1449
c_ @ object.dart:2395
c_ @ box.dart:2386
hx @ custom_layout.dart:171
E4 @ scaffold.dart:1008
asV @ custom_layout.dart:235
bD @ custom_layout.dart:321
aBX @ object.dart:2234
aci @ object.dart:1016
TY @ binding.dart:492
TY @ binding.dart:895
azq @ binding.dart:358
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
a4L @ binding.dart:1277
acz @ binding.dart:1214
axU @ binding.dart:1072
(anonymous) @ js_helper.dart:2171
rj @ platform_dispatcher.dart:1238
$1 @ platform_dispatcher.dart:244
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
U2 @ binding.dart:821
ax5 @ binding.dart:782
(anonymous) @ js_helper.dart:2171
X8 @ framework.dart:2606
eR @ framework.dart:3395
L @ framework.dart:1159
Us @ ink_well.dart:826
(anonymous) @ js_helper.dart:2171
B @ change_notifier.dart:403
i1 @ material_state.dart:752
a7t @ ink_well.dart:1105
aHY @ ink_well.dart:1094
acv @ ink_well.dart:1073
aPU @ ink_well.dart:1077
(anonymous) @ js_helper.dart:2181
$0 @ tap.dart:626
adh @ recognizer.dart:275
f2 @ recognizer.dart:262
acH @ tap.dart:626
a1o @ tap.dart:302
TN @ tap.dart:272
$0 @ recognizer.dart:601
$0 @ async_patch.dart:122
bGo @ js_helper.dart:1904
(anonymous) @ js_helper.dart:1938
setTimeout (async)
arr @ async_patch.dart:125
bBX @ async_patch.dart:117
bkm @ async_patch.dart:100
ab9 @ zone.dart:1684
dz @ timer.dart:51
l3 @ recognizer.dart:601
l3 @ tap.dart:227
azw @ recognizer.dart:183
(anonymous) @ js_helper.dart:2181
kD @ proxy_box.dart:3111
TR @ binding.dart:445
TR @ binding.dart:331
a4e @ binding.dart:400
Up @ binding.dart:363
PX @ binding.dart:320
azu @ binding.dart:293
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
aDm @ platform_dispatcher.dart:269
(anonymous) @ js_helper.dart:2181
$1 @ pointer_binding.dart:755
$1 @ pointer_binding.dart:724
$1 @ pointer_binding.dart:318
$1 @ pointer_binding.dart:200
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
dom.dart:168 CanvasKit threw an exception while laying out the paragraph. The font was "MaterialIcons". Exception:
RuntimeError: Aborted(). Build with -s ASSERTIONS=1 for more info.
$1 @ dom.dart:168
rm @ text.dart:634
hR @ text.dart:794
a51 @ text_painter.dart:907
DG @ text_painter.dart:953
HG @ paragraph.dart:632
rs @ paragraph.dart:655
bD @ paragraph.dart:766
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ shifted_box.dart:438
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:297
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a7p @ stack.dart:580
bD @ box.dart:2029
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
hx @ custom_layout.dart:171
E4 @ navigation_bar.dart:998
asV @ custom_layout.dart:235
bD @ custom_layout.dart:321
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a3c @ flex.dart:868
bD @ flex.dart:903
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a7p @ stack.dart:580
bD @ box.dart:2029
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a3c @ flex.dart:868
bD @ flex.dart:903
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:297
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ object.dart:3856
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
bD @ proxy_box.dart:1449
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ shifted_box.dart:438
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
bD @ proxy_box.dart:1449
c_ @ object.dart:2395
c_ @ box.dart:2386
hx @ custom_layout.dart:171
E4 @ scaffold.dart:1008
asV @ custom_layout.dart:235
bD @ custom_layout.dart:321
aBX @ object.dart:2234
aci @ object.dart:1016
TY @ binding.dart:492
TY @ binding.dart:895
azq @ binding.dart:358
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
a4L @ binding.dart:1277
acz @ binding.dart:1214
axU @ binding.dart:1072
(anonymous) @ js_helper.dart:2171
rj @ platform_dispatcher.dart:1238
$1 @ platform_dispatcher.dart:244
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
U2 @ binding.dart:821
ax5 @ binding.dart:782
(anonymous) @ js_helper.dart:2171
X8 @ framework.dart:2606
eR @ framework.dart:3395
L @ framework.dart:1159
Us @ ink_well.dart:826
(anonymous) @ js_helper.dart:2171
B @ change_notifier.dart:403
i1 @ material_state.dart:752
a7t @ ink_well.dart:1105
aHY @ ink_well.dart:1094
acv @ ink_well.dart:1073
aPU @ ink_well.dart:1077
(anonymous) @ js_helper.dart:2181
$0 @ tap.dart:626
adh @ recognizer.dart:275
f2 @ recognizer.dart:262
acH @ tap.dart:626
a1o @ tap.dart:302
TN @ tap.dart:272
$0 @ recognizer.dart:601
$0 @ async_patch.dart:122
bGo @ js_helper.dart:1904
(anonymous) @ js_helper.dart:1938
setTimeout (async)
arr @ async_patch.dart:125
bBX @ async_patch.dart:117
bkm @ async_patch.dart:100
ab9 @ zone.dart:1684
dz @ timer.dart:51
l3 @ recognizer.dart:601
l3 @ tap.dart:227
azw @ recognizer.dart:183
(anonymous) @ js_helper.dart:2181
kD @ proxy_box.dart:3111
TR @ binding.dart:445
TR @ binding.dart:331
a4e @ binding.dart:400
Up @ binding.dart:363
PX @ binding.dart:320
azu @ binding.dart:293
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
aDm @ platform_dispatcher.dart:269
(anonymous) @ js_helper.dart:2181
$1 @ pointer_binding.dart:755
$1 @ pointer_binding.dart:724
$1 @ pointer_binding.dart:318
$1 @ pointer_binding.dart:200
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
js_primitives.dart:42 Another exception was thrown: Instance of 'minified:ll<void>'
js_primitives.dart:42 Another exception was thrown: Instance of 'minified:ll<void>'
canvaskit.js:99 Aborted()
Ja @ canvaskit.js:99
x @ canvaskit.js:169
$func226 @ canvaskit.wasm:0xab73
$func7354 @ canvaskit.wasm:0xf7915
$func7725 @ canvaskit.wasm:0x10de26
$func5512 @ canvaskit.wasm:0xadab7
(anonymous) @ canvaskit.js:120
g.ParagraphBuilder.MakeFromFontProvider @ canvaskit.js:76
bgz @ canvaskit_api.dart:17
CU @ renderer.dart:351
a2f @ text.dart:673
DG @ text_painter.dart:946
HG @ paragraph.dart:632
rs @ paragraph.dart:655
bD @ paragraph.dart:766
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ object.dart:3856
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
hx @ custom_layout.dart:171
E4 @ navigation_bar.dart:999
asV @ custom_layout.dart:235
bD @ custom_layout.dart:321
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a3c @ flex.dart:868
bD @ flex.dart:903
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a7p @ stack.dart:580
bD @ box.dart:2029
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
btM @ layout_helper.dart:52
a3c @ flex.dart:868
bD @ flex.dart:903
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:297
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ object.dart:3856
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
bD @ proxy_box.dart:1449
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ shifted_box.dart:438
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
c_ @ object.dart:2395
c_ @ box.dart:2386
bD @ proxy_box.dart:122
bD @ proxy_box.dart:1449
c_ @ object.dart:2395
c_ @ box.dart:2386
hx @ custom_layout.dart:171
E4 @ scaffold.dart:1008
asV @ custom_layout.dart:235
bD @ custom_layout.dart:321
aBX @ object.dart:2234
aci @ object.dart:1016
TY @ binding.dart:492
TY @ binding.dart:895
azq @ binding.dart:358
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
a4L @ binding.dart:1277
acz @ binding.dart:1214
axU @ binding.dart:1072
(anonymous) @ js_helper.dart:2171
rj @ platform_dispatcher.dart:1238
$1 @ platform_dispatcher.dart:244
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
Ay @ binding.dart:566
aIP @ binding.dart:251
(anonymous) @ js_helper.dart:2181
a4M @ binding.dart:1284
$2 @ binding.dart:1136
aP @ linked_hash_map.dart:190
mi @ main.dart.js:43261
acw @ binding.dart:1134
ax3 @ binding.dart:1051
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
$1 @ platform_dispatcher.dart:223
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
requestAnimationFrame (async)
V @ js_util_patch.dart:106
$0 @ dom.dart:131
p6 @ platform_dispatcher.dart:663
p6 @ binding.dart:868
U2 @ binding.dart:821
ax5 @ binding.dart:782
(anonymous) @ js_helper.dart:2171
X8 @ framework.dart:2606
eR @ framework.dart:3395
L @ framework.dart:1159
Us @ ink_well.dart:826
(anonymous) @ js_helper.dart:2171
B @ change_notifier.dart:403
i1 @ material_state.dart:752
a7t @ ink_well.dart:1105
aHY @ ink_well.dart:1094
acv @ ink_well.dart:1073
aPU @ ink_well.dart:1077
(anonymous) @ js_helper.dart:2181
$0 @ tap.dart:626
adh @ recognizer.dart:275
f2 @ recognizer.dart:262
acH @ tap.dart:626
a1o @ tap.dart:302
TN @ tap.dart:272
$0 @ recognizer.dart:601
$0 @ async_patch.dart:122
bGo @ js_helper.dart:1904
(anonymous) @ js_helper.dart:1938
setTimeout (async)
arr @ async_patch.dart:125
bBX @ async_patch.dart:117
bkm @ async_patch.dart:100
ab9 @ zone.dart:1684
dz @ timer.dart:51
l3 @ recognizer.dart:601
l3 @ tap.dart:227
azw @ recognizer.dart:183
(anonymous) @ js_helper.dart:2181
kD @ proxy_box.dart:3111
TR @ binding.dart:445
TR @ binding.dart:331
a4e @ binding.dart:400
Up @ binding.dart:363
PX @ binding.dart:320
azu @ binding.dart:293
(anonymous) @ js_helper.dart:2181
akB @ platform_dispatcher.dart:1253
aDm @ platform_dispatcher.dart:269
(anonymous) @ js_helper.dart:2181
$1 @ pointer_binding.dart:755
$1 @ pointer_binding.dart:724
$1 @ pointer_binding.dart:318
$1 @ pointer_binding.dart:200
bja @ js_helper.dart:917
bhF @ core_patch.dart:87
bCx @ js_allow_interop_patch.dart:55
(anonymous) @ js_allow_interop_patch.dart:33
js_primitives.dart:42 Another exception was thrown: Instance of 'minified:ll<void>'
js_primitives.dart:42 Another exception was thrown: Instance of 'minified:ll<void>'
js_primitives.dart:42 Another exception was thrown: Instance of 'minified:ll<void>'
js_primitives.dart:42 Another exception was thrown: Instance of 'minified:ll<void>'
js_primitives.dart:42 Another exception was thrown: Instance of 'minified:ll<void>'

As before, runs fine, stable and fast in any mode on VM builds, also stable in html renderer release web build. I would even say html release still feels snappier than above canvaskit did, but I will test them more side by side, and do some profiling too with both later.

@rydmike
Copy link
Contributor

rydmike commented Mar 31, 2023

Tested above canvaskit build again with master, 3.9.0-19.0.pre.50, it now runs much faster and smoother than before and has not crashed yet. Seems stable and performance roughly on par with what the app used to have with canvaskit release build. I will keep the build running and play with now an then to see if it remains stable.

@harryterkelsen
Copy link
Contributor

Fixed with flutter/engine#40740

@GP4cK
Copy link

GP4cK commented Apr 4, 2023

@hterkelsen can we expect to see a hotfix on stable?

@exaby73 exaby73 added the r: fixed Issue is closed as already fixed in a newer version label Apr 4, 2023
@yjbanov
Copy link
Contributor

yjbanov commented Apr 4, 2023

Our beta 3 cut is scheduled happen shortly, which will become a candidate for the 3.10 stable release. If all goes well, it will include this fix. We won't be able to hotfix this into 3.9 as there's too many changes across Skia and Flutter.

@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 18, 2023
@flutter-triage-bot flutter-triage-bot bot added P0 Critical issues such as a build break or regression and removed P2 labels Jun 28, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: performance Relates to speed or footprint issues (see "perf:" labels) c: regression It was better in the past than it is now engine flutter/engine repository. See also e: labels. found in release: 3.7 Found to occur in 3.7 found in release: 3.9 Found to occur in 3.9 has reproducible steps The issue has been confirmed reproducible and is ready to work on P0 Critical issues such as a build break or regression perf: memory Performance issues related to memory platform-web Web applications specifically r: fixed Issue is closed as already fixed in a newer version
Projects
None yet
Development

No branches or pull requests

8 participants