[Laszlo-dev] For Review: Change 20071128-ptw-S Summary: Don't try to be so cute about using implicit semicolons in

P T Withington ptw at pobox.com
Thu Nov 29 04:17:46 PST 2007


I think you are reading the duff backwards?  The two questions you ask  
are about code that I removed. I got rid of the silly parent check  
because, as you observe, it is incomplete. Now I am just uniformly  
inserting semis everywhere except before a closing brace.

On Nov 28, 2007, at 17:13, Donald Anderson <dda at ddanderson.com> wrote:

> Some questions before approval:
>
> You're checking for "(" so that
>  xx;
>  (yy)
> is not joined as xx(yy), right?
> But don't we have the same problem with
>  xx;
>  -yy
> Since expression statements can be arbitrary expressions.  Looks like
> unary plus (xx; +yy) might have the same problem.  Granted these  
> would be strange
> to encounter in the wild, but I'm wary of the special case -  
> especially when
> I'm not sure there aren't others.  Or am I missing something?
>
> Nit:
>      this.SEMI = ";" + (compress ? SPACE : NEWLINE);
> would probably be more readable as
>      this.SEMI = ";" + (compress ? "" : NEWLINE);
>
> - Don
>
> On Nov 28, 2007, at 1:49 PM, P T Withington wrote:
>
>> Change 20071128-ptw-S by ptw at dueling-banjos.local on 2007-11-28  
>> 13:17:43 EST
>>    in /Users/ptw/OpenLaszlo/ringding-2
>>    for http://svn.openlaszlo.org/openlaszlo/trunk
>>
>> Summary: Don't try to be so cute about using implicit semicolons in
>>    Javascript compiler
>>
>> Bugs Fixed:
>> LPP-5130 'resources in DHTML fail with "is not a function'" error'
>>
>> Technical Reviewer: dda at ddanderson.com (pending)
>> QA Reviewer: enw (pending)
>>
>> Details:
>>    We used to try to be clever and use newlines in place of
>>    semicolons in our 'compressed' code so that the code was a little
>>    more human-readable (and debuggable, using the native browser
>>    debugger).  But this cuteness was just broken and caused some
>>    expressions to not be interpreted as statements (and often to be
>>    interpreted as function calls).  Without a huge amount of work, it
>>    is difficult to correctly compute where an implicit semicolon can
>>    be used.
>>
>>    Instead, we now always end a statement with a semicolon and only
>>    elide them before the close brace of a block (which is easily
>>    computable).  And, we output blocks a little more compactly,
>>    actually improving the 'compression' of our Javascript output.
>>
>>    The primary change is to remove the old heuristic that inserted
>>    semicolons in between statements in a statement list, and to
>>    explicitly append one to each statement.  Put all the block
>>    building in one method instead of inlining it all over the place.
>>
>> Tests:
>>    smokecheck, test case in bug, lzmail in DHTML now gets past the
>>    reported error
>>
>> Files:
>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
>>
>>
>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071128-ptw-S.tar
>
>
> --
>
> Don Anderson
> Java/C/C++, Berkeley DB, systems consultant
>
> Voice:  617-547-7881
> Email:  dda at ddanderson.com
> WWW:    http://www.ddanderson.com
>


More information about the Laszlo-dev mailing list