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 // Dart test program for the "is" type test operator. | |
5 | |
6 testTryCatch(x) { | |
7 try { | |
8 throw x; | |
9 Expect.fail("Exception '$x' should've been thrown"); | |
10 } catch (Object obj) { | |
11 Expect.equals(obj, x); | |
12 } | |
13 } | |
14 | |
15 main() { | |
16 var evalCount = 0; | |
17 testEval(x) { evalCount++; return x; } | |
18 | |
19 // Test that types that match JS primitive types compare correctly to Object | |
20 var x = 1; | |
21 Expect.isTrue(x is Object); | |
22 x = 'hi'; | |
23 Expect.isTrue(x is Object); | |
24 x = true; | |
25 Expect.isTrue(x is Object); | |
26 x = null; | |
27 Expect.isTrue(x is Object); | |
28 var y; | |
29 Expect.isTrue(y is Object); | |
30 | |
31 // Verify that operand is evaluated | |
32 Expect.isTrue(testEval(123) is Object); | |
33 Expect.equals(1, evalCount); | |
34 Expect.isTrue(testEval('world') is Object); | |
35 Expect.equals(2, evalCount); | |
36 Expect.isTrue(testEval(false) is Object); | |
37 Expect.equals(3, evalCount); | |
38 Expect.isTrue(testEval(null) is Object); | |
39 Expect.equals(4, evalCount); | |
40 | |
41 // Verify that these objects are catchable | |
42 testTryCatch(444); | |
43 testTryCatch('abc'); | |
44 testTryCatch(true); | |
45 testTryCatch(null); | |
46 } | |
OLD | NEW |