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