    /**
     * @class Boolean
     *
     * The `Boolean` object is an object wrapper for a boolean value.
     *
     * The value passed as the first parameter is converted to a boolean value, if necessary. If value is
     * omitted or is 0, -0, null, false, `NaN`, undefined, or the empty string (""), the object has an
     * initial value of false. All other values, including any object or the string `"false"`, create an
     * object with an initial value of true.
     *
     * Do not confuse the primitive Boolean values true and false with the true and false values of the
     * Boolean object.
     *
     * Any object whose value is not `undefined` or `null`, including a Boolean object whose value is false,
     * evaluates to true when passed to a conditional statement. For example, the condition in the following
     * if statement evaluates to true:
     *
     *     x = new Boolean(false);
     *     if (x) {
     *         // . . . this code is executed
     *     }
     *
     * This behavior does not apply to Boolean primitives. For example, the condition in the following if
     * statement evaluates to `false`:
     *     x = false;
     *     if (x) {
     *         // . . . this code is not executed
     *     }
     *
     * Do not use a `Boolean` object to convert a non-boolean value to a boolean value. Instead, use Boolean
     * as a function to perform this task:
     *
     *     x = Boolean(expression);     // preferred
     *     x = new Boolean(expression); // don't use
     *
     * If you specify any object, including a Boolean object whose value is false, as the initial value of a
     * Boolean object, the new Boolean object has a value of true.
     *
     *     myFalse = new Boolean(false);   // initial value of false
     *     g = new Boolean(myFalse);       // initial value of true
     *     myString = new String("Hello"); // string object
     *     s = new Boolean(myString);      // initial value of true
     *
     * Do not use a Boolean object in place of a Boolean primitive.
     *
     * # Creating Boolean objects with an initial value of false
     *
     *     bNoParam = new Boolean();
     *     bZero = new Boolean(0);
     *     bNull = new Boolean(null);
     *     bEmptyString = new Boolean("");
     *     bfalse = new Boolean(false);
     *
     * # Creating Boolean objects with an initial value of true
     *
     *     btrue = new Boolean(true);
     *     btrueString = new Boolean("true");
     *     bfalseString = new Boolean("false");
     *     bSuLin = new Boolean("Su Lin");
     *
     * <div class="notice">
     * Documentation for this class comes from <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean">MDN</a>
     * and is available under <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons: Attribution-Sharealike license</a>.
     * </div>
     */

    /**
     * @method constructor
     * Creates a new boolean object.
     * @param {Object} value Either a truthy or falsy value to create the corresponding Boolean object.
     */

    //Methods

    /**
     * @method toString
     * Returns a string of either "true" or "false" depending upon the value of the object.
     * Overrides the `Object.prototype.toString` method.
     *
     * The Boolean object overrides the `toString` method of the `Object` object; it does not inherit
     * `Object.toString`. For Boolean objects, the `toString` method returns a string representation of
     * the object.
     *
     * JavaScript calls the `toString` method automatically when a Boolean is to be represented as a text
     * value or when a Boolean is referred to in a string concatenation.
     *
     * For Boolean objects and values, the built-in `toString` method returns the string `"true"` or
     * `"false"` depending on the value of the boolean object. In the following code, `flag.toString`
     * returns `"true"`.
     *
     *     var flag = new Boolean(true)
     *     var myVar = flag.toString()
     *
     * @return {String} The boolean value represented as a string.
     */

    /**
     * @method valueOf
     * Returns the primitive value of the `Boolean` object. Overrides the `Object.prototype.valueOf` method.
     *
     * The `valueOf` method of Boolean returns the primitive value of a Boolean object or literal Boolean
     * as a Boolean data type.
     *
     * This method is usually called internally by JavaScript and not explicitly in code.
     *
     *     x = new Boolean();
     *     myVar = x.valueOf()      //assigns false to myVar
     *
     * @return {Boolean} The primitive value.
     */