| OLD | NEW |
| 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 native methods with unnamed* optional arguments are called with the | 5 // Test that native methods with unnamed* optional arguments are called with the |
| 6 // number of arguments in the call site. This is necessary because native | 6 // number of arguments in the call site. This is necessary because native |
| 7 // methods can dispatch on the number of arguments. Passing null or undefined | 7 // methods can dispatch on the number of arguments. Passing null or undefined |
| 8 // as the last argument is not the same as passing one fewer argument. | 8 // as the last argument is not the same as passing one fewer argument. |
| 9 // | 9 // |
| 10 // * Named arguments are passed in the correct position, so require preceding | 10 // * Named arguments are passed in the correct position, so require preceding |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 Expect.throws(() => a.foo()); | 44 Expect.throws(() => a.foo()); |
| 45 Expect.equals(1, a.foo(10)); | 45 Expect.equals(1, a.foo(10)); |
| 46 Expect.throws(() => a.foo(10, 20)); | 46 Expect.throws(() => a.foo(10, 20)); |
| 47 Expect.throws(() => a.foo(10, 20, 30)); | 47 Expect.throws(() => a.foo(10, 20, 30)); |
| 48 | 48 |
| 49 Expect.equals(0, b.foo()); | 49 Expect.equals(0, b.foo()); |
| 50 Expect.equals(1, b.foo(10)); | 50 Expect.equals(1, b.foo(10)); |
| 51 Expect.equals(2, b.foo(10, 20)); | 51 Expect.equals(2, b.foo(10, 20)); |
| 52 Expect.equals(3, b.foo(10, 20, 30)); | 52 Expect.equals(3, b.foo(10, 20, 30)); |
| 53 | 53 |
| 54 Expect.equals(1, b.foo(x: 10)); // 1 = x | |
| 55 Expect.equals(2, b.foo(y: 20)); // 2 = x, y | |
| 56 Expect.equals(3, b.foo(z: 30)); // 3 = x, y, z | |
| 57 Expect.throws(() => b.foo(10, 20, 30, 40)); | 54 Expect.throws(() => b.foo(10, 20, 30, 40)); |
| 58 } | 55 } |
| 59 | 56 |
| 60 testStaticContext() { | 57 testStaticContext() { |
| 61 A a = makeA(); | 58 A a = makeA(); |
| 62 B b = makeB(); | 59 B b = makeB(); |
| 63 | 60 |
| 64 Expect.throws(() => a.foo()); | 61 Expect.throws(() => a.foo()); |
| 65 Expect.equals(1, a.foo(10)); | 62 Expect.equals(1, a.foo(10)); |
| 66 Expect.throws(() => a.foo(10, 20)); | 63 Expect.throws(() => a.foo(10, 20)); |
| 67 Expect.throws(() => a.foo(10, 20, 30)); | 64 Expect.throws(() => a.foo(10, 20, 30)); |
| 68 | 65 |
| 69 Expect.equals(0, b.foo()); | 66 Expect.equals(0, b.foo()); |
| 70 Expect.equals(1, b.foo(10)); | 67 Expect.equals(1, b.foo(10)); |
| 71 Expect.equals(2, b.foo(10, 20)); | 68 Expect.equals(2, b.foo(10, 20)); |
| 72 Expect.equals(3, b.foo(10, 20, 30)); | 69 Expect.equals(3, b.foo(10, 20, 30)); |
| 73 | 70 |
| 74 Expect.equals(1, b.foo(x: 10)); | |
| 75 Expect.equals(2, b.foo(y: 20)); | |
| 76 Expect.equals(3, b.foo(z: 30)); | |
| 77 Expect.throws(() => b.foo(10, 20, 30, 40)); | 71 Expect.throws(() => b.foo(10, 20, 30, 40)); |
| 78 } | 72 } |
| 79 | 73 |
| 80 main() { | 74 main() { |
| 81 setup(); | 75 setup(); |
| 82 testDynamicContext(); | 76 testDynamicContext(); |
| 83 testStaticContext(); | 77 testStaticContext(); |
| 84 } | 78 } |
| OLD | NEW |