Files
30-seconds-of-code/node_modules/property-information/lib/util/defined-info.js
2019-08-20 15:52:05 +02:00

32 lines
897 B
JavaScript

'use strict'
var Info = require('./info')
var types = require('./types')
module.exports = DefinedInfo
DefinedInfo.prototype = new Info()
DefinedInfo.prototype.defined = true
function DefinedInfo(property, attribute, mask, space) {
mark(this, 'space', space)
Info.call(this, property, attribute)
mark(this, 'boolean', check(mask, types.boolean))
mark(this, 'booleanish', check(mask, types.booleanish))
mark(this, 'overloadedBoolean', check(mask, types.overloadedBoolean))
mark(this, 'number', check(mask, types.number))
mark(this, 'commaSeparated', check(mask, types.commaSeparated))
mark(this, 'spaceSeparated', check(mask, types.spaceSeparated))
mark(this, 'commaOrSpaceSeparated', check(mask, types.commaOrSpaceSeparated))
}
function mark(values, key, value) {
if (value) {
values[key] = value
}
}
function check(value, mask) {
return (value & mask) === mask
}