* Makes a deep clone of an array * and its elements. * * @returns a copy of the array. */
| 252 | * @returns a copy of the array. |
| 253 | */ |
| 254 | Object::Ptr Array::Clone() const |
| 255 | { |
| 256 | ArrayData arr; |
| 257 | |
| 258 | ObjectLock olock(this); |
| 259 | for (const Value& val : m_Data) { |
| 260 | arr.push_back(val.Clone()); |
| 261 | } |
| 262 | |
| 263 | return new Array(std::move(arr)); |
| 264 | } |
| 265 | |
| 266 | Array::Ptr Array::Reverse() const |
| 267 | { |