Skip to content

Commit c545163

Browse files
Update: support multiline /*eslint-env*/ directives (fixes #14652) (#14660)
* Fix: linter ignores multiline /*eslint-env*/ directives (fixes #14652) * Update lib/linter/linter.js Co-authored-by: Milos Djermanovic <milos.djermanovic@gmail.com> * Chore: add more tests Co-authored-by: Milos Djermanovic <milos.djermanovic@gmail.com>
1 parent 8d1e75a commit c545163

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

lib/linter/linter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ function normalizeEcmaVersion(ecmaVersion) {
444444
return ecmaVersion >= 2015 ? ecmaVersion - 2009 : ecmaVersion;
445445
}
446446

447-
const eslintEnvPattern = /\/\*\s*eslint-env\s(.+?)\*\//gu;
447+
const eslintEnvPattern = /\/\*\s*eslint-env\s(.+?)\*\//gsu;
448448

449449
/**
450450
* Checks whether or not there is a comment which has "eslint-env *" in a given text.

tests/lib/linter/linter.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2973,6 +2973,23 @@ var a = "test2";
29732973
assert.strictEqual(messages.length, 0);
29742974
});
29752975

2976+
// https://github.com/eslint/eslint/issues/14652
2977+
it("should not report a violation", () => {
2978+
const codes = [
2979+
"/*eslint-env es6\n */ new Promise();",
2980+
"/*eslint-env browser,\nes6 */ window;Promise;",
2981+
"/*eslint-env\nbrowser,es6 */ window;Promise;"
2982+
];
2983+
const config = { rules: { "no-undef": 1 } };
2984+
2985+
for (const code of codes) {
2986+
const messages = linter.verify(code, config, filename);
2987+
2988+
assert.strictEqual(messages.length, 0);
2989+
}
2990+
2991+
});
2992+
29762993
it("should not report a violation", () => {
29772994
const code = `/*${ESLINT_ENV} mocha,node */ require();describe();`;
29782995

0 commit comments

Comments
 (0)