throws Throwable
  public Value array_search(Env env,                            @ReadOnly Value needle,                            @ReadOnly ArrayValue array,                            @Optional("false") boolean strict)    throws Throwable  {    if (array == null)      return BooleanValue.FALSE;    for (Map.Entry<Value, Value> entry : array.entrySet()) {      Value entryValue = entry.getValue();      Value entryKey = entry.getKey();      if (needle.eq(entryValue)) {        if (strict) {          if ((entryValue.getType()).equals(needle.getType()))            return entryKey;        }        else          return entryKey;      }    }    return BooleanValue.FALSE;  }