removeListener 에러 발생 이유

daum.maps.event.addListener() 를 하지 않고,
daum.maps.event.removeListener() 를 시도하는 경우 아래와 같은 에러가 발생합니다.

에러 발생 원인은 추가된 리스너가 없기 때문이라고 생각하는데요.

image

daum.maps.event.addListener() 를 한 후,
daum.maps.event.removeListener() 를 1회가 아닌 그 이상(즉, 무한으로) 시도 하는 경우에는 에러가 발생하지 않습니다.

위의 케이스대로 라면 1회 이상, 즉 리스너가 삭제 된 이후에 또 삭제를 시도했을 때 에러가 발생해야 하지 않나요?
1회가 아닌 그 이상 removeListener 처리를 하는데도 불구하고 에러가 발생되지 않는 이유가 궁금합니다.

이벤트 리스너 내부 구현이 다음과 같아서 입니다.

한 번의 addListener가 있어야만 해당 이벤트 타입에 대한 핸들러를 담는 배열을 새로 만듭니다.
한 번 만들어진 이후에는 배열을 삭제하지 않고 계속 재사용 하고 있기 때문에
이 후에 해제할 이벤트가 없지만 removeListener를 호출하더라도 에러는 나지 않고요.

만약 addListener가 한 번도 호출되지 않은 상황에서 removeListener를 호출하게되면
해당 타입에 대한 배열은 만들어지지 않았기 때문에
말씀하신 에러가 발생합니다.

API에서 충분히 예외처리가 가능한 부분이므로 조치를 취해보겠습니다만,
배포가 언제 될 것이라고 확답드리기 어려운 상황이라
일단 주의해서 사용 부탁드리겠습니다.