mysticatea / eslint4b

ESLint which works in browsers.
MIT License
37 stars 19 forks source link

linter.verify hangs if code contains \n and no-useless-escape is enabled #17

Open knolleary opened 2 years ago

knolleary commented 2 years ago

If the code that is passed to linter.verify contains \\n in a string, and no-useless-escape is enabled, the function hangs and cpu usage hits 100%.

Passing the exact same code through eslint (7.32.0) does not.

The following code can be used to reproduce:

const Linter = require('eslint4b');
const linter = new Linter();

var defaultConfig = {
    "env": {
        "es2021": true
    },
    "parserOptions": {
        "ecmaVersion": 12
    },
    "rules": {
        "no-useless-escape": "error",
    }
}

linter.verify('const a = "\\n"', defaultConfig)
sarike commented 1 year ago

I have the save issue. And I found this only happens when parserOptions.ecmaVersion >= 11

maxdavid commented 1 year ago

Same issue here too. Using it in a codemirror project. Any backslash within a string causes the linter to hang indefinitely.