|  | // Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | /*member: returnInt1:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | returnInt1() { | 
|  | var a = 42; | 
|  | try { | 
|  | a = 54; | 
|  | } catch (e) {} | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnDyn1:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ | 
|  | returnDyn1() { | 
|  | dynamic a = 42; | 
|  | try { | 
|  | a = 'foo'; | 
|  | } catch (e) {} | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnInt2:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | returnInt2() { | 
|  | var a = 42; | 
|  | try { | 
|  | a = 54; | 
|  | } catch (e) { | 
|  | a = 2; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnDyn2:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ | 
|  | returnDyn2() { | 
|  | dynamic a = 42; | 
|  | try { | 
|  | a = 54; | 
|  | } catch (e) { | 
|  | a = 'foo'; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnInt3:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | returnInt3() { | 
|  | dynamic a = 42; | 
|  | try { | 
|  | a = 54; | 
|  | } catch (e) { | 
|  | a = 'foo'; | 
|  | } finally { | 
|  | a = 4; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnDyn3:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ | 
|  | returnDyn3() { | 
|  | dynamic a = 42; | 
|  | try { | 
|  | a = 54; | 
|  | // ignore: unused_catch_clause | 
|  | } on String catch (e) { | 
|  | a = 2; | 
|  | // ignore: unused_catch_clause | 
|  | } on Object catch (e) { | 
|  | a = 'foo'; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnInt4:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | returnInt4() { | 
|  | var a = 42; | 
|  | try { | 
|  | a = 54; | 
|  | // ignore: unused_catch_clause | 
|  | } on String catch (e) { | 
|  | a = 2; | 
|  | // ignore: unused_catch_clause | 
|  | } on Object catch (e) { | 
|  | a = 32; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnDyn4:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ | 
|  | returnDyn4() { | 
|  | dynamic a = 42; | 
|  | if (a /*invoke: [exact=JSUInt31|powerset={I}{O}{N}]*/ == 54) { | 
|  | try { | 
|  | a = 'foo'; | 
|  | } catch (e) {} | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnInt5:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | returnInt5() { | 
|  | var a = 42; | 
|  | if (a /*invoke: [exact=JSUInt31|powerset={I}{O}{N}]*/ == 54) { | 
|  | try { | 
|  | a = 42; | 
|  | } catch (e) {} | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnDyn5:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ | 
|  | returnDyn5() { | 
|  | dynamic a = 42; | 
|  | if (a /*invoke: [exact=JSUInt31|powerset={I}{O}{N}]*/ == 54) { | 
|  | try { | 
|  | a = 'foo'; | 
|  | print(a); | 
|  | a = 42; | 
|  | } catch (e) {} | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnInt6:[subclass=JSInt|powerset={I}{O}{N}]*/ | 
|  | returnInt6() { | 
|  | try { | 
|  | throw 42; | 
|  | } on int catch (e) { | 
|  | return e; | 
|  | } | 
|  | // ignore: dead_code | 
|  | return 42; | 
|  | } | 
|  |  | 
|  | /*member: returnDyn6:[subclass=Object|powerset={IN}{GFUO}{IMN}]*/ | 
|  | returnDyn6() { | 
|  | try { | 
|  | throw 42; | 
|  | } catch (e) { | 
|  | return e; | 
|  | } | 
|  | } | 
|  |  | 
|  | /*member: returnDyn7:[null|subclass=Object|powerset={null}{IN}{GFUO}{IMN}]*/ | 
|  | returnDyn7() { | 
|  | try { | 
|  | // Do nothing | 
|  | } catch (e) { | 
|  | return e; | 
|  | } | 
|  | } | 
|  |  | 
|  | /*member: returnInt7:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | returnInt7() { | 
|  | dynamic a = 'foo'; | 
|  | try { | 
|  | a = 42; | 
|  | return a; | 
|  | } catch (e) {} | 
|  | return 2; | 
|  | } | 
|  |  | 
|  | /*member: returnInt8:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | returnInt8() { | 
|  | dynamic a = 'foo'; | 
|  | try { | 
|  | a = 42; | 
|  | return a; | 
|  | } catch (e) { | 
|  | a = 29; | 
|  | return a; | 
|  | } | 
|  | // ignore: dead_code | 
|  | a = 'bar'; | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion1:[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ | 
|  | returnUnion1() { | 
|  | dynamic a = 42; | 
|  | if (a /*invoke: [exact=JSUInt31|powerset={I}{O}{N}]*/ == 54) { | 
|  | try { | 
|  | a = 'foo'; | 
|  | throw a; | 
|  | } catch (e) { | 
|  | a = null; | 
|  | } | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion2:Union(null, [exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {null}{I}{O}{IN})*/ | 
|  | returnUnion2() { | 
|  | dynamic a = 42; | 
|  | try { | 
|  | a = 'foo'; | 
|  | a = null; | 
|  | } catch (e) { | 
|  | a = true; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion3:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ | 
|  | returnUnion3() { | 
|  | dynamic a = 42; | 
|  | if (a /*invoke: [exact=JSUInt31|powerset={I}{O}{N}]*/ == 54) { | 
|  | try { | 
|  | a = 'foo'; | 
|  | a = null; | 
|  | } catch (e) { | 
|  | a = true; | 
|  | } finally { | 
|  | a = 'bar'; | 
|  | } | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion4:Union(null, [exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {null}{I}{O}{IN})*/ | 
|  | returnUnion4() { | 
|  | dynamic a = 42; | 
|  | if (a /*invoke: [exact=JSUInt31|powerset={I}{O}{N}]*/ == 54) { | 
|  | try { | 
|  | a = 'foo'; | 
|  | a = null; | 
|  | } catch (e) {} | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion5:Union([exact=JSBool|powerset={I}{O}{N}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{N})*/ | 
|  | returnUnion5() { | 
|  | dynamic a = 42; | 
|  | if (a /*invoke: [exact=JSUInt31|powerset={I}{O}{N}]*/ == 54) { | 
|  | try { | 
|  | a = 'foo'; | 
|  | } catch (e) { | 
|  | a = null; | 
|  | } finally { | 
|  | a = true; | 
|  | } | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion6:Union(null, [exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {null}{I}{O}{IN})*/ | 
|  | returnUnion6() { | 
|  | dynamic a = 42; | 
|  | try { | 
|  | return 'foo'; | 
|  | } catch (e) { | 
|  | return null; | 
|  | } finally { | 
|  | return true; | 
|  | } | 
|  | // ignore: dead_code | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion7:Union([exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {I}{O}{IN})*/ | 
|  | returnUnion7() { | 
|  | dynamic a = 42; | 
|  | try { | 
|  | return 'foo'; | 
|  | } catch (e) { | 
|  | return true; | 
|  | } finally { | 
|  | a = 55; | 
|  | } | 
|  | } | 
|  |  | 
|  | /*member: returnUnion8:[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ | 
|  | returnUnion8() { | 
|  | dynamic a = 5.5; | 
|  | try { | 
|  | a = 'foo'; | 
|  | throw a; | 
|  | } catch (e) { | 
|  | a = null; | 
|  | } catch (e) { | 
|  | a = true; | 
|  | return 3; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion9:[exact=JSBool|powerset={I}{O}{N}]*/ | 
|  | returnUnion9() { | 
|  | dynamic a = 5.5; | 
|  | try { | 
|  | a = 'foo'; | 
|  | throw a; | 
|  | } catch (e) { | 
|  | a = false; | 
|  | } catch (e) { | 
|  | a = true; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnUnion10:Value([exact=JSBool|powerset={I}{O}{N}], value: true, powerset: {I}{O}{N})*/ | 
|  | returnUnion10() { | 
|  | dynamic a = 5; | 
|  | try { | 
|  | a = 6; | 
|  | throw 0; | 
|  | } catch (e) { | 
|  | a = 7; | 
|  | throw 0; | 
|  | } finally { | 
|  | a = 10; | 
|  | a = true; | 
|  | return a; | 
|  | } | 
|  | } | 
|  |  | 
|  | /*member: returnNull1:[null|powerset={null}]*/ | 
|  | returnNull1() { | 
|  | dynamic a = 42; | 
|  | try { | 
|  | a = 'foo'; | 
|  | } catch (e) { | 
|  | a = true; | 
|  | } finally { | 
|  | return null; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: returnNull2:[null|powerset={null}]*/ | 
|  | returnNull2() { | 
|  | dynamic a = 5.5; | 
|  | try { | 
|  | a = 'foo'; | 
|  | throw a; | 
|  | } catch (e) { | 
|  | a = null; | 
|  | } catch (e) { | 
|  | a = true; | 
|  | throw 3; | 
|  | } | 
|  | return a; | 
|  | } | 
|  |  | 
|  | /*member: A.:[exact=A|powerset={N}{O}{N}]*/ | 
|  | class A { | 
|  | /*member: A.a:[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ | 
|  | dynamic a; | 
|  | /*member: A.b:Union(null, [exact=JSUInt31|powerset={I}{O}{N}], [exact=JsLinkedHashMap|powerset={N}{O}{N}], powerset: {null}{IN}{O}{N})*/ | 
|  | dynamic b; | 
|  | /*member: A.c:Union(null, [exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {null}{I}{O}{IN})*/ | 
|  | dynamic c; | 
|  | /*member: A.d:Value([null|exact=JSString|powerset={null}{I}{O}{I}], value: "foo", powerset: {null}{I}{O}{I})*/ | 
|  | dynamic d; | 
|  | /*member: A.e:Union(null, [exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {null}{I}{O}{IN})*/ | 
|  | dynamic e; | 
|  | /*member: A.f:Union(null, [exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {null}{I}{O}{IN})*/ | 
|  | dynamic f; | 
|  | /*member: A.g:Union(null, [exact=JSExtendableArray|powerset={I}{G}{M}], [exact=JSNumNotInt|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {null}{I}{GO}{IMN})*/ | 
|  | dynamic g; | 
|  |  | 
|  | /*member: A.testa:Union([exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {I}{O}{IN})*/ | 
|  | testa() { | 
|  | try { | 
|  | return 'foo'; | 
|  | } catch (e) { | 
|  | return true; | 
|  | } finally { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | a = 55; | 
|  | } | 
|  | } | 
|  |  | 
|  | /*member: A.testb:Union([exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {I}{O}{IN})*/ | 
|  | testb() { | 
|  | try { | 
|  | return 'foo'; | 
|  | } catch (e) { | 
|  | return true; | 
|  | } finally { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | b = 55; | 
|  | } | 
|  | return b; | 
|  | } | 
|  |  | 
|  | /*member: A.testc:Union(null, [exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {null}{I}{O}{IN})*/ | 
|  | testc() { | 
|  | try { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | c = 'foo'; | 
|  | throw /*[exact=A|powerset={N}{O}{N}]*/ c; | 
|  | } catch (e) { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | c = false; | 
|  | } catch (e) { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | c = true; | 
|  | } | 
|  | return /*[exact=A|powerset={N}{O}{N}]*/ c; | 
|  | } | 
|  |  | 
|  | /*member: A.testd:Value([null|exact=JSString|powerset={null}{I}{O}{I}], value: "foo", powerset: {null}{I}{O}{I})*/ | 
|  | testd() { | 
|  | try { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | d = 'foo'; | 
|  | } catch (e) { | 
|  | // Do nothing | 
|  | } | 
|  | return /*[exact=A|powerset={N}{O}{N}]*/ d; | 
|  | } | 
|  |  | 
|  | /*member: A.teste:Union(null, [exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], powerset: {null}{I}{O}{IN})*/ | 
|  | teste() { | 
|  | try { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | e = 'foo'; | 
|  | } catch (_) { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | e = true; | 
|  | } | 
|  | return /*[exact=A|powerset={N}{O}{N}]*/ e; | 
|  | } | 
|  |  | 
|  | /*member: A.testf:Union(null, [exact=JSBool|powerset={I}{O}{N}], [exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {null}{I}{O}{IN})*/ | 
|  | testf() { | 
|  | try { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | f = 'foo'; | 
|  | return 3; | 
|  | } catch (e) { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | f = true; | 
|  | } | 
|  | return /*[exact=A|powerset={N}{O}{N}]*/ f; | 
|  | } | 
|  |  | 
|  | /*member: A.testg:Union(null, [exact=JSUInt31|powerset={I}{O}{N}], [exact=JsLinkedHashMap|powerset={N}{O}{N}], powerset: {null}{IN}{O}{N})*/ | 
|  | testg() { | 
|  | try { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | g = 'foo'; | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | g = 5.5; | 
|  | } catch (e) { | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | g = []; | 
|  | /*update: [exact=A|powerset={N}{O}{N}]*/ | 
|  | b = {}; | 
|  | } | 
|  | return /*[exact=A|powerset={N}{O}{N}]*/ b; | 
|  | } | 
|  | } | 
|  |  | 
|  | /*member: main:[null|powerset={null}]*/ | 
|  | main() { | 
|  | returnInt1(); | 
|  | returnDyn1(); | 
|  | returnInt2(); | 
|  | returnDyn2(); | 
|  | returnInt3(); | 
|  | returnDyn3(); | 
|  | returnInt4(); | 
|  | returnDyn4(); | 
|  | returnInt5(); | 
|  | returnDyn5(); | 
|  | returnInt6(); | 
|  | returnDyn6(); | 
|  | returnDyn7(); | 
|  | returnInt7(); | 
|  | returnInt8(); | 
|  | returnUnion1(); | 
|  | returnUnion2(); | 
|  | returnUnion3(); | 
|  | returnUnion4(); | 
|  | returnUnion5(); | 
|  | returnUnion6(); | 
|  | returnUnion7(); | 
|  | returnUnion8(); | 
|  | returnUnion9(); | 
|  | returnUnion10(); | 
|  | returnNull1(); | 
|  | returnNull2(); | 
|  |  | 
|  | final a = A(); | 
|  | a. /*invoke: [exact=A|powerset={N}{O}{N}]*/ testa(); | 
|  | a. /*invoke: [exact=A|powerset={N}{O}{N}]*/ testb(); | 
|  | a. /*invoke: [exact=A|powerset={N}{O}{N}]*/ testc(); | 
|  | a. /*invoke: [exact=A|powerset={N}{O}{N}]*/ testd(); | 
|  | a. /*invoke: [exact=A|powerset={N}{O}{N}]*/ teste(); | 
|  | a. /*invoke: [exact=A|powerset={N}{O}{N}]*/ testf(); | 
|  | a. /*invoke: [exact=A|powerset={N}{O}{N}]*/ testg(); | 
|  | } |