4e68b88193
Explicitly declare all javascript globals and all eslint rule violations This merge request takes every single external global variable referenced within a javascript file and explicitly marks it with a `/* global Foo */` comment block at the top of the script. This also expands all blanket instances of `/* eslint-disable */` with an explicit list of disabled rules. This is useful because if we need to search for violations of a particular rule we can simply grep the codebase for something like `no-unused-vars` or `semi` and find all of the places where this rule has yet to be fixed. Lastly, it also removes and resolves any existing `no-undef` eslint violations. This is useful for catching mistakes like forgetting to declare a variable with `var`/`let`/`const` which can cause hard to find bugs. ## What does this MR do? 1. Looks for generic uses of `/* eslint-disable */` and refactors them into individual rule exceptions. 2. Looks for all occurrences of `/* eslint-disable ... no-undef */` and resolves them by either fixing bugs or declaring globals with `/* global Foo */`. ## Are there points in the code the reviewer needs to double check? This touches a lot of files, most changes touch nothing other than comment blocks or whitespace. The exceptions are the following 14 files which required some small bug fixes after removing `no-undef`: - api.js - breakpoints.js - build.js - commits.js - diff_notes/components/jump_to_discussion.js.es6 - gfm_auto_complete.js.es6 - gl_dropdown.js - groups_select.js - importer_status.js - namespace_select.js - notes.js - preview_markdown.js - projects_list.js - single_file_diff.js ## Why was this MR needed? Removal of ~"technical debt" and some necessary changes to help !7288 ## Screenshots (if relevant) N/A ## Does this MR meet the acceptance criteria? - [ ] ~~[Changelog entry](https://docs.gitlab.com/ce/development/changelog.html) added~~ - [ ] ~~[Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~ - [ ] ~~API support added~~ - Tests - [ ] ~~Added for this feature/bug~~ - [ ] All builds are passing - [x] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [x] Branch has no merge conflicts with `master` (if it does - rebase it please) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) ## What are the relevant issue numbers? N/A See merge request !8043 |
||
---|---|---|
.. | ||
behaviors | ||
boards | ||
environments | ||
extensions | ||
fixtures | ||
graphs | ||
lib/utils | ||
u2f | ||
vue_common_components | ||
.eslintrc | ||
abuse_reports_spec.js.es6 | ||
activities_spec.js.es6 | ||
awards_handler_spec.js | ||
bootstrap_linked_tabs_spec.js.es6 | ||
build_spec.js.es6 | ||
dashboard_spec.js.es6 | ||
datetime_utility_spec.js.es6 | ||
diff_comments_store_spec.js.es6 | ||
gl_dropdown_spec.js.es6 | ||
gl_field_errors_spec.js.es6 | ||
header_spec.js | ||
issue_spec.js | ||
labels_issue_sidebar_spec.js.es6 | ||
line_highlighter_spec.js | ||
merge_request_spec.js | ||
merge_request_tabs_spec.js | ||
merge_request_widget_spec.js | ||
new_branch_spec.js | ||
notes_spec.js | ||
pipelines_spec.js.es6 | ||
pretty_time_spec.js.es6 | ||
project_title_spec.js | ||
right_sidebar_spec.js | ||
search_autocomplete_spec.js | ||
shortcuts_issuable_spec.js | ||
signin_tabs_memoizer_spec.js.es6 | ||
smart_interval_spec.js.es6 | ||
spec_helper.js | ||
subbable_resource_spec.js.es6 | ||
syntax_highlight_spec.js | ||
zen_mode_spec.js |