[Laszlo-checkins] r6926 - openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc

ptw@openlaszlo.org ptw at openlaszlo.org
Fri Oct 19 10:31:14 PDT 2007


Author: ptw
Date: 2007-10-19 10:31:12 -0700 (Fri, 19 Oct 2007)
New Revision: 6926

Modified:
   openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
Log:
Change 20071017-ptw-S by ptw at dueling-banjos.local on 2007-10-17 07:33:26 EDT
    in /Users/ptw/OpenLaszlo/ringding-2
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Correct DHTML expansion of assignOp to global

Bugs Fixed:
LPP-4920 'Erroneous output from DHTML compiler in debug mode causes runtime errors w/ trunk build 6836'

Technical Reviewer: dda at ddanderson.com (Message-Id: <14C1CC5F-D768-4629-BCFB-D2EE6F05D209 at ddanderson.com>)
QA Reviewer: rcyeager at bellsouth.net (pending)

Details:
    JavascriptGenerator: translate references before rewriting.

Tests:
    Test case from bug report.  smokecheck in SWF and DHTML



Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java	2007-10-19 17:14:55 UTC (rev 6925)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java	2007-10-19 17:31:12 UTC (rev 6926)
@@ -1012,22 +1012,23 @@
   }
 
   public SimpleNode visitAssignmentExpression(SimpleNode node, boolean isReferenced, SimpleNode[] children) {
-    SimpleNode lhs = children[0];
+    JavascriptReference lhs = translateReference(children[0]);
     int op = ((ASTOperator)children[1]).getOperator();
-    SimpleNode rhs = children[2];
+    SimpleNode rhs = visitExpression(children[2]);
     if (op != ParserConstants.ASSIGN &&
-        translateReference(lhs).isChecked()) {
+        lhs.isChecked()) {
       // The undefined reference checker needs to have this expanded
       // to work
       Map map = new HashMap();
-      map.put("_1", lhs);
+      map.put("_1", lhs.get());
       map.put("_2", rhs);
-      String pattern = "(function () { var $lzsc$tmp = _1; return _1 = $lzsc$tmp " + AssignOpTable.get(op) + " _2; })()";
+      map.put("_3", lhs.set());
+      String pattern = "(function () { var $lzsc$tmp = _1; return _3 = $lzsc$tmp " + AssignOpTable.get(op) + " _2; })()";
       SimpleNode n = (new Compiler.Parser()).substitute(pattern, map);
       return visitExpression(n);
     }
-    children[2] = visitExpression(rhs);
-    children[0] = translateReference(lhs).set();
+    children[2] = rhs;
+    children[0] = lhs.set();
     return node;
   }
 



More information about the Laszlo-checkins mailing list