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 [EMAIL PROTECTED] 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: [EMAIL PROTECTED] (Message-Id: <[EMAIL PROTECTED]>)
QA Reviewer: [EMAIL PROTECTED] (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;
   }
 


_______________________________________________
Laszlo-checkins mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins

Reply via email to