Skip to content

Bug: sort-keys mixing computed property name with regular names #19153

@CleyFaye

Description

@CleyFaye

Environment

Node version: 20.18.0
npm version: 10.8.3
Local ESLint version: 9.15.0
Global ESLint version: -
Operating System: Linux(Ubuntu 20.04)

What parser are you using?

Default (Espree)

What did you do?

Configuration export default [{rules: {"sort-keys": "error"}}];
const aName = "eName";

const obj = {
  eName: 63,
  [aName]: 34,
};

What did you expect to happen?

The sort-keys rule should not ask to reorder dynamically computed keys.

What actually happened?

The sort-keys rule expects [aName] to be put before eName, which could change the value of obj depending on the content of aName.

Link to Minimal Reproducible Example

https://eslint.org/play/#eyJ0ZXh0IjoiLyogZXNsaW50IHNvcnQta2V5czogW1wiZXJyb3JcIl0gKi9cbmNvbnN0IGFOYW1lID0gXCJlTmFtZVwiO1xuXG5jb25zdCBvYmogPSB7XG4gIGVOYW1lOiA2MyxcbiAgW2FOYW1lXTogMzQsXG59O1xuIiwib3B0aW9ucyI6eyJydWxlcyI6eyJjb25zdHJ1Y3Rvci1zdXBlciI6WyJlcnJvciJdLCJmb3ItZGlyZWN0aW9uIjpbImVycm9yIl0sImdldHRlci1yZXR1cm4iOlsiZXJyb3IiXSwibm8tYXN5bmMtcHJvbWlzZS1leGVjdXRvciI6WyJlcnJvciJdLCJuby1jYXNlLWRlY2xhcmF0aW9ucyI6WyJlcnJvciJdLCJuby1jbGFzcy1hc3NpZ24iOlsiZXJyb3IiXSwibm8tY29tcGFyZS1uZWctemVybyI6WyJlcnJvciJdLCJuby1jb25kLWFzc2lnbiI6WyJlcnJvciJdLCJuby1jb25zdC1hc3NpZ24iOlsiZXJyb3IiXSwibm8tY29uc3RhbnQtYmluYXJ5LWV4cHJlc3Npb24iOlsiZXJyb3IiXSwibm8tY29uc3RhbnQtY29uZGl0aW9uIjpbImVycm9yIl0sIm5vLWNvbnRyb2wtcmVnZXgiOlsiZXJyb3IiXSwibm8tZGVidWdnZXIiOlsiZXJyb3IiXSwibm8tZGVsZXRlLXZhciI6WyJlcnJvciJdLCJuby1kdXBlLWFyZ3MiOlsiZXJyb3IiXSwibm8tZHVwZS1jbGFzcy1tZW1iZXJzIjpbImVycm9yIl0sIm5vLWR1cGUtZWxzZS1pZiI6WyJlcnJvciJdLCJuby1kdXBlLWtleXMiOlsiZXJyb3IiXSwibm8tZHVwbGljYXRlLWNhc2UiOlsiZXJyb3IiXSwibm8tZW1wdHkiOlsiZXJyb3IiXSwibm8tZW1wdHktY2hhcmFjdGVyLWNsYXNzIjpbImVycm9yIl0sIm5vLWVtcHR5LXBhdHRlcm4iOlsiZXJyb3IiXSwibm8tZW1wdHktc3RhdGljLWJsb2NrIjpbImVycm9yIl0sIm5vLWV4LWFzc2lnbiI6WyJlcnJvciJdLCJuby1leHRyYS1ib29sZWFuLWNhc3QiOlsiZXJyb3IiXSwibm8tZmFsbHRocm91Z2giOlsiZXJyb3IiXSwibm8tZnVuYy1hc3NpZ24iOlsiZXJyb3IiXSwibm8tZ2xvYmFsLWFzc2lnbiI6WyJlcnJvciJdLCJuby1pbXBvcnQtYXNzaWduIjpbImVycm9yIl0sIm5vLWludmFsaWQtcmVnZXhwIjpbImVycm9yIl0sIm5vLWlycmVndWxhci13aGl0ZXNwYWNlIjpbImVycm9yIl0sIm5vLWxvc3Mtb2YtcHJlY2lzaW9uIjpbImVycm9yIl0sIm5vLW1pc2xlYWRpbmctY2hhcmFjdGVyLWNsYXNzIjpbImVycm9yIl0sIm5vLW5ldy1uYXRpdmUtbm9uY29uc3RydWN0b3IiOlsiZXJyb3IiXSwibm8tbm9ub2N0YWwtZGVjaW1hbC1lc2NhcGUiOlsiZXJyb3IiXSwibm8tb2JqLWNhbGxzIjpbImVycm9yIl0sIm5vLW9jdGFsIjpbImVycm9yIl0sIm5vLXByb3RvdHlwZS1idWlsdGlucyI6WyJlcnJvciJdLCJuby1yZWRlY2xhcmUiOlsiZXJyb3IiXSwibm8tcmVnZXgtc3BhY2VzIjpbImVycm9yIl0sIm5vLXNlbGYtYXNzaWduIjpbImVycm9yIl0sIm5vLXNldHRlci1yZXR1cm4iOlsiZXJyb3IiXSwibm8tc2hhZG93LXJlc3RyaWN0ZWQtbmFtZXMiOlsiZXJyb3IiXSwibm8tc3BhcnNlLWFycmF5cyI6WyJlcnJvciJdLCJuby10aGlzLWJlZm9yZS1zdXBlciI6WyJlcnJvciJdLCJuby11bmRlZiI6WyJlcnJvciJdLCJuby11bmV4cGVjdGVkLW11bHRpbGluZSI6WyJlcnJvciJdLCJuby11bnJlYWNoYWJsZSI6WyJlcnJvciJdLCJuby11bnNhZmUtZmluYWxseSI6WyJlcnJvciJdLCJuby11bnNhZmUtbmVnYXRpb24iOlsiZXJyb3IiXSwibm8tdW5zYWZlLW9wdGlvbmFsLWNoYWluaW5nIjpbImVycm9yIl0sIm5vLXVudXNlZC1sYWJlbHMiOlsiZXJyb3IiXSwibm8tdW51c2VkLXByaXZhdGUtY2xhc3MtbWVtYmVycyI6WyJlcnJvciJdLCJuby11bnVzZWQtdmFycyI6WyJlcnJvciJdLCJuby11c2VsZXNzLWJhY2tyZWZlcmVuY2UiOlsiZXJyb3IiXSwibm8tdXNlbGVzcy1jYXRjaCI6WyJlcnJvciJdLCJuby11c2VsZXNzLWVzY2FwZSI6WyJlcnJvciJdLCJuby13aXRoIjpbImVycm9yIl0sInJlcXVpcmUteWllbGQiOlsiZXJyb3IiXSwidXNlLWlzbmFuIjpbImVycm9yIl0sInZhbGlkLXR5cGVvZiI6WyJlcnJvciJdfSwibGFuZ3VhZ2VPcHRpb25zIjp7InBhcnNlck9wdGlvbnMiOnsiZWNtYUZlYXR1cmVzIjp7fX19fX0=

Participation

  • I am willing to submit a pull request for this issue.

Additional comments

No response

Metadata

Metadata

Assignees

Labels

acceptedThere is consensus among the team that this change meets the criteria for inclusionenhancementThis change enhances an existing feature of ESLintrepro:yesIssues with a reproducible example

Projects

Status

Complete

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions