main = main::main;
library from "org-dartlang-test:///main.dart" as main {

  static field dart.core::int value = block {
    dart.core::int #t1;
    final synthesized dart.core::int #0#0 = 0;
    #L1:
    {
      {
        if(#C1 =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} #0#0) {
          #t1 = 1;
          break #L1;
        }
      }
      {
        if(true) {
          #t1 = 2;
          break #L1;
        }
      }
    }
  } =>#t1;
  static method main() → dynamic {
    dart.core::print(main::value);
  }
}
constants  {
  #C1 = 0
}

And 20 platform libraries:
 - dart:_http
 - dart:_builtin
 - dart:vmservice_io
 - dart:_compact_hash
 - dart:async
 - dart:cli
 - dart:collection
 - dart:concurrent
 - dart:convert
 - dart:core
 - dart:developer
 - dart:ffi
 - dart:nativewrappers
 - dart:_internal
 - dart:io
 - dart:isolate
 - dart:math
 - dart:mirrors
 - dart:typed_data
 - dart:_vmservice
