mirror of https://github.com/nodejs/node.git
Fixes #1260
RegExp object is no longer Function. http://code.google.com/p/v8/issues/detail?id=617pull/5370/head
parent
6d8b43c366
commit
3e2abd12d3
26
lib/util.js
26
lib/util.js
|
@ -140,12 +140,13 @@ exports.inspect = function(obj, showHidden, depth, colors) {
|
|||
|
||||
// Functions without properties can be shortcutted.
|
||||
if (typeof value === 'function' && keys.length === 0) {
|
||||
if (isRegExp(value)) {
|
||||
return stylize('' + value, 'regexp');
|
||||
} else {
|
||||
var name = value.name ? ': ' + value.name : '';
|
||||
return stylize('[Function' + name + ']', 'special');
|
||||
}
|
||||
var name = value.name ? ': ' + value.name : '';
|
||||
return stylize('[Function' + name + ']', 'special');
|
||||
}
|
||||
|
||||
// RegExp without properties can be shortcutted
|
||||
if (isRegExp(value) && keys.length === 0) {
|
||||
return stylize('' + value, 'regexp');
|
||||
}
|
||||
|
||||
// Dates without properties can be shortcutted
|
||||
|
@ -166,11 +167,16 @@ exports.inspect = function(obj, showHidden, depth, colors) {
|
|||
// Make functions say that they are functions
|
||||
if (typeof value === 'function') {
|
||||
var n = value.name ? ': ' + value.name : '';
|
||||
base = (isRegExp(value)) ? ' ' + value : ' [Function' + n + ']';
|
||||
base = ' [Function' + n + ']';
|
||||
} else {
|
||||
base = '';
|
||||
}
|
||||
|
||||
// Make RegExps say that they are RegExps
|
||||
if (isRegExp(value)) {
|
||||
base = ' ' + value;
|
||||
}
|
||||
|
||||
// Make dates with properties first say the date
|
||||
if (isDate(value)) {
|
||||
base = ' ' + value.toUTCString();
|
||||
|
@ -284,15 +290,15 @@ function isArray(ar) {
|
|||
|
||||
|
||||
function isRegExp(re) {
|
||||
var s = '' + re;
|
||||
return re instanceof RegExp || // easy case
|
||||
// duck-type for context-switching evalcx case
|
||||
typeof(re) === 'function' &&
|
||||
typeof(re) === 'object' &&
|
||||
re.constructor &&
|
||||
re.constructor.name === 'RegExp' &&
|
||||
re.compile &&
|
||||
re.test &&
|
||||
re.exec &&
|
||||
s.match(/^\/.*\/[gim]{0,3}$/);
|
||||
('' + re).match(/^\/.*\/[gim]{0,3}$/);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue