if (operator.equals("||") || operator.equals("&&")) {
// do nothing
value = src;
} else {
CallVertex getter = new CallVertex(node.getReceiverNode(), "[]", receiverVertex, argVertices, null);
CallVertex op = new CallVertex(node, operator, RuntimeHelper.call(this, getter), new Vertex[] {src}, null);
value = RuntimeHelper.call(this, op);
}
Vertex[] expandedArgs = new Vertex[argVertices.length + 1];
System.arraycopy(argVertices, 0, expandedArgs, 0, argVertices.length);
expandedArgs[expandedArgs.length - 1] = value;
CallVertex setter = new CallVertex(node, "[]=", receiverVertex, expandedArgs, null);
return RuntimeHelper.call(this, setter);
}