diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 2026234ae8d..70f15d97dcf 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -2566,6 +2566,8 @@ Plotly.addFrames = function(gd, frameList, indices) { var insertions = []; for(i = frameList.length - 1; i >= 0; i--) { + if(!Lib.isPlainObject(frameList[i])) continue; + var name = (_hash[frameList[i].name] || {}).name; var newName = frameList[i].name; diff --git a/test/jasmine/tests/frame_api_test.js b/test/jasmine/tests/frame_api_test.js index 495acbb6418..16c253e06e8 100644 --- a/test/jasmine/tests/frame_api_test.js +++ b/test/jasmine/tests/frame_api_test.js @@ -43,6 +43,13 @@ describe('Test frame api', function() { }).catch(fail).then(done); }); + it('compresses garbage when adding frames', function(done) { + Plotly.addFrames(gd, [null, 'garbage', 14, true, false, {name: 'test'}, null]).then(function() { + expect(Object.keys(h)).toEqual(['test']); + expect(f).toEqual([{name: 'test'}]); + }).catch(fail).then(done); + }); + it('treats a null list as a noop', function(done) { Plotly.addFrames(gd, null).then(function() { expect(Object.keys(h)).toEqual([]);