[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