- 新增三个 demo 工程(demo-eslint / demo-sqlfluff / demo-stylelint):各含 src/ 样例代码与覆盖率映射(run-coverage.mjs、coverage_map.json、stylelint_line_map.json) - 归档各 demo 的插件实测导出报告(reports/): - demo-eslint:common.js / esm-demo.js / legacysyntax.cjs / typescript.ts 审查报告 + 覆盖率报告(292/292 条零偏差,126 种规则全覆盖) - demo-sqlfluff:11 个 SQL 样例审查报告 + 覆盖率报告(113/113 条零偏差,57 种规则全覆盖,含 JJ01 行号缺陷修复后的复测验证) - demo-stylelint:common.css / empty-source.css 审查报告 + 覆盖率报告(145/145 条零偏差,68 种规则全覆盖)
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
/* eslint preserve-caught-error: "error" */
|
||
// ============ legacysyntax.cjs ============
|
||
// .cjs 扩展名使 ESLint flat config 默认按 commonjs(宽松)模式解析本文件,
|
||
// 无需任何工程配置(eslint.config.mjs)即可触发仅 sloppy 模式合法的旧式语法规则。
|
||
// 首行行内注释单独启用 preserve-caught-error(eslint 9.39.4 引擎已实现该规则,但内置配置未启用)。
|
||
|
||
// no-nonoctal-decimal-escape
|
||
const nonOctalEscape = '\8 and \9';
|
||
|
||
// 顺手在此以宽松模式再触发 no-octal(旧式八进制字面量)
|
||
const legacyOctal = 010;
|
||
|
||
// ===== 补充:其余仅宽松模式合法的旧式语法样例 =====
|
||
|
||
// no-with
|
||
with ({ pi: 3.14, e: 2.72 }) {
|
||
console.log(pi, e);
|
||
}
|
||
|
||
// no-delete-var
|
||
var deletable = 42;
|
||
delete deletable;
|
||
|
||
// no-dupe-args
|
||
function duplicateArgs(a, a) {
|
||
return a;
|
||
}
|
||
|
||
// preserve-caught-error(catch 中抛新错误应保留原始错误)
|
||
try {
|
||
JSON.parse('not json');
|
||
} catch (err) {
|
||
throw new Error('parse failed');
|
||
}
|
||
|
||
console.log(nonOctalEscape, legacyOctal, duplicateArgs(1, 2));
|