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 { |
+ 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({}); |
+} |