fix(core): Observable splice index > length (#8900)

* fix for splice index > length

In javascript you can call splice with an index > length. The result is a push.
But when you do that ObservableArray index will be wrong and thus user logic will fail.
Example:
```ts
// obsarray = [0];
obsarray.splice(2, 0, 1);
// this works, the inner array is now [0,1]
// however 'change' is called with index = 2
// when the use tries to do obsarray.getItem(eventData.index) -> crash
```

* fix to handle delete too
This commit is contained in:
Martin Guillon
2020-09-27 18:20:52 +02:00
committed by GitHub
parent af6336d930
commit 65b1cdbae0

View File

@ -246,7 +246,7 @@ export class ObservableArray<T> extends Observable {
eventName: CHANGE,
object: this,
action: ChangeType.Splice,
index: start,
index: Math.min(start, this._array.length-1),
removed: result,
addedCount: this._array.length + result.length - length,
});