diff --git a/Libraries/Image/__tests__/resolveAssetSource-test.js b/Libraries/Image/__tests__/resolveAssetSource-test.js index 26f3c9ea3..632ff9656 100644 --- a/Libraries/Image/__tests__/resolveAssetSource-test.js +++ b/Libraries/Image/__tests__/resolveAssetSource-test.js @@ -32,6 +32,12 @@ describe('resolveAssetSource', () => { expect(resolveAssetSource(source2)).toBe(source2); }); + it('ignores any weird data', () => { + expect(resolveAssetSource(null)).toBe(null); + expect(resolveAssetSource(42)).toBe(null); + expect(resolveAssetSource('nonsense')).toBe(null); + }); + describe('bundle was loaded from network', () => { beforeEach(() => { SourceCode.scriptURL = 'http://10.0.0.1:8081/main.bundle'; diff --git a/Libraries/Image/resolveAssetSource.js b/Libraries/Image/resolveAssetSource.js index da136e9a7..021891558 100644 --- a/Libraries/Image/resolveAssetSource.js +++ b/Libraries/Image/resolveAssetSource.js @@ -43,10 +43,11 @@ function pickScale(scales, deviceScale) { return scales[scales.length - 1] || 1; } -// TODO(frantic): -// * Pick best scale and append @Nx to file path -// * We are currently using httpServerLocation for both http and in-app bundle function resolveAssetSource(source) { + if (!source || typeof source !== 'object') { + return null; + } + if (!source.__packager_asset) { return source; }