111 /** 112 * setArgument is used for named argument set. 113 */ 114 @Override 115 public void setArgument(final int key, final Object value) { 116 assert key >= 0 && key < numParams : "invalid argument index"; 117 if (isMapped(key)) { 118 setArray(getArray().set(key, value, false)); 119 } else { 120 setUnmappedArg(key, value); 121 } 122 } 123 124 @Override 125 public boolean delete(final int key, final boolean strict) { 126 final int index = ArrayIndex.getArrayIndex(key); 127 return isMapped(index) ? deleteMapped(index, strict) : super.delete(key, strict); 128 } 129 130 @Override 131 public boolean delete(final long key, final boolean strict) { 132 final int index = ArrayIndex.getArrayIndex(key); 133 return isMapped(index) ? deleteMapped(index, strict) : super.delete(key, strict); 134 } 135 136 @Override 137 public boolean delete(final double key, final boolean strict) { 138 final int index = ArrayIndex.getArrayIndex(key); 139 return isMapped(index) ? deleteMapped(index, strict) : super.delete(key, strict); 140 } 141 142 @Override 143 public boolean delete(final Object key, final boolean strict) { 144 final Object primitiveKey = JSType.toPrimitive(key, String.class); 145 final int index = ArrayIndex.getArrayIndex(primitiveKey); 146 return isMapped(index) ? deleteMapped(index, strict) : super.delete(primitiveKey, strict); 147 } 148 149 /** 150 * ECMA 15.4.5.1 [[DefineOwnProperty]] ( P, Desc, Throw ) as specialized in 151 * ECMA 10.6 for Arguments object. 152 */ 153 @Override 154 public boolean defineOwnProperty(final String key, final Object propertyDesc, final boolean reject) { 155 final int index = ArrayIndex.getArrayIndex(key); 156 if (index >= 0) { | 111 /** 112 * setArgument is used for named argument set. 113 */ 114 @Override 115 public void setArgument(final int key, final Object value) { 116 assert key >= 0 && key < numParams : "invalid argument index"; 117 if (isMapped(key)) { 118 setArray(getArray().set(key, value, false)); 119 } else { 120 setUnmappedArg(key, value); 121 } 122 } 123 124 @Override 125 public boolean delete(final int key, final boolean strict) { 126 final int index = ArrayIndex.getArrayIndex(key); 127 return isMapped(index) ? deleteMapped(index, strict) : super.delete(key, strict); 128 } 129 130 @Override 131 public boolean delete(final double key, final boolean strict) { 132 final int index = ArrayIndex.getArrayIndex(key); 133 return isMapped(index) ? deleteMapped(index, strict) : super.delete(key, strict); 134 } 135 136 @Override 137 public boolean delete(final Object key, final boolean strict) { 138 final Object primitiveKey = JSType.toPrimitive(key, String.class); 139 final int index = ArrayIndex.getArrayIndex(primitiveKey); 140 return isMapped(index) ? deleteMapped(index, strict) : super.delete(primitiveKey, strict); 141 } 142 143 /** 144 * ECMA 15.4.5.1 [[DefineOwnProperty]] ( P, Desc, Throw ) as specialized in 145 * ECMA 10.6 for Arguments object. 146 */ 147 @Override 148 public boolean defineOwnProperty(final String key, final Object propertyDesc, final boolean reject) { 149 final int index = ArrayIndex.getArrayIndex(key); 150 if (index >= 0) { |