// ĠIG NORE _ BACKEND : ĠJS _ IR Ċ // ĠEXPECT ED _ RE ACH ABLE _ NODES : Ġ 1 1 1 4 Ċ package Ġfoo Ċ Ċ var Ġside Effect : ĠInt Ġ= Ġ 0 ; Ċ Ċ fun Ġid ( value : ĠBoolean ): ĠBoolean Ġ= Ġvalue Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĊĠĠĠ ĠassertEquals ( if Ġ( id ( true )) Ġtry Ġ{ Ġ++ side Effect ; Ġ 1 0 Ġ} Ġfinally Ġ{} Ġelse Ġ 2 0 , Ġ 1 0 ) ĊĠĠĠ ĠassertEquals ( 1 , Ġside Effect ) ĊĊĠĠĠ ĠassertEquals ( if Ġ( id ( false )) Ġtry Ġ{ Ġ++ side Effect ; Ġ 1 0 Ġ} Ġfinally Ġ{} Ġelse Ġ 2 0 , Ġ 2 0 ) ĊĠĠĠ ĠassertEquals ( 1 , Ġside Effect ) ĊĊĠĠĠ ĠassertEquals ( if Ġ( id ( true )) Ġ 1 0 0 Ġelse Ġtry Ġ{ Ġ++ side Effect ; Ġ 2 0 0 Ġ} Ġfinally Ġ{}, Ġ 1 0 0 ) ĊĠĠĠ ĠassertEquals ( 1 , Ġside Effect ) ĊĊĠĠĠ ĠassertEquals ( if Ġ( id ( false )) Ġ 1 0 0 Ġelse Ġtry Ġ{ Ġ++ side Effect ; Ġ 2 0 0 Ġ} Ġfinally Ġ{}, Ġ 2 0 0 ) ĊĠĠĠ ĠassertEquals ( 2 , Ġside Effect ) ĊĊĠĠĠ ĠassertEquals ( if Ġ( id ( true )) Ġtry Ġ{ Ġ++ side Effect ; Ġ 1 0 0 0 Ġ} Ġfinally Ġ{} Ġelse Ġtry Ġ{ Ġ++ side Effect ; Ġ 2 0 0 0 Ġ} Ġfinally Ġ{}, Ġ 1 0 0 0 ) ĊĠĠĠ ĠassertEquals ( 3 , Ġside Effect ) ĊĊĠĠĠ ĠassertEquals ( if Ġ( id ( false )) Ġtry Ġ{ Ġ++ side Effect ; Ġ 1 0 0 0 Ġ} Ġfinally Ġ{} Ġelse Ġtry Ġ{ Ġ++ side Effect ; Ġ 2 0 0 0 Ġ} Ġfinally Ġ{}, Ġ 2 0 0 0 ) ĊĠĠĠ ĠassertEquals ( 4 , Ġside Effect ) ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ