MetaBrainz Foundation

Fix JS on MusicBrainz to follow the no-prototype-builtins eslint rule

We use a tool called ESLint to find problems in our JavaScript code and ensure it has a consistent style. ESLint is configured to use "rules" which each check for a different problem in the code.

This task requires you to fix all problems detected by the no-prototype-builtins rule.

To invoke this rule and find a list of such problems, you must first navigate to the git checkout of musicbrainz-server in your terminal, and run:

./script/check_eslint_rule 'no-prototype-builtins: warn' root/

The output will tell you which files it detected problems in, including line numbers, alongside a description of the actual issue on each line.

In this case, you're required to replace cases where we call a builtin object method like object.hasOwnProperty('name') with the safer version, Object.prototype.hasOwnProperty.call(object, 'name').

To complete the task, submit a pull request to our GitHub repository with a proper description mentioning the specific rule, and respond to any suggestions and requests by the MusicBrainz developers until the pull request is approved (you do not need to wait until it gets merged).

Task tags

  • musicbrainz
  • javascript
  • eslint

Students who completed this task

Eclipsed Solstice

Task type

  • code Code

Level

Beginner
close

2019