| OLD | NEW | 
 | (Empty) | 
|   1 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file |  | 
|   2 // for details. All rights reserved. Use of this source code is governed by a |  | 
|   3 // BSD-style license that can be found in the LICENSE file. |  | 
|   4 // |  | 
|   5 // Test that a getter is evaluated after the arguments, when a getter is |  | 
|   6 // for invoking a method. See chapter 'Method Invocation' in specification. |  | 
|   7  |  | 
|   8 var counter = 0; |  | 
|   9  |  | 
|  10 class Test1 { |  | 
|  11   get a() { |  | 
|  12     Expect.equals(1, counter); |  | 
|  13     counter++; |  | 
|  14     return (c) { }; |  | 
|  15   } |  | 
|  16  |  | 
|  17   b() { |  | 
|  18     Expect.equals(0, counter); |  | 
|  19     counter++; |  | 
|  20     return 1; |  | 
|  21   } |  | 
|  22 } |  | 
|  23  |  | 
|  24 class Test2 { |  | 
|  25   static get a() { |  | 
|  26     Expect.equals(0, counter); |  | 
|  27     counter++; |  | 
|  28     return (c) { }; |  | 
|  29   } |  | 
|  30  |  | 
|  31   static b() { |  | 
|  32     Expect.equals(1, counter); |  | 
|  33     counter++; |  | 
|  34     return 1; |  | 
|  35   } |  | 
|  36 } |  | 
|  37  |  | 
|  38 get a() { |  | 
|  39   Expect.equals(0, counter); |  | 
|  40   counter++; |  | 
|  41   return (c) { }; |  | 
|  42 } |  | 
|  43  |  | 
|  44 b() { |  | 
|  45   Expect.equals(1, counter); |  | 
|  46   counter++; |  | 
|  47   return 1; |  | 
|  48 } |  | 
|  49  |  | 
|  50 main() { |  | 
|  51   var failures = []; |  | 
|  52   try { |  | 
|  53     // Check instance getters. |  | 
|  54     counter = 0; |  | 
|  55     var o = new Test1(); |  | 
|  56     o.a(o.b()); |  | 
|  57     Expect.equals(2, counter); |  | 
|  58   } catch (var exc, var stack) { |  | 
|  59     failures.add(exc); |  | 
|  60     failures.add(stack); |  | 
|  61   } |  | 
|  62   try { |  | 
|  63     // Check static getters. |  | 
|  64     counter = 0; |  | 
|  65     Test2.a(Test2.b()); |  | 
|  66     Expect.equals(2, counter); |  | 
|  67   } catch (var exc, var stack) { |  | 
|  68     failures.add(exc); |  | 
|  69     failures.add(stack); |  | 
|  70   } |  | 
|  71   try { |  | 
|  72     // Check top-level getters. |  | 
|  73     counter = 0; |  | 
|  74     a(b()); |  | 
|  75     Expect.equals(2, counter); |  | 
|  76   } catch (var exc, var stack) { |  | 
|  77     failures.add(exc); |  | 
|  78     failures.add(stack); |  | 
|  79   } |  | 
|  80   // If any of the tests failed print out the details and fail the test. |  | 
|  81   if (failures.length != 0) { |  | 
|  82     for (var msg in failures) { |  | 
|  83       print(msg.toString()); |  | 
|  84     } |  | 
|  85     throw "${failures.length ~/ 2} tests failed."; |  | 
|  86   } |  | 
|  87 } |  | 
| OLD | NEW |