Loading ...
Sorry, an error occurred while loading the content.

Re: [jslint] Re: Tolerate misordered definitions

Expand Messages
  • Luke Page
    It would be useful to have 2 error messages if possible.. or at least change wording as I ve seen people think they can ignore it because it isn t a more harsh
    Message 1 of 10 , Jun 29, 2011
    • 0 Attachment
      It would be useful to have 2 error messages if possible.. or at least change
      wording as I've seen people think they can ignore it because it isn't a more
      harsh variable undefined...
      On 29 Jun 2011 20:39, "chriskennish" <chris@...> wrote:
      > After a bit more digging, I think I've got the heart of it, and it's far
      simpler than I first imagined. The problem, as I see it, is as follows. This
      code:
      >
      > var a = function () {
      > "use strict";
      > b();
      > };
      >
      > Rightly generates an error:
      > "Problem at line 3 character 5: 'b' was used before it was defined.
      > Undefined variable: b 1 'a'"
      >
      > My confusion lay in that I assumed that this "before it was defined" error
      was dependent on the variable being defined later. I now realise that this
      wording is used even if the variable is never defined. It seems to me that
      we should get one error or the other, but not both: either "undefined", or
      "not defined yet", which could *then* be misorder-tolerated (or not) as the
      case may be.
      >
      >
      > --- In jslint_com@yahoogroups.com, "chriskennish" <chris@...> wrote:
      >>
      >> Let's look at this another way. Without "Tolerate misordered
      definitions", we get the following:
      >>
      >> //Example 1
      >> var abc = def(),
      >> def = function () {};
      >>
      >> // Problem at line 1 character 11:
      >> // 'def' was used before it was defined.
      >>
      >> //Example 2
      >> var hij = function () {
      >> klm();
      >> },
      >> klm = function () {};
      >>
      >> // Problem at line 2 character 5:
      >> // 'klm' was used before it was defined.
      >> // Undefined variable: klm 1 'hij'
      >>
      >> Why the extra "Undefined variable" error in example 2? If it was used
      before it was defined, it can't also be undefined, can it?
      >>
      >>
      >> --- In jslint_com@yahoogroups.com, Erik Eckhardt <erik@> wrote:
      >> >
      >> > I *think* "Tolerate misordered definitions" is only for the form:
      >> >
      >> > var fn = function() {
      >> > ___fn();
      >> > }
      >> >
      >> > Not to actually use fn before it is declared. Perhaps someone will
      correct
      >> > me if I am wrong.
      >> >
      >> > On Tue, Jun 28, 2011 at 2:14 PM, Douglas Crockford <douglas@>wrote:
      >> >
      >> > > **
      >> > >
      >> > >
      >> > > --- In jslint_com@yahoogroups.com, "chriskennish" <chris@> wrote:
      >> > >
      >> > > > I'm not sure I understand. I realise that I can "fix" my code by
      changing
      >> > > the order of the variable declarations, but that is not my point. My
      point
      >> > > is that the "Tolerate misordered definitions" doesn't allow for this
      case.
      >> > >
      >> > > My point was that you should fix your code. Misordered definitions
      are one
      >> > > thing, but you are trying to capture variables that haven't even been
      >> > > defined yet. That is certainly making the program difficult to read
      and
      >> > > understand. It is intolerable.
      >> > >
      >> > >
      >> > >
      >> >
      >> >
      >> > [Non-text portions of this message have been removed]
      >> >
      >>
      >
      >


      [Non-text portions of this message have been removed]
    Your message has been successfully submitted and would be delivered to recipients shortly.