// Copyright (c) 2011, 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.

/// @assertion Undocumented: const Exception([var msg])
/// @description Checks that this constructor executes without error for various
/// arguments (including null).
/// @author rodionov

 
main() {
  new Exception(null);
  new Exception(true);
  new Exception(1);
  new Exception(0x8000000000000000);
  new Exception("");
  new Exception("asdgfsdjkg");
  new Exception([]);
  new Exception([null]);
  new Exception([1, true]);
}
