74 return obj; 75 } 76 77 @Override 78 public int getInt(final int index) { 79 if (index >= length()) { 80 return JSType.toInt32(get(index)); 81 } 82 return underlying.getInt(index); 83 } 84 85 @Override 86 public int getIntOptimistic(final int index, final int programPoint) { 87 if (index >= length()) { 88 return JSType.toInt32Optimistic(get(index), programPoint); 89 } 90 return underlying.getIntOptimistic(index, programPoint); 91 } 92 93 @Override 94 public long getLong(final int index) { 95 if (index >= length()) { 96 return JSType.toLong(get(index)); 97 } 98 return underlying.getLong(index); 99 } 100 101 @Override 102 public long getLongOptimistic(final int index, final int programPoint) { 103 if (index >= length()) { 104 return JSType.toLongOptimistic(get(index), programPoint); 105 } 106 return underlying.getLongOptimistic(index, programPoint); 107 } 108 109 @Override 110 public double getDouble(final int index) { 111 if (index >= length()) { 112 return JSType.toNumber(get(index)); 113 } 114 return underlying.getDouble(index); 115 } 116 117 @Override 118 public double getDoubleOptimistic(final int index, final int programPoint) { 119 if (index >= length()) { 120 return JSType.toNumberOptimistic(get(index), programPoint); 121 } 122 return underlying.getDoubleOptimistic(index, programPoint); 123 } 124 125 @Override 126 public Object getObject(final int index) { 127 if (index >= length()) { 128 return get(index); 129 } 130 return underlying.getObject(index); 131 } 132 133 @Override 134 public ArrayData set(final int index, final Object value, final boolean strict) { 135 if (checkAdd(index, value)) { 136 return this; 137 } 138 underlying = underlying.set(index, value, strict); 139 return this; 140 } 141 142 @Override 143 public ArrayData set(final int index, final int value, final boolean strict) { 144 if (checkAdd(index, value)) { 145 return this; 146 } 147 underlying = underlying.set(index, value, strict); 148 return this; 149 } 150 151 @Override 152 public ArrayData set(final int index, final long value, final boolean strict) { 153 if (checkAdd(index, value)) { 154 return this; 155 } 156 underlying = underlying.set(index, value, strict); 157 return this; 158 } 159 160 @Override 161 public ArrayData set(final int index, final double value, final boolean strict) { 162 if (checkAdd(index, value)) { 163 return this; 164 } 165 underlying = underlying.set(index, value, strict); 166 return this; 167 } 168 169 @Override 170 public ArrayData delete(final int index) { 171 extraElements.remove(index); 172 underlying = underlying.delete(index); | 74 return obj; 75 } 76 77 @Override 78 public int getInt(final int index) { 79 if (index >= length()) { 80 return JSType.toInt32(get(index)); 81 } 82 return underlying.getInt(index); 83 } 84 85 @Override 86 public int getIntOptimistic(final int index, final int programPoint) { 87 if (index >= length()) { 88 return JSType.toInt32Optimistic(get(index), programPoint); 89 } 90 return underlying.getIntOptimistic(index, programPoint); 91 } 92 93 @Override 94 public double getDouble(final int index) { 95 if (index >= length()) { 96 return JSType.toNumber(get(index)); 97 } 98 return underlying.getDouble(index); 99 } 100 101 @Override 102 public double getDoubleOptimistic(final int index, final int programPoint) { 103 if (index >= length()) { 104 return JSType.toNumberOptimistic(get(index), programPoint); 105 } 106 return underlying.getDoubleOptimistic(index, programPoint); 107 } 108 109 @Override 110 public Object getObject(final int index) { 111 if (index >= length()) { 112 return get(index); 113 } 114 return underlying.getObject(index); 115 } 116 117 @Override 118 public ArrayData set(final int index, final Object value, final boolean strict) { 119 if (checkAdd(index, value)) { 120 return this; 121 } 122 underlying = underlying.set(index, value, strict); 123 return this; 124 } 125 126 @Override 127 public ArrayData set(final int index, final int value, final boolean strict) { 128 if (checkAdd(index, value)) { 129 return this; 130 } 131 underlying = underlying.set(index, value, strict); 132 return this; 133 } 134 135 @Override 136 public ArrayData set(final int index, final double value, final boolean strict) { 137 if (checkAdd(index, value)) { 138 return this; 139 } 140 underlying = underlying.set(index, value, strict); 141 return this; 142 } 143 144 @Override 145 public ArrayData delete(final int index) { 146 extraElements.remove(index); 147 underlying = underlying.delete(index); |