throws Throwable
  public static Value explode(String separator,                              String string,                              @Optional("0x7fffffff") long limit)    throws Throwable  {    if (separator.equals(""))      return BooleanValue.FALSE;    ArrayValue array = new ArrayValueImpl();    int head = 0;    int tail;    int i = 0;    while ((tail = string.indexOf(separator, head)) >= 0) {      if (limit <= i + 1)        break;      LongValue key = LongValue.create(i++);      StringValue chunk = new StringValueImpl(string.substring(head, tail));      array.put(key, chunk);      head = tail + separator.length();    }    LongValue key = LongValue.create(i);    StringValue chunk = new StringValueImpl(string.substring(head));    array.put(key, chunk);    return array;  }