/*
 * 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]);
}
