buffer, null, array etc. all belong to object

This commit is contained in:
Cheng Zhao 2016-04-20 14:32:32 +09:00
parent ff1b7d18f6
commit 680652d01c

View file

@ -53,19 +53,19 @@ let getObjectPrototype = function (object) {
let valueToMeta = function (sender, value, optimizeSimpleObject = false) {
// Determine the type of value.
let meta = { type: typeof value }
if (Buffer.isBuffer(value)) {
meta.type = 'buffer'
} else if (value === null) {
meta.type = 'value'
} else if (Array.isArray(value)) {
meta.type = 'array'
} else if (value instanceof Error) {
meta.type = 'error'
} else if (value instanceof Date) {
meta.type = 'date'
} else if (meta.type === 'object') {
if (meta.type === 'object') {
// Recognize certain types of objects.
if (value.constructor != null && value.constructor.name === 'Promise') {
if (value === null) {
meta.type = 'value'
} else if (Buffer.isBuffer(value)) {
meta.type = 'buffer'
} else if (Array.isArray(value)) {
meta.type = 'array'
} else if (value instanceof Error) {
meta.type = 'error'
} else if (value instanceof Date) {
meta.type = 'date'
} else if (value.constructor != null && value.constructor.name === 'Promise') {
meta.type = 'promise'
} else if (value.hasOwnProperty('callee') && value.length != null) {
// Treat the arguments object as array.