/* 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));