build: Bump grunt-contrib-jshint from 0.11.3 to 0.12.0
authorJames D. Forrester <jforrester@wikimedia.org>
Sun, 7 Feb 2016 02:06:57 +0000 (18:06 -0800)
committerJames D. Forrester <jforrester@wikimedia.org>
Sun, 7 Feb 2016 02:41:45 +0000 (18:41 -0800)
Taking the opportunity to modernise our .jshintrc file, I have made the
following changes there and adjusted the repo to pass:

* Replaced the deprecated `"es3": true` with `"esversion": 3`; nil change.
* Adjusted `"latedef": true` to `"latedef": "nofunc"`, a new setting for this
  option that lets us retain previous behaviour. One call needed to be adjusted
  for the update with this change; without it, several dozen were needed.
* Added `"futurehostile": true`, to make bumping `esversion` easier in future.

I have reviewed the rest of the options and chosen not to apply them:
* No need to over-ride the runtime option `maxerr`.
* No need to add the additional 'enforcing' options: `forin`, `nocomma`,
  `nonbsp`, `notypeof`, `predef`, `shadow`, `singleGroups`, `varstmt`.
* No need to add the additional 'relaxing' options, as ideally we should use
  none: `asi`, `boss`, `debug`, `elision`, `eqnull`, `evil`, `expr`,
  `lastsemic`, `loopfunc`, `moz`, `noyield`, `plusplus`, `proto`, `scripturl`,
  `supernew`, `validthis`, `withstmt`
* Definitely no need to add any of the deprecated coding style-related items:
  `camelcase`, `curly`, `immed`, `indent`, `laxcomma`, `maxlen`,
  `maxcomplexity`, `maxdepth`, `maxparams`, `maxstatements`, `newcap`,
  `noempty`, `quotmark`, `sub`

Note that we retain two deprecated options, `laxbreak` and `multistr` which are
set to be removed in the next major version of jshint but are as-yet required
for the repo so that it passes.

Change-Id: I2a780f655010f2231ab2ab93c40b34943828b4df

.jshintrc
package.json
resources/src/mediawiki.special/mediawiki.special.apisandbox.js
resources/src/mediawiki/mediawiki.feedback.js

index b776e8f..62b9d82 100644 (file)
--- a/.jshintrc
+++ b/.jshintrc
@@ -2,14 +2,15 @@
        // Enforcing
        "bitwise": true,
        "eqeqeq": true,
-       "es3": true,
+       "esversion": 3,
        "freeze": true,
-       "latedef": true,
+       "futurehostile": true,
+       "latedef": "nofunc",
        "noarg": true,
        "nonew": true,
+       "strict": false,
        "undef": true,
        "unused": true,
-       "strict": false,
 
        // Relaxing
        "laxbreak": true,
index 0a45e9a..33a2039 100644 (file)
@@ -10,7 +10,7 @@
     "grunt-cli": "0.1.13",
     "grunt-banana-checker": "0.4.0",
     "grunt-contrib-copy": "0.8.2",
-    "grunt-contrib-jshint": "0.11.3",
+    "grunt-contrib-jshint": "0.12.0",
     "grunt-contrib-watch": "0.6.1",
     "grunt-jscs": "2.7.0",
     "grunt-jsonlint": "1.0.7",
index 32ccdcd..10664fa 100644 (file)
        ApiSandbox.PageLayout.prototype.loadParamInfo = function () {
                var dynamicFieldset, dynamicParamNameWidget,
                        that = this,
+                       removeDynamicParamWidget = function ( name, layout ) {
+                               dynamicFieldset.removeItems( [ layout ] );
+                               delete that.widgets[ name ];
+                       },
                        addDynamicParamWidget = function () {
                                var name, layout, widget, button;
 
                                widget.focus();
 
                                dynamicParamNameWidget.setValue( '' );
-                       },
-                       removeDynamicParamWidget = function ( name, layout ) {
-                               dynamicFieldset.removeItems( [ layout ] );
-                               delete that.widgets[ name ];
                        };
 
                this.$element.empty()
index 97a94b8..8a3784c 100644 (file)
@@ -6,7 +6,7 @@
  * @author Moriel Schottlender, 2015
  * @since 1.19
  */
-/*jshint es3:false */
+/*jshint esversion:5 */
 /*global OO*/
 ( function ( mw, $ ) {
        /**