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

Donald Anderson dda at ddanderson.com
Thu Nov 29 06:55:25 PST 2007


Indeed - so much better now :-)
Approved.

On Nov 29, 2007, at 7:17 AM, P T Withington wrote:

> 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
>>


--

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