src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java
Print this page
*** 710,732 ****
final FunctionNode definingFn = lc.getDefiningFunction(symbol);
assert definingFn != null;
return definingFn == function;
}
- private void checkConstAssignment(final IdentNode ident) {
- // Check for reassignment of constant
- final Symbol symbol = ident.getSymbol();
- if (symbol.isConst()) {
- throwParserException(ECMAErrors.getMessage("syntax.error.assign.constant", symbol.getName()), ident);
- }
- }
-
@Override
public Node leaveBinaryNode(final BinaryNode binaryNode) {
- if (binaryNode.isAssignment() && binaryNode.lhs() instanceof IdentNode) {
- checkConstAssignment((IdentNode) binaryNode.lhs());
- }
switch (binaryNode.tokenType()) {
case ASSIGN:
return leaveASSIGN(binaryNode);
default:
return super.leaveBinaryNode(binaryNode);
--- 710,721 ----
*** 749,761 ****
return binaryNode;
}
@Override
public Node leaveUnaryNode(final UnaryNode unaryNode) {
- if (unaryNode.isAssignment() && unaryNode.getExpression() instanceof IdentNode) {
- checkConstAssignment((IdentNode) unaryNode.getExpression());
- }
switch (unaryNode.tokenType()) {
case DELETE:
return leaveDELETE(unaryNode);
case TYPEOF:
return leaveTYPEOF(unaryNode);
--- 738,747 ----