Index: tests/language/throw_expr_test.dart |
=================================================================== |
--- tests/language/throw_expr_test.dart (revision 0) |
+++ tests/language/throw_expr_test.dart (revision 0) |
@@ -0,0 +1,96 @@ |
+// Copyright (c) 2012, 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. |
+ |
+// Dart test program for testing throw expressions. |
+ |
+void test1() { |
+ var x = 6; |
+ try { |
+ throw x = 10; |
+ x = 0; |
+ } catch(e) { |
+ Expect.equals(10, e); |
+ Expect.equals(10, x); |
+ x = 15; |
+ } |
+ Expect.equals(15, x); |
+ x = 100; |
+ try { |
+ throw x++; |
+ x = 0; |
+ } catch(e) { |
+ Expect.equals(100, e); |
+ Expect.equals(101, x); |
+ x = 150; |
+ } |
+ Expect.equals(150, x); |
+} |
+ |
+void test2() { |
+ var x = 6; |
+ try { |
+ throw x + 4; |
+ } catch(e) { |
+ Expect.equals(10, e); |
+ Expect.equals(6, x); |
+ x = 15; |
+ } |
+ Expect.equals(15, x); |
+} |
+ |
+foo(x, y) => throw "foo" "$x"; |
+ |
+bar(x, y) => throw "foo" "${throw x}"; |
+ |
+class Q { |
+ var qqq; |
+ f(x) { qqq = x; } |
+} |
+ |
+void test3() { |
+ try { |
+ throw throw throw "throw"; |
+ } catch(e) { |
+ Expect.equals("throw", e); |
+ } |
siva
2012/09/26 21:09:12
I think the test will read much better if you chan
|
+ |
+ var x = 10; |
+ try { |
+ foo(x = 12, throw 7); |
+ } catch(e) { |
+ Expect.equals(7, e); |
+ Expect.equals(12, x); |
+ } |
+ |
+ x = 10; |
+ try { |
+ foo(x++, 10); |
+ } catch(e) { |
+ Expect.equals("foo10", e); |
+ Expect.equals(11, x); |
+ } |
+ |
+ x = 100; |
+ try { |
+ bar(++x, 10); |
+ } catch(e) { |
+ Expect.equals(101, e); |
+ Expect.equals(101, x); |
+ } |
+ |
+ x = null; |
+ try { |
+ x = new Q(); |
+ x..f(11) ..qqq = throw 77 ..f(22); |
+ } catch(e) { |
+ Expect.equals(77, e); |
+ Expect.equals(11, x.qqq); |
+ } |
+} |
+ |
+main() { |
+ test1(); |
+ test2(); |
+ test3(); |
+} |