32 lines
897 B
JavaScript
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
|
|
}
|