bug fixes from Simon Jenson for bitwise operations
bug fixes to handling of for(.. in ..) {...} loops git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3045 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
parent
9160a2f565
commit
9200772866
|
@ -83,12 +83,10 @@ public class RhinoToAstTranslator {
|
|||
|
||||
void setCatchVar(String name);
|
||||
|
||||
String getForInVar(String loopVarName, Node initExpr);
|
||||
String getForInVar(Node initExpr);
|
||||
|
||||
String getForInInitVar();
|
||||
|
||||
String getForInLoopVar();
|
||||
|
||||
void addInitializer(CAstNode n);
|
||||
}
|
||||
|
||||
|
@ -143,7 +141,7 @@ public class RhinoToAstTranslator {
|
|||
public void setCatchVar(String name) {
|
||||
}
|
||||
|
||||
public String getForInVar(String loopVarName, Node initExpr) {
|
||||
public String getForInVar(Node initExpr) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -151,10 +149,6 @@ public class RhinoToAstTranslator {
|
|||
return null;
|
||||
}
|
||||
|
||||
public String getForInLoopVar() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void addInitializer(CAstNode n) {
|
||||
}
|
||||
}
|
||||
|
@ -218,18 +212,14 @@ public class RhinoToAstTranslator {
|
|||
parent.setCatchVar(name);
|
||||
}
|
||||
|
||||
public String getForInVar(String loopVarName, Node initExpr) {
|
||||
return parent.getForInVar(loopVarName, initExpr);
|
||||
public String getForInVar(Node initExpr) {
|
||||
return parent.getForInVar(initExpr);
|
||||
}
|
||||
|
||||
public String getForInInitVar() {
|
||||
return parent.getForInInitVar();
|
||||
}
|
||||
|
||||
public String getForInLoopVar() {
|
||||
return parent.getForInLoopVar();
|
||||
}
|
||||
|
||||
public void addInitializer(CAstNode n) {
|
||||
parent.addInitializer(n);
|
||||
}
|
||||
|
@ -388,8 +378,6 @@ public class RhinoToAstTranslator {
|
|||
private static class LoopContext extends DelegatingContext {
|
||||
private static int counter = 0;
|
||||
|
||||
private String loopVarName;
|
||||
|
||||
private String forInVar = null;
|
||||
|
||||
private Node forInInitExpr = null;
|
||||
|
@ -398,8 +386,7 @@ public class RhinoToAstTranslator {
|
|||
super(parent);
|
||||
}
|
||||
|
||||
public String getForInVar(String loopVarName, Node initExpr) {
|
||||
this.loopVarName = loopVarName;
|
||||
public String getForInVar(Node initExpr) {
|
||||
this.forInVar = "_forin_tmp" + counter++;
|
||||
this.forInInitExpr = initExpr;
|
||||
return forInVar;
|
||||
|
@ -410,11 +397,6 @@ public class RhinoToAstTranslator {
|
|||
return forInVar;
|
||||
}
|
||||
|
||||
public String getForInLoopVar() {
|
||||
Assertions._assert(loopVarName != null);
|
||||
return loopVarName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private CAstNode translateOpcode(int nodeType) {
|
||||
|
@ -437,6 +419,10 @@ public class RhinoToAstTranslator {
|
|||
return CAstOperator.OP_URSH;
|
||||
case Token.BITAND:
|
||||
return CAstOperator.OP_BIT_AND;
|
||||
case Token.BITOR:
|
||||
return CAstOperator.OP_BIT_OR;
|
||||
case Token.BITXOR:
|
||||
return CAstOperator.OP_BIT_XOR;
|
||||
|
||||
case Token.EQ:
|
||||
return CAstOperator.OP_EQ;
|
||||
|
@ -972,7 +958,8 @@ public class RhinoToAstTranslator {
|
|||
return Ast.makeConstant(true);
|
||||
}
|
||||
|
||||
case Token.NULL: {
|
||||
case Token.NULL:
|
||||
case Token.VOID: {
|
||||
return Ast.makeConstant(null);
|
||||
}
|
||||
|
||||
|
@ -985,6 +972,8 @@ public class RhinoToAstTranslator {
|
|||
case Token.SUB:
|
||||
case Token.URSH:
|
||||
case Token.BITAND:
|
||||
case Token.BITOR:
|
||||
case Token.BITXOR:
|
||||
case Token.EQ:
|
||||
case Token.SHEQ:
|
||||
case Token.GE:
|
||||
|
@ -1021,10 +1010,6 @@ public class RhinoToAstTranslator {
|
|||
.getFirstChild(), child));
|
||||
|
||||
} else {
|
||||
if (n.getNext().getType() == Token.ENUM_INIT_KEYS) {
|
||||
context.getForInVar(nm.getString(), n.getNext().getFirstChild());
|
||||
}
|
||||
|
||||
return Ast.makeNode(CAstNode.EMPTY);
|
||||
}
|
||||
}
|
||||
|
@ -1047,6 +1032,7 @@ public class RhinoToAstTranslator {
|
|||
}
|
||||
|
||||
case Token.ENUM_INIT_KEYS: {
|
||||
context.getForInVar(n.getFirstChild());
|
||||
return Ast.makeNode(CAstNode.EMPTY);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue