< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/UndefinedArrayFilter.java

Print this page




  60         }
  61 
  62         return value;
  63     }
  64 
  65     @Override
  66     public Object asArrayOfType(final Class<?> componentType) {
  67         final Object value = super.asArrayOfType(componentType);
  68         final Object undefValue = convertUndefinedValue(componentType);
  69         final int l = Array.getLength(value);
  70         for (int i = 0; i < l; i++) {
  71             if (undefined.isSet(i)) {
  72                 Array.set(value, i,undefValue);
  73             }
  74         }
  75 
  76         return value;
  77     }
  78 
  79     @Override
  80     public void shiftLeft(final int by) {
  81         super.shiftLeft(by);
  82         undefined.shiftLeft(by, length());

  83     }
  84 
  85     @Override
  86     public ArrayData shiftRight(final int by) {
  87         super.shiftRight(by);
  88         undefined.shiftRight(by, length());
  89         return this;
  90     }
  91 
  92     @Override
  93     public ArrayData ensure(final long safeIndex) {
  94         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH && safeIndex >= length()) {
  95             return new SparseArrayData(this, safeIndex + 1);
  96         }
  97 
  98         super.ensure(safeIndex);
  99         undefined.resize(length());
 100 
 101         return this;
 102     }




  60         }
  61 
  62         return value;
  63     }
  64 
  65     @Override
  66     public Object asArrayOfType(final Class<?> componentType) {
  67         final Object value = super.asArrayOfType(componentType);
  68         final Object undefValue = convertUndefinedValue(componentType);
  69         final int l = Array.getLength(value);
  70         for (int i = 0; i < l; i++) {
  71             if (undefined.isSet(i)) {
  72                 Array.set(value, i,undefValue);
  73             }
  74         }
  75 
  76         return value;
  77     }
  78 
  79     @Override
  80     public ArrayData shiftLeft(final int by) {
  81         super.shiftLeft(by);
  82         undefined.shiftLeft(by, length());
  83         return this;
  84     }
  85 
  86     @Override
  87     public ArrayData shiftRight(final int by) {
  88         super.shiftRight(by);
  89         undefined.shiftRight(by, length());
  90         return this;
  91     }
  92 
  93     @Override
  94     public ArrayData ensure(final long safeIndex) {
  95         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH && safeIndex >= length()) {
  96             return new SparseArrayData(this, safeIndex + 1);
  97         }
  98 
  99         super.ensure(safeIndex);
 100         undefined.resize(length());
 101 
 102         return this;
 103     }


< prev index next >