|  | @@ -110,6 +110,7 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
 | 
		
	
		
			
			| 110 | 110 |  	private static final JavaMethod HASHMAP_INIT = JavaMethod.getNativeConstructor(JavaClass.HASHMAP, "()V");
 | 
		
	
		
			
			| 111 | 111 |  	private static final JavaMethod MAP_GET = JavaMethod.getNativeVirtual(JavaClass.MAP, "get", "(Ljava/lang/Object;)Ljava/lang/Object;");
 | 
		
	
		
			
			| 112 | 112 |  	private static final JavaMethod MAP_PUT = JavaMethod.getNativeVirtual(JavaClass.MAP, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
 | 
		
	
		
			
			|  | 113 | +	private static final JavaMethod MAP_PUT_ALL = JavaMethod.getNativeVirtual(JavaClass.MAP, "putAll", "(Ljava/util/Map;)V");
 | 
		
	
		
			
			| 113 | 114 |  	private static final JavaMethod MAP_CONTAINS_KEY = JavaMethod.getNativeVirtual(JavaClass.MAP, "containsKey", "(Ljava/lang/Object;)Z");
 | 
		
	
		
			
			| 114 | 115 |  	private static final JavaMethod MAP_SIZE = JavaMethod.getNativeVirtual(JavaClass.MAP, "size", "()I");
 | 
		
	
		
			
			| 115 | 116 |  	private static final JavaMethod MAP_ISEMPTY = JavaMethod.getNativeVirtual(JavaClass.MAP, "isEmpty", "()Z");
 | 
		
	
	
		
			
			|  | @@ -542,7 +543,7 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
 | 
		
	
		
			
			| 542 | 543 |  					argument.accept(this);
 | 
		
	
		
			
			| 543 | 544 |  				}
 | 
		
	
		
			
			| 544 | 545 |  		}
 | 
		
	
		
			
			| 545 |  | -		
 | 
		
	
		
			
			|  | 546 | +
 | 
		
	
		
			
			| 546 | 547 |  		switch (builtin) {
 | 
		
	
		
			
			| 547 | 548 |  			case BOOL_NOT:
 | 
		
	
		
			
			| 548 | 549 |  				javaWriter.iConst1();
 | 
		
	
	
		
			
			|  | @@ -907,6 +908,13 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
 | 
		
	
		
			
			| 907 | 908 |  				break;
 | 
		
	
		
			
			| 908 | 909 |  			}
 | 
		
	
		
			
			| 909 | 910 |  			case GENERICMAP_PUT: {
 | 
		
	
		
			
			|  | 911 | +				//FIXME dirty check for typeOfT
 | 
		
	
		
			
			|  | 912 | +				if (expression.arguments.arguments.length == 1) {
 | 
		
	
		
			
			|  | 913 | +					javaWriter.dup();
 | 
		
	
		
			
			|  | 914 | +					javaWriter.invokeVirtual(JavaMethod.getVirtual(JavaClass.OBJECT, "getClass", "()Ljava/lang/Class;", 0));
 | 
		
	
		
			
			|  | 915 | +					javaWriter.swap();
 | 
		
	
		
			
			|  | 916 | +				}
 | 
		
	
		
			
			|  | 917 | +
 | 
		
	
		
			
			| 910 | 918 |  				javaWriter.invokeVirtual(MAP_PUT);
 | 
		
	
		
			
			| 911 | 919 |  				javaWriter.pop();
 | 
		
	
		
			
			| 912 | 920 |  				break;
 | 
		
	
	
		
			
			|  | @@ -918,6 +926,9 @@ public class JavaExpressionVisitor implements ExpressionVisitor<Void>, JavaNativ
 | 
		
	
		
			
			| 918 | 926 |  				throw new UnsupportedOperationException("Not yet supported!");
 | 
		
	
		
			
			| 919 | 927 |  			case GENERICMAP_NOTEQUALS:
 | 
		
	
		
			
			| 920 | 928 |  				throw new UnsupportedOperationException("Not yet supported!");
 | 
		
	
		
			
			|  | 929 | +			case GENERICMAP_ADDALL:
 | 
		
	
		
			
			|  | 930 | +				javaWriter.invokeInterface(MAP_PUT_ALL);
 | 
		
	
		
			
			|  | 931 | +				break;
 | 
		
	
		
			
			| 921 | 932 |  			case ARRAY_INDEXGET: {
 | 
		
	
		
			
			| 922 | 933 |  				ArrayTypeID type = (ArrayTypeID) expression.target.type.type;
 | 
		
	
		
			
			| 923 | 934 |  				expression.target.accept(this);
 |