Jshint: рдХреЗрд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдлрд╝рд░ре░ 2011  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jshint/jshint

рдЬрд┐рди рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдХреНрд░реЙрдХрдлреЛрд░реНрдб рдХреЛ рдХрднреА рдирд╣реАрдВ рд╕рдордЭрд╛ рдкрд╛рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдХреЗрд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдПред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рдареАрдХ рд╣реИ:

рд╕реНрд╡рд┐рдЪ (рдлреВ) {
рдорд╛рдорд▓рд╛ рдПрдХ:
рдорд╛рдорд▓рд╛ 2:
рдХреБрдЫ рдХрд░реЛ();
}

рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИ:

рд╕реНрд╡рд┐рдЪ (рдлреВ) {
рдорд╛рдорд▓рд╛ рдПрдХ:
рдбреВрд╕рдордерд┐рдВрдЧрдлрд░реНрд╕реНрдЯ ();
рдорд╛рдорд▓рд╛ 2:
рдХреБрдЫ рдХрд░реЛ();
}

JSLint рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реИрдХ рдХрд┐рдпрд╛ рдерд╛, рдореИрдВрдиреЗ рдПрдХ рдЯрд┐рдкреНрдкрдгреА /_falls through_/ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рдВрдЪ рдХреА рдереА рдХрд┐ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрд┐рд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ:

рд╕реНрд╡рд┐рдЪ (рдлреВ) {
рдорд╛рдорд▓рд╛ рдПрдХ:
рдбреВрд╕рдордерд┐рдВрдЧрдлрд░реНрд╕реНрдЯ ();
/_рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрд┐рд░рддрд╛ рд╣реИ_/
рдорд╛рдорд▓рд╛ 2:
рдХреБрдЫ рдХрд░реЛ();
}

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЬреЗрдПрд╕рд╣рд┐рдВрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрдПрд╕рд▓рд┐рдВрдЯ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рджрд░реНрдж рд░рд╣рд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

.jshintrc рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдВрдЬреА рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП:

"-W086": true, //allow fall-through

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕рд╛рде рд╣реА, #11 рд╕реЗ тАФ JSHint рдХреЗ рдкрд╛рд╕ рд╕рдВрднрд╡рддрдГ default рдЧрд┐рд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЪреВрдВрдХрд┐ рдЕрдХреНрд╕рд░ рдХреЗрд╕ рдлреЙрд▓ рдереНрд░реВ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЧрд┐рд░рдирд╛ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИред

 рд╕реНрд╡рд┐рдЪ (рдлреВ) {
 рдорд╛рдорд▓рд╛ рдПрдХ:
 рдбреЙрд╕реНрдорде ();
 /* рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрд┐рд░рддрд╛ рд╣реИ */
 рдорд╛рдорд▓рд╛ 2:
 рдбреЙрд╕реНрдорде ();
 }

рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛: 4a72da1.

рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдзрдиреНрдпрд╡рд╛рдж!

IIRC, рдХреНрд░реЙрдХрдлреЛрд░реНрдб рдиреЗ рдЕрдкрдиреА рдкреБрд╕реНрддрдХ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреЗрд╕ рдлреЙрд▓-рдереНрд░реВ рдХреЛ рдирд╛рдкрд╕рдВрдж рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИред рдХрд╣рд╛рдиреА рдордиреЛрд░рдВрдЬрдХ рднреА рд╣реИ рдФрд░ рдХреБрдЫ рд╣рдж рддрдХ рдХрдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рднреАред

рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рдереНрд░реЛ рдХреЗ рд╕рд╛рде case s рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рдЕрднреА рднреА рдЪрд╛рд▓реВ рд╣реИред рдЖрдк /* falls through */ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдорд╛рдорд▓реЗ, рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдЕрдЧрд▓реЗ рдорд╛рдорд▓реЗ рдХреЗ рдмреАрдЪ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рд╕реЗ рдПрдиреЛрдЯреЗрд╢рди "рдкрд░реЗрд╢рд╛рди" рд╣реИ (рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рддрдм рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреА рд╣реИ) рдорд╛рдорд▓рд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгреА рдХреНрдпреЛрдВ рд╣реИред

/* falls through */ рдХреЗ рдмрдЬрд╛рдп рдЯрд┐рдкреНрдкрдгреА break; рдПрдХ рдЧреИрд░-рджрд╕реНрддрд╛рд╡реЗрдЬреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдбреЙрдХреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

/* falls through */ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред

рд╕реЗрдХреЗрдВрдбреЗрдбред рдХреГрдкрдпрд╛ рдбреЙрдХреНрд╕ рдореЗрдВ /*falls through*/ рдЬреЛрдбрд╝реЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП supprt рдЬреЛрдбрд╝реЗрдВ:

case 'none':
default:

рдЬрдмрдХрд┐ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ 'none' рдорд╛рдорд▓рд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ, рдпрд╣ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдбреЙрдХреНрд╕ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП +1ред

рд░реБрдЪрд┐ рдХреЗ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдорд┐рд▓реА рд╣реИ рдЬрд╣рд╛рдВ "рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ" рдорд╛рдорд▓реЗ рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рдкрдврд╝реЗ рдЧрдП рд╡рд░реНрдЬрди рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ред рднреВрддрдкреВрд░реНрд╡:

function migrate( version, data ) {
    switch( version ) {
        case 1 :
            data.new1 = data.old;  // convert data from version 1 to version 2
            delete data.old;
        case 2 :
            data.new2 = data.new1;  // convert data from version 2 to version 3
            delete data.new1;
    }
    return data;  // return data in version 3 format
}

рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдорд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХреЛрдб рдХреЛ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд╡реАрдирддрдо рддрдХ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред

.jshintrc рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдВрдЬреА рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП:

"-W086": true, //allow fall-through
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

stefanuddenberg picture stefanuddenberg  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Niggler picture Niggler  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NemoStein picture NemoStein  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

damyanpetev picture damyanpetev  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jugglinmike picture jugglinmike  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ