Skip to content

--dart2js-optimization=O0 appears to be totally broken #133404

@tvolkert

Description

@tvolkert

Steps to reproduce

  1. Write the following app:

    import 'package:flutter/material.dart';
    
    @pragma('vm:entry-point')
    void main() async {
      runApp(const LoadingScreen());
    }
    
    class LoadingScreen extends StatelessWidget {
      const LoadingScreen({super.key});
    
      @override
      Widget build(BuildContext context) {
        return const ColoredBox(
          color: Color(0xffcc0000),
          child: Center(
            child: CircularProgressIndicator(),
          ),
        );
      }
    }
  2. Compile the app using flutter build web --web-renderer=canvaskit --dart2js-optimization=O0

  3. Try to run the app in the browser

Expected results

You expect to see a red page with a loading indicator

Actual results

A lot of errors appear in the console, and the page doesn't load.

flutter.js:368 Exception while loading service worker: Error: prepareServiceWorker took more than 4000ms to resolve. Moving on.
    at flutter.js:48:11
(anonymous) @ flutter.js:368
Promise.catch (async)
loadEntrypoint @ flutter.js:366
(anonymous) @ (index):46
load (async)
(anonymous) @ (index):44
main.dart.js:17504 Rejecting promise with error: NoSuchMethodError: method not found: 'clear$0' (J.getInterceptor$ax(...).clear$0 is not a function)
_callMethodUnchecked1 @ main.dart.js:17504
DomConsoleExtension_warn @ main.dart.js:1410
call$1 @ main.dart.js:29692
call$1 @ main.dart.js:30940
runUnary$2$2 @ main.dart.js:46875
handleError$1 @ main.dart.js:45622
call$0 @ main.dart.js:46072
_Future__propagateToListeners @ main.dart.js:12206
_completeError$2 @ main.dart.js:45912
completeError$2 @ main.dart.js:45069
_asyncRethrow @ main.dart.js:11922
(anonymous) @ main.dart.js:26743
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
call$2 @ main.dart.js:45089
runBinary$3$3 @ main.dart.js:46886
handleError$1 @ main.dart.js:45620
call$0 @ main.dart.js:46072
_Future__propagateToListeners @ main.dart.js:12206
_completeError$2 @ main.dart.js:45912
completeError$2 @ main.dart.js:45069
_asyncRethrow @ main.dart.js:11922
(anonymous) @ main.dart.js:57443
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
call$2 @ main.dart.js:45089
runBinary$3$3 @ main.dart.js:46886
handleError$1 @ main.dart.js:45620
call$0 @ main.dart.js:46072
_Future__propagateToListeners @ main.dart.js:12206
_completeError$2 @ main.dart.js:45912
completeError$2 @ main.dart.js:45069
_asyncRethrow @ main.dart.js:11922
(anonymous) @ main.dart.js:2789
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
call$2 @ main.dart.js:45089
runBinary$3$3 @ main.dart.js:46886
handleError$1 @ main.dart.js:45620
call$0 @ main.dart.js:46072
_Future__propagateToListeners @ main.dart.js:12206
_completeError$2 @ main.dart.js:45912
call$1 @ main.dart.js:45501
runUnary$2$2 @ main.dart.js:46875
handleValue$1 @ main.dart.js:45603
call$0 @ main.dart.js:46054
_Future__propagateToListeners @ main.dart.js:12204
_completeWithValue$1 @ main.dart.js:45904
complete$1 @ main.dart.js:45055
_asyncReturn @ main.dart.js:11919
(anonymous) @ main.dart.js:28593
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
call$1 @ main.dart.js:45083
runUnary$2$2 @ main.dart.js:46875
handleValue$1 @ main.dart.js:45603
call$0 @ main.dart.js:46054
_Future__propagateToListeners @ main.dart.js:12204
_completeWithValue$1 @ main.dart.js:45904
complete$1 @ main.dart.js:45055
_asyncReturn @ main.dart.js:11919
(anonymous) @ main.dart.js:824
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
call$1 @ main.dart.js:45083
runUnary$2$2 @ main.dart.js:46875
handleValue$1 @ main.dart.js:45603
call$0 @ main.dart.js:46054
_Future__propagateToListeners @ main.dart.js:12204
_completeWithValue$1 @ main.dart.js:45904
call$0 @ main.dart.js:45993
_microtaskLoop @ main.dart.js:12257
_startMicrotaskLoop @ main.dart.js:12263
call$1 @ main.dart.js:44949
invokeClosure @ main.dart.js:8460
(anonymous) @ main.dart.js:8479
childList (async)
call$1 @ main.dart.js:44959
_AsyncRun__scheduleImmediate @ main.dart.js:11856
_scheduleAsyncCallback @ main.dart.js:12277
_rootScheduleMicrotask @ main.dart.js:12466
scheduleMicrotask$1 @ main.dart.js:46916
_asyncCompleteWithValue$1 @ main.dart.js:45927
_asyncComplete$1 @ main.dart.js:45921
complete$1 @ main.dart.js:45547
complete$1$z @ main.dart.js:26197
call$1 @ main.dart.js:55716
invokeClosure @ main.dart.js:8460
(anonymous) @ main.dart.js:8479
Promise.then (async)
promiseToFuture @ main.dart.js:17526
CanvasKitInit @ main.dart.js:380
(anonymous) @ main.dart.js:812
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
call$1 @ main.dart.js:45083
runUnary$2$2 @ main.dart.js:46875
handleValue$1 @ main.dart.js:45603
call$0 @ main.dart.js:46054
_Future__propagateToListeners @ main.dart.js:12204
_completeWithValue$1 @ main.dart.js:45904
complete$1 @ main.dart.js:45055
_asyncReturn @ main.dart.js:11919
(anonymous) @ main.dart.js:869
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
call$1 @ main.dart.js:45083
runUnary$2$2 @ main.dart.js:46875
handleValue$1 @ main.dart.js:45603
call$0 @ main.dart.js:46054
_Future__propagateToListeners @ main.dart.js:12204
_completeWithValue$1 @ main.dart.js:45904
call$0 @ main.dart.js:45993
_microtaskLoop @ main.dart.js:12257
_startMicrotaskLoop @ main.dart.js:12263
call$1 @ main.dart.js:44949
invokeClosure @ main.dart.js:8460
(anonymous) @ main.dart.js:8479
childList (async)
call$1 @ main.dart.js:44959
_AsyncRun__scheduleImmediate @ main.dart.js:11856
_scheduleAsyncCallback @ main.dart.js:12277
_rootScheduleMicrotask @ main.dart.js:12466
scheduleMicrotask$1 @ main.dart.js:46916
_asyncCompleteWithValue$1 @ main.dart.js:45927
_asyncComplete$1 @ main.dart.js:45921
complete$1 @ main.dart.js:45547
complete$1$z @ main.dart.js:26197
call$1 @ main.dart.js:26986
Primitives_applyFunction @ main.dart.js:8016
Function_apply @ main.dart.js:14034
_callDartFunctionFast @ main.dart.js:17462
(anonymous) @ main.dart.js:17453
load (async)
_callMethodUnchecked2 @ main.dart.js:17507
DomEventTargetExtension_addEventListener @ main.dart.js:1463
_downloadCanvasKitJs @ main.dart.js:884
(anonymous) @ main.dart.js:853
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
_downloadOneOf$body @ main.dart.js:872
_downloadOneOf @ main.dart.js:830
(anonymous) @ main.dart.js:808
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
downloadCanvasKit @ main.dart.js:827
(anonymous) @ main.dart.js:28584
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
call$0 @ main.dart.js:28596
(anonymous) @ main.dart.js:28468
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
initialize$0 @ main.dart.js:28478
initialize$0$z @ main.dart.js:26293
(anonymous) @ main.dart.js:30758
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
call$0 @ main.dart.js:30767
(anonymous) @ main.dart.js:2808
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
initializeEngineServices$body @ main.dart.js:2817
initializeEngineServices @ main.dart.js:2781
(anonymous) @ main.dart.js:57449
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
$call$body$bootstrapEngine_closure @ main.dart.js:57456
call$1 @ main.dart.js:57428
_initializeEngine$1 @ main.dart.js:26680
(anonymous) @ main.dart.js:26750
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
call$0 @ main.dart.js:26762
call$1 @ main.dart.js:26724
call$0 @ main.dart.js:26727
Primitives_applyFunction @ main.dart.js:8013
Function_apply @ main.dart.js:14034
_callDartFunctionFast @ main.dart.js:17462
(anonymous) @ main.dart.js:17453
onEntrypointLoaded @ (index):51
didCreateEngineInitializer @ flutter.js:278
_callMethodUnchecked1 @ main.dart.js:17504
(anonymous) @ main.dart.js:18215
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
bootstrapEngine @ main.dart.js:18222
webOnlyWarmupEngine @ main.dart.js:17856
(anonymous) @ main.dart.js:24876
(anonymous) @ main.dart.js:11946
call$2 @ main.dart.js:45095
_asyncStartSync @ main.dart.js:11911
main @ main.dart.js:24883
(anonymous) @ main.dart.js:80466
(anonymous) @ main.dart.js:80449
dartProgram @ main.dart.js:80460
(anonymous) @ main.dart.js:80468
tvolkert.dev/:1 Uncaught (in promise) JsNoSuchMethodError {__js_helper$_message: 'J.getInterceptor$ax(...).clear$0 is not a function', _method: 'clear$0', _receiver: undefined, $thrownJsError: TypeError: J.getInterceptor$ax(...).clear$0 is not a function
    at Object.clear$0$ax (https://tvo…}

Metadata

Metadata

Labels

P2Important issues not at the top of the work listdependency: dartDart team may need to help usplatform-webWeb applications specificallyteam-webOwned by Web platform teamtriaged-webTriaged by Web platform team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions