diff --git a/Libraries/Blob/Blob.js b/Libraries/Blob/Blob.js index 862c3f50bdcb0f..a75fb1b3688a16 100644 --- a/Libraries/Blob/Blob.js +++ b/Libraries/Blob/Blob.js @@ -98,6 +98,10 @@ class Blob { // $FlowFixMe[reassign-const] end = this.size + end; } + if (end > this.size) { + // $FlowFixMe[reassign-const] + end = this.size; + } size = end - start; } } diff --git a/Libraries/Blob/__tests__/Blob-test.js b/Libraries/Blob/__tests__/Blob-test.js index 9fdabab67ef530..e5308c0d2c5811 100644 --- a/Libraries/Blob/__tests__/Blob-test.js +++ b/Libraries/Blob/__tests__/Blob-test.js @@ -71,6 +71,11 @@ describe('Blob', function () { expect(sliceB.data.offset).toBe(2384); expect(sliceB.size).toBe(7621 - 2384); expect(sliceB.type).toBe(''); + + const sliceC = blob.slice(34543, 34569); + + expect(sliceC.data.offset).toBe(34543); + expect(sliceC.size).toBe(Math.min(blob.data.size, 34569) - 34543); }); it('should close a blob', () => {