def each
      return to_enum(__method__) { instance.size } unless block_given?
      instance.each_index { |i| yield(self[i]) }
      self
    end
def each
      return to_enum(__method__) { instance.size } unless block_given?
      instance.each_index { |i| yield(self[i]) }
      self
    end
yields each element. each yielded element is the result of self[index]
 for each index of the instance (see #[]).
 returns an Enumerator if no block is given.
 @yield [Object] each element of this JSI array
 @return [self, Enumerator]