Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1090)

Side by Side Diff: language/src/GetterClosureExecutionOrderTest.dart

Issue 8355014: - Make sure to test all combinations of getters. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/tests/
Patch Set: '' Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 // 4 //
5 // Test that a getter is evaluated after the arguments, when a getter is 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. 6 // for invoking a method. See chapter 'Method Invocation' in specification.
7 7
8 var counter = 0; 8 var counter = 0;
9 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
10 get a() { 38 get a() {
11 Expect.equals(1, counter); 39 Expect.equals(0, counter);
12 counter++; 40 counter++;
13 return (c) { }; 41 return (c) { };
14 } 42 }
15 43
16 b() { 44 b() {
17 Expect.equals(0, counter); 45 Expect.equals(1, counter);
18 counter++; 46 counter++;
19 return 1; 47 return 1;
20 } 48 }
21 49
22 main() { 50 main() {
23 a(b()); 51 var failures = [];
24 Expect.equals(2, counter); 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 }
25 } 87 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698