(s, o, g)
| 6725 | return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); |
| 6726 | }; |
| 6727 | var itself = function (s, o, g) { |
| 6728 | var i, k, x, reIgnoreStr, reIgnore; |
| 6729 | var optionKeys; |
| 6730 | var newOptionObj = {}; |
| 6731 | var newIgnoredObj = {}; |
| 6732 | |
| 6733 | o = _.clone(o); |
| 6734 | state.reset(); |
| 6735 | |
| 6736 | if (o && o.scope) { |
| 6737 | JSHINT.scope = o.scope; |
| 6738 | } else { |
| 6739 | JSHINT.errors = []; |
| 6740 | JSHINT.undefs = []; |
| 6741 | JSHINT.internals = []; |
| 6742 | JSHINT.blacklist = {}; |
| 6743 | JSHINT.scope = "(main)"; |
| 6744 | } |
| 6745 | |
| 6746 | predefined = Object.create(null); |
| 6747 | combine(predefined, vars.ecmaIdentifiers); |
| 6748 | combine(predefined, vars.reservedVars); |
| 6749 | |
| 6750 | combine(predefined, g || {}); |
| 6751 | |
| 6752 | declared = Object.create(null); |
| 6753 | exported = Object.create(null); |
| 6754 | |
| 6755 | function each(obj, cb) { |
| 6756 | if (!obj) |
| 6757 | return; |
| 6758 | |
| 6759 | if (!Array.isArray(obj) && typeof obj === "object") |
| 6760 | obj = Object.keys(obj); |
| 6761 | |
| 6762 | obj.forEach(cb); |
| 6763 | } |
| 6764 | |
| 6765 | if (o) { |
| 6766 | each(o.predef || null, function (item) { |
| 6767 | var slice, prop; |
| 6768 | |
| 6769 | if (item[0] === "-") { |
| 6770 | slice = item.slice(1); |
| 6771 | JSHINT.blacklist[slice] = slice; |
| 6772 | delete predefined[slice]; |
| 6773 | } else { |
| 6774 | prop = Object.getOwnPropertyDescriptor(o.predef, item); |
| 6775 | predefined[item] = prop ? prop.value : false; |
| 6776 | } |
| 6777 | }); |
| 6778 | |
| 6779 | each(o.exported || null, function (item) { |
| 6780 | exported[item] = true; |
| 6781 | }); |
| 6782 | |
| 6783 | delete o.predef; |
| 6784 | delete o.exported; |
nothing calls this directly
no test coverage detected