code: private RValue executeConst(Expr.Constant expr, CallStack frame) {
  		Value v = expr.getValue();
  		switch (v.getOpcode()) {
  		case ITEM_null:
  			return RValue.Null;
  		case ITEM_bool: {
  			Value.Bool b = (Value.Bool) v;
  			if (b.get()) {
  				return RValue.True;
  			} else {
  				return RValue.False;
  			}
  		}
  		case ITEM_byte: {
  			Value.Byte b = (Value.Byte) v;
  			return semantics.Byte(b.get());
  		}
  		case ITEM_int: {
  			Value.Int i = (Value.Int) v;
  			return semantics.Int(i.get());
  		}
  		case ITEM_utf8: {
  			Value.UTF8 s = (Value.UTF8) v;
  			byte[] bytes = s.get();
  			RValue[] elements = new RValue[bytes.length];
  			for (int i = 0; i != elements.length; ++i) {
  				// FIXME: something tells me this is wrong for signed byte
  				// values?
  				elements[i] = semantics.Int(BigInteger.valueOf(bytes[i]));
  			}
  			return semantics.Array(elements);
  		}
  		default:
  			throw new RuntimeException("unknown value encountered (" + expr + ")");
  		}
  	}
docs: Execute a Constant expression at a given point in the function or
  method body
  
  @param expr
  --- The expression to execute
  @param frame
  --- The current stack frame
  @return