Approved.  This is nice to get cleaned up.

Side note, not sure we still need the special-casing of `typeof` any more.  
CodeGenerator used to insert 'assembly language' tests to signal an error any 
time the evaluation of a variable was `undefined`.  Way back when, the only 
approved way to avoid this check if you really wanted to see if a variable was 
undefined was to write `typeof foo == 'undefined'`.  Since we're not emitting 
those checks any more (and it is perfectly legal for a variable to evaluate to 
undefined), we should be able to leave out that special case now.

[It _is_ an error to reference a non-existent variable, but the special case 
code can't do anything about that.]

On 2011-04-06, at 11:54, André Bargull wrote:

> Change bargull-20110406-rsz by bargull@Bargull02 on 2011-04-06 17:20:38
> in /home/anba/src/svn/openlaszlo/trunk
> for http://svn.openlaszlo.org/openlaszlo/trunk
> 
> Summary: Remove stale "undefined reference checker" code in 
> JavascriptGenerator
> 
> Bugs Fixed: LPP-9874 (Broken "undefined reference checker" code in 
> JavascriptGenerator produces excessive try-catch blocks)
> 
> Technical Reviewer: ptw
> QA Reviewer: (pending)
> 
> 
> Details:
> JavascriptGenerator:
> - checkUndefinedFunction() and checkUndefinedMethod() are no longer used, can 
> be removed safely to reduce maintenance overhead
> - visitPrefixExpression(), visitPostfixExpression() and 
> visitAssignmentExpression() expanded the code if free references are present 
> to support the "undefined reference checker", but the "undefined reference 
> checker" is merely a leftover from CodeGenerator and not actually implemented 
> in JavascriptGenerator, therefore the complete code expansion is not 
> necessary (anymore)
> - XfixInstrs and AssignOpTable are only support maps and now no longer used 
> -> removed
> - identifierPattern, another unused variable -> removed
> - translateReferenceForCall(SimpleNode) was never called -> removed
> - translateReferenceForCall(SimpleNode,boolean,SimpleNode) removed 
> outcommented code
> - visitUnaryExpression(), removed ASTPropertyValueReference and 
> ASTPropertyIdentifierReference from whitelist for "typeof" operator, only 
> ASTIdentifier is important for "typeof". The other two ast types are only 
> necessary for swf8, consider "typeof ({}).foo" which shouldn't emit an 
> undefined reference warning
> 
> JavascriptGenerator$JavascriptReference:
> - removed referenceCount argument of constructor -> not used, swf8-specific
> 
> ParseTreePrinter:
> - don't call maybeAddParens() for second child of 
> ASTPropertyIdentifierReference, because the second child is _always_ an 
> ASTIdentifier and maybeAddParens() is a no-op for ASTIdentifier
> 
> 
> Tests:
> smokecheck x (dhtml,swf10)
> 
> Files:
> M WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
> M WEB-INF/lps/server/src/org/openlaszlo/sc/ParseTreePrinter.java
> 
> Changeset: 
> http://svn.openlaszlo.org/openlaszlo/patches/bargull-20110406-rsz.tar
> 


Reply via email to