| // Copyright (c) 2014, 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. | 
 |  | 
 | import 'package:expect/expect.dart'; | 
 |  | 
 | var global; | 
 |  | 
 | setGlobal(v) { | 
 |   global = v; | 
 | } | 
 |  | 
 | check_true_true(x, y, v) { | 
 |   if (x) { | 
 |     if (y) { | 
 |       setGlobal(v); | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | check_false_true(x, y, v) { | 
 |   if (x) {} else { | 
 |     if (y) { | 
 |       setGlobal(v); | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | check_true_false(x, y, v) { | 
 |   if (x) { | 
 |     if (y) {} else { | 
 |       setGlobal(v); | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | check_false_false(x, y, v) { | 
 |   if (x) {} else { | 
 |     if (y) {} else { | 
 |       setGlobal(v); | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | main() { | 
 |   check_true_true(true, true, 4); | 
 |   check_true_true(false, false, 1); | 
 |   check_true_true(false, true, 2); | 
 |   check_true_true(true, false, 3); | 
 |  | 
 |   Expect.equals(4, global); | 
 |  | 
 |   check_true_false(false, false, 1); | 
 |   check_true_false(false, true, 2); | 
 |   check_true_false(true, false, 3); | 
 |   check_true_false(true, true, 4); | 
 |  | 
 |   Expect.equals(3, global); | 
 |  | 
 |   check_false_true(false, false, 1); | 
 |   check_false_true(false, true, 2); | 
 |   check_false_true(true, false, 3); | 
 |   check_false_true(true, true, 4); | 
 |  | 
 |   Expect.equals(2, global); | 
 |  | 
 |   check_false_false(false, false, 1); | 
 |   check_false_false(false, true, 2); | 
 |   check_false_false(true, false, 3); | 
 |   check_false_false(true, true, 4); | 
 |  | 
 |   Expect.equals(1, global); | 
 | } |