Chromium Code Reviews| Index: tests/language/constructor8_test.dart |
| =================================================================== |
| --- tests/language/constructor8_test.dart (revision 0) |
| +++ tests/language/constructor8_test.dart (revision 0) |
| @@ -0,0 +1,32 @@ |
| +// Copyright (c) 2013, 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. |
| + |
| +// Regression test for dart2js that used to crash on this program. |
| + |
| +class A { |
| + var b; |
| + |
| + // The parameter check here used to confuse the SSA builder when it |
| + // created the call to the constructor body. |
| + A(Map a) : b = ?a { |
|
floitsch
2013/02/01 14:45:45
shouldn't a be optional? Otherwise a is known to b
ngeoffray
2013/02/01 14:46:49
Good point :) Done.
|
| + Expect.isTrue(b); |
| + } |
| + |
| + // The closure in the constructor body used to confuse the SSA builder |
| + // when it created the call to the constructor body. |
| + A.withClosure(Map a) { |
| + var c; |
| + var f = () { return c = 42; }; |
| + b = f(); |
| + Expect.equals(42, b); |
| + Expect.equals(42, c); |
| + } |
| +} |
| + |
| +main() { |
| + new A(null); |
| + new A({}); |
| + new A.withClosure(null); |
| + new A.withClosure({}); |
| +} |