docs: public static <T> T[] takeWhile(T[] self, @ClosureParams(FirstParam.Component.class) Closure condition) {
          int num = 0;
          BooleanClosureWrapper bcw = new BooleanClosureWrapper(condition);
          while (num < self.length) {
              T value = self[num];
              if (bcw.call(value)) {
                  num += 1;
              } else {
                  break;
              }
          }
          return take(self, num);
      }