Repository: eslint/eslint
File: tests/lib/rules/no-implicit-globals.js (JavaScript)

Code before:
        // `var` and functions
        "/* exported foo */ var foo = 'foo';",
        "/* exported foo */ function foo() {}",
        {
            code: "/* exported foo */ function *foo() {}",
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported foo */ async function foo() {}",
            parserOptions: { ecmaVersion: 2017 }
        },
        {
            code: "/* exported foo */ async function *foo() {}",
            parserOptions: { ecmaVersion: 2018 }
        },
        "/* exported foo */ var foo = function() {};",
        "/* exported foo */ var foo = function foo() {};",
        {
            code: "/* exported foo */ var foo = function*() {};",
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported foo */ var foo = function *foo() {};",
            parserOptions: { ecmaVersion: 2015 }
        },
        "/* exported foo \n* exported bar */ var foo = 1, bar = 2;",


        // `const`, `let` and `class`
        {
            code: "/* exported a */ const a = 1;",
            options: [{ lexicalBindings: true }],
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported a */ let a;",
            options: [{ lexicalBindings: true }],
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported a */ let a = 1;",
            options: [{ lexicalBindings: true }],
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported A */ class A {}",
            options: [{ lexicalBindings: true }],
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported a\n* exported b */ const a = 1; const b = 2;",

Review comment (suggestion):
```suggestion
        "/* exported foo, bar */ var foo = 1, bar = 2;",
```

This format is not supported. This directive would be [parsed](https://github.com/eslint/eslint/blob/e940be7a83d0caea15b64c1e1c2785a6540e2641/lib/linter/config-comment-parser.js#L39) without errors, but the variables it declares as exported actually are: `["foo", "*", "exported", "bar"]`.

(the same for other tests with multiple exported variables)

Code after:
        // `var` and functions
        "/* exported foo */ var foo = 'foo';",
        "/* exported foo */ function foo() {}",
        {
            code: "/* exported foo */ function *foo() {}",
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported foo */ async function foo() {}",
            parserOptions: { ecmaVersion: 2017 }
        },
        {
            code: "/* exported foo */ async function *foo() {}",
            parserOptions: { ecmaVersion: 2018 }
        },
        "/* exported foo */ var foo = function() {};",
        "/* exported foo */ var foo = function foo() {};",
        {
            code: "/* exported foo */ var foo = function*() {};",
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported foo */ var foo = function *foo() {};",
            parserOptions: { ecmaVersion: 2015 }
        },
        "/* exported foo, bar */ var foo = 1, bar = 2;",


        // `const`, `let` and `class`
        {
            code: "/* exported a */ const a = 1;",
            options: [{ lexicalBindings: true }],
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported a */ let a;",
            options: [{ lexicalBindings: true }],
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported a */ let a = 1;",
            options: [{ lexicalBindings: true }],
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported A */ class A {}",
            options: [{ lexicalBindings: true }],
            parserOptions: { ecmaVersion: 2015 }
        },
        {
            code: "/* exported a, b */ const a = 1; const b = 2;",