module.exports = patternInScope function patternInScope(stack, pattern) { return ( listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct) ) } function listInScope(stack, list, none) { var index if (!list) { return none } if (typeof list === 'string') { list = [list] } index = -1 while (++index < list.length) { if (stack.indexOf(list[index]) !== -1) { return true } } return false }