build/moon-unit.js
function equal(a, b) {

    if (Object.is(a, b))
        return true;

	// Dates must have equal time values
	if (isDate(a) && isDate(b))
		return a.getTime() === b.getTime();

	// Non-objects must be strictly equal (types must be equal)
	if (!isObject(a) || !isObject(b))
		return a === b;

	// Prototypes must be identical.  getPrototypeOf may throw on
	// ES3 engines that don't provide access to the prototype.
	try {

	    if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
		    return false;

	} catch (err) {}

	var aKeys = Object.keys(a),
		bKeys = Object.keys(b);

	// Number of own properties must be identical
	if (aKeys.length !== bKeys.length)
		return false;

	for (var i$0 = 0; i$0 < aKeys.length; ++i$0) {

		// Names of own properties must be identical
		if (!OP_hasOwnProperty.call(b, aKeys[i$0]))
			return false;

		// Values of own properties must be equal
		if (!equal(a[aKeys[i$0]], b[aKeys[i$0]]))
			return false;
	}

	return true;
}
function equal(a, b) {

    if (Object.is(a, b))
        return true;

	// Dates must have equal time values
	if (isDate(a) && isDate(b))
		return a.getTime() === b.getTime();

	// Non-objects must be strictly equal (types must be equal)
	if (!isObject(a) || !isObject(b))
		return a === b;

	// Prototypes must be identical.  getPrototypeOf may throw on
	// ES3 engines that don't provide access to the prototype.
	try {

	    if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
		    return false;

	} catch (err) {}

	var aKeys = Object.keys(a),
		bKeys = Object.keys(b);

	// Number of own properties must be identical
	if (aKeys.length !== bKeys.length)
		return false;

	for (var i$0 = 0; i$0 < aKeys.length; ++i$0) {

		// Names of own properties must be identical
		if (!OP_hasOwnProperty.call(b, aKeys[i$0]))
			return false;

		// Values of own properties must be equal
		if (!equal(a[aKeys[i$0]], b[aKeys[i$0]]))
			return false;
	}

	return true;
}
function equal ( a , b ) { if ( Object . is ( a , b ) ) return true ; // Dates must have equal time values if ( isDate ( a ) && isDate ( b ) ) return a . getTime ( ) === b . getTime ( ) ; // Non-objects must be strictly equal (types must be equal) if ( ! isObject ( a ) || ! isObject ( b ) ) return a === b ; // Prototypes must be identical.  getPrototypeOf may throw on // ES3 engines that don't provide access to the prototype. try { if ( Object . getPrototypeOf ( a ) !== Object . getPrototypeOf ( b ) ) return false ; } catch ( err ) { } var aKeys = Object . keys ( a ) , bKeys = Object . keys ( b ) ; // Number of own properties must be identical if ( aKeys . length !== bKeys . length ) return false ; for ( var i$0 = 0 ; i$0 < aKeys . length ; ++ i$0 ) { // Names of own properties must be identical if ( ! OP_hasOwnProperty . call ( b , aKeys [ i$0 ] ) ) return false ; // Values of own properties must be equal if ( ! equal ( a [ aKeys [ i$0 ] ] , b [ aKeys [ i$0 ] ] ) ) return false ; } return true ; }
Returns true if the arguments are "equal"
Returns true if the arguments are equal