mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-10-10 17:57:43 +00:00

includes a (minimal) working wrapper Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
74 lines
1.3 KiB
Markdown
74 lines
1.3 KiB
Markdown
# Disallow Shadowing of Variables Inside of catch (no-catch-shadow)
|
|
|
|
This rule was **deprecated** in ESLint v5.1.0.
|
|
|
|
In IE 8 and earlier, the catch clause parameter can overwrite the value of a variable in the outer scope, if that variable has the same name as the catch clause parameter.
|
|
|
|
```js
|
|
var err = "x";
|
|
|
|
try {
|
|
throw "problem";
|
|
} catch (err) {
|
|
|
|
}
|
|
|
|
console.log(err) // err is 'problem', not 'x'
|
|
```
|
|
|
|
## Rule Details
|
|
|
|
This rule is aimed at preventing unexpected behavior in your program that may arise from a bug in IE 8 and earlier, in which the catch clause parameter can leak into outer scopes. This rule will warn whenever it encounters a catch clause parameter that has the same name as a variable in an outer scope.
|
|
|
|
Examples of **incorrect** code for this rule:
|
|
|
|
```js
|
|
/*eslint no-catch-shadow: "error"*/
|
|
|
|
var err = "x";
|
|
|
|
try {
|
|
throw "problem";
|
|
} catch (err) {
|
|
|
|
}
|
|
|
|
function err() {
|
|
// ...
|
|
};
|
|
|
|
try {
|
|
throw "problem";
|
|
} catch (err) {
|
|
|
|
}
|
|
```
|
|
|
|
Examples of **correct** code for this rule:
|
|
|
|
```js
|
|
/*eslint no-catch-shadow: "error"*/
|
|
|
|
var err = "x";
|
|
|
|
try {
|
|
throw "problem";
|
|
} catch (e) {
|
|
|
|
}
|
|
|
|
function err() {
|
|
// ...
|
|
};
|
|
|
|
try {
|
|
throw "problem";
|
|
} catch (e) {
|
|
|
|
}
|
|
```
|
|
|
|
## When Not To Use It
|
|
|
|
If you do not need to support IE 8 and earlier, you should turn this rule off.
|