/**
* @class Boolean
* @extend
*
* 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.
*/