You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
481 B
30 lines
481 B
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 |
|
}
|
|
|