var _array = new Array(1,2,3);
_array.toString = Object.prototype.toString;
shouldBe("_array.toString()","\"[object Array]\"");
var _string = new String("test");
_string.toString = Object.prototype.toString;
shouldBe("_string.toString()","\"[object String]\"");
var _boolean = new Boolean(true);
_boolean.toString = Object.prototype.toString;
shouldBe("_boolean.toString()","\"[object Boolean]\"");
var _number = new Number(4);
_number.toString = Object.prototype.toString;
shouldBe("_number.toString()","\"[object Number]\"");
var _object = new Object();
_object.toString = Object.prototype.toString;
shouldBe("_object.toString()","\"[object Object]\"");
var _date = new Date();
_date.toString = Object.prototype.toString;
shouldBe("_date.toString()","\"[object Date]\"");
var _regexp = new RegExp();
_regexp.toString = Object.prototype.toString;
shouldBe("_regexp.toString()","\"[object RegExp]\"");
var _error = new Error();
_error.toString = Object.prototype.toString;
shouldBe("_error.toString()","\"[object Error]\"");
var _function = new Function();
_function.toString = Object.prototype.toString;
shouldBe("_function.toString()","\"[object Function]\"");
