Hi,

I'm in the process of learning javascript so I can contribute to gnome
shell. I state upfront that my js knowledge is still in its infancy.

One of the more interesting resources I have found is Javascript : The Good
Parts. The author at the end has a bunch of recommendations and also has a
static lint checker for javascript:
http://www.jslint.com/

This checks against ECMAscript and also has errors for bad style, and using
features that he recommends steering clear of.

As a way to introducing myself to the code base I had a look at running the
js code from gnome shell through jslint.com

I ran the attached perl script to get around errors reported for: let,
const, and multiple variable assignment (e.g. [a,b] = callFunc();), which
appear to be mozilla specific features.

So far I have just looked at panel.js.

I have found some definite errors (against the style guide at least i.e
missing semi-colons).

Would a patch for any of the following be worthwhile?

* missing terminal semi-colons.
e.g. foo() // should be foo();

* if statement's with single statement but no braces.
e.g.
if (foo)
    blah();
//should be
if (foo) {
    blah();
}

* unused variables.
let x = 3;
// x doesn't appear to be referred to again.

* changing use of == and != to === and !== .
if (foo != null) // should be: if (foo !== null)
Crockford is strong on this, referring to == and != as the evil twins to
===/!== .

* Crockford recommends:
"If a statement doesn't fit on a line, I will break it after a comma or a
binary operator. That gives more protection against copy/paste errors that
are masked by semicolon insertion."
//changing this
if (fee && fi
    && foe && fum)
//to
if (fee && fi &&
    foe && fum)

Cheers,

Lex.

PS

Also, Crockford has being doing some very interesting lectures about the web
and javascript here:
http://yuiblog.com/crockford/
_______________________________________________
gnome-shell-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-shell-list

Reply via email to