JavaScript Instances registry, faulty re-set new instance
Prerequisites
-
I have searched for duplicate or closed issues -
I have validated any HTML to avoid common problems -
I have read the contributing guidelines
Describe the issue
Bootstrap's Instances registry, by design, doesn't support multiple instances per element. However, in the rare case we are trying to re-initiate the same component for second time, it wrongly overrides the already existing instance
I found this flaw on #37195 (closed), where two tooltips were created using the same element
and is caused on this method https://github.com/twbs/bootstrap/blob/da0fe8c8b2e969bcf620a9ef1c1ca4f2b8554ec6/js/src/dom/data.js#L15-L31
Steps to reproduce
- open debugger with given breakpoint on https://github.com/twbs/bootstrap/blob/da0fe8c8b2e969bcf620a9ef1c1ca4f2b8554ec6/js/src/dom/data.js#L30
- initialize an instance of any available js component, using constructor ex:
new Toast(myelement)
- Debugger with stop on the breakpoint
- repeat the first step again ->
new Toast(myelement)
- Debugger should not stop in the same point as the instance already exists
Reduced test cases
https://codepen.io/GeosSV/pen/gOzzWYV?editors=1011
What operating system(s) are you seeing the problem on?
Windows, macOS, Android, iOS, Linux
What browser(s) are you seeing the problem on?
Chrome, Safari, Firefox, Microsoft Edge, Opera
What version of Bootstrap are you using?
v5.2.2