From e9cbbe357d171af62d1bfecd6f2937b3e863688f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odin=20H=C3=B8rthe=20Omdal?= Date: Tue, 11 Oct 2016 21:30:19 +0300 Subject: [PATCH] Fix race condition on deleting clickedItem If you have some code removing all items before the timeout is able to run, you'll get a nasty TypeError if you don't null check clickedItem. --- isteven-multi-select.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/isteven-multi-select.js b/isteven-multi-select.js index b5d3465..e04a9cb 100644 --- a/isteven-multi-select.js +++ b/isteven-multi-select.js @@ -439,6 +439,9 @@ angular.module( 'isteven-multi-select', ['ng'] ).directive( 'istevenMultiSelect' clickedItem = angular.copy( item ); if ( clickedItem !== null ) { $timeout( function() { + if ( clickedItem === null ) { + return; + } delete clickedItem[ $scope.indexProperty ]; delete clickedItem[ $scope.spacingProperty ]; $scope.onItemClick( { data: clickedItem } );