private static boolean isUndefinedMarkerList(ListExpression listExpression) { if (listExpression.getExpressions().size() != 1) return false; Expression itemExpr = listExpression.getExpression(0); if (itemExpr == null) return false; if (itemExpr instanceof ConstantExpression) { Object value = ((ConstantExpression) itemExpr).getValue(); if (value instanceof String && isUndefined((String)value)) return true; } else if (itemExpr instanceof ClassExpression && isUndefined(itemExpr.getType())) { return true; } return false; }
mv.visitInsn(DUP); BytecodeHelper.pushConstant(mv, i); expression.getExpression(i).visit(this); operandStack.box(); mv.visitInsn(AASTORE);
public void visitListExpression(ListExpression expression) { onLineNumber(expression,"ListExpression" ); int size = expression.getExpressions().size(); boolean containsSpreadExpression = containsSpreadExpression(expression); if (!containsSpreadExpression) { helper.pushConstant(size); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); helper.pushConstant(i); visitAndAutoboxBoolean(expression.getExpression(i)); mv.visitInsn(AASTORE); } } else { despreadList(expression.getExpressions(), false); } createListMethod.call(mv); }
public void visitListExpression(ListExpression expression) { onLineNumber(expression,"ListExpression" ); int size = expression.getExpressions().size(); boolean containsSpreadExpression = containsSpreadExpression(expression); if (!containsSpreadExpression) { helper.pushConstant(size); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); helper.pushConstant(i); visitAndAutoboxBoolean(expression.getExpression(i)); mv.visitInsn(AASTORE); } } else { despreadList(expression.getExpressions(), false); } createListMethod.call(mv); }
public void visitListExpression(ListExpression expression) { onLineNumber(expression,"ListExpression" ); int size = expression.getExpressions().size(); boolean containsSpreadExpression = containsSpreadExpression(expression); if (!containsSpreadExpression) { helper.pushConstant(size); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); helper.pushConstant(i); visitAndAutoboxBoolean(expression.getExpression(i)); mv.visitInsn(AASTORE); } } else { despreadList(expression.getExpressions(), false); } createListMethod.call(mv); }
mv.visitInsn(DUP); BytecodeHelper.pushConstant(mv, i); expression.getExpression(i).visit(this); operandStack.box(); mv.visitInsn(AASTORE);