In the jquery.easing plugin there are many methods like this one:
easeInOutQuint: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
return c/2*((t-=2)*t*t*t*t + 2) + b;
}
(t/=d/2)
is severely pissing off jshint!
Linting assets/js/_main.js ...ERROR
[L119:C13] E030: Expected an identifier and instead saw '='.
if ( (t/=d/2) < 1) {
[L119:C14] E020: Expected ')' to match '(' from line 119 and instead saw 'd'.
[L119:C19] W116: Expected '{' and instead saw '<'.
[L119:C19] E030: Expected an identifier and instead saw '<'.
[L119:C19] W030: Expected an assignment or function call and instead saw an expression.
[L119:C20] W033: Missing semicolon.
[L119:C21] W030: Expected an assignment or function call and instead saw an expression.
[L119:C22] W033: Missing semicolon.
[L119:C22] E030: Expected an identifier and instead saw ')'.
[L119:C22] W030: Expected an assignment or function call and instead saw an expression.
[L119:C23] W033: Missing semicolon.
(Removed repeated JS Lint output lines for brevity)
What is (t/=d/2)
doing here?
I'd like to fix it (vs telling grunt to ignore it, which I've done for now) but I don't understand what it's doing. Regular expression of some sort? Note that t
and d
are passed in as arguments. Arithmetic shorthand? Both?
EDIT
Thanks for the blazing fast great answers. Changing the line to if ( (t = t / (d / 2)) < 1)
got jshint to stop fussing. Will add answer with why jshint/jslint chose to throw this error. TL;DR: Because of exactly what happened to me: "Is this arithmetic or regex?"