1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 * @fileoverview Assertion support.
10 * Simple common assertion API
11 * @param {*} condition The condition to test. Note that this may be used to
12 * test whether a value is defined or not, and we don't want to force a
14 * @param {string=} opt_message A message to use in any error.
16 function assert(condition, opt_message) {
19 var msg = 'Assertion failed';
21 msg = msg + ': ' + opt_message;
27 * Call this from places in the code that should never be reached.
29 * For example, handling all the values of enum with a switch() like this:
31 * function getValueFromEnum(enum) {
33 * case ENUM_FIRST_OF_TWO:
35 * case ENUM_LAST_OF_TWO:
42 * This code should only be hit in the case of serious programmer error or
45 * @param {string=} opt_message A message to show when this is hit.
47 function assertNotReached(opt_message) {
48 throw new Error(opt_message || "Unreachable code hit");