@Siltaar: thanks. I've played more around with the example, and the elements indeed seem to be GC'ed to early. When adding conditional logging ``` if (local_prefix.state) { console.log(local_prefix.short); } else { console.log(local_prefix.long); } ``` instead of the unconditional logging, the Web Console shows that `local_prefix.long` indeed becomes a empty `NodeList`. Needs further investigation.
Bug 1551425 Comment 8 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
@Siltaar: thanks. I've played more around with the example, and the elements indeed seem to be GC'ed to early. When adding conditional logging ``` if (local_prefix.state) { console.log(local_prefix.short); } else { console.log(local_prefix.long); } ``` instead of the unconditional logging, the Web Console shows that `local_prefix.long` indeed becomes a empty `NodeList`. Needs further investigation.
@Siltaar: thanks. I've played more around with the example, and the elements indeed seem to be GC'ed to early. When adding conditional logging ``` if (local_prefix.state) { console.log(local_prefix.short); } else { console.log(local_prefix.long); } ``` instead of the unconditional logging, the Web Console shows that `local_prefix.long` indeed becomes a empty `NodeList`. Interestingly, the GC also removes the objects when `prefix`'s and `local_prefix`'s scope is changed to global. Needs more investigation. Needs further investigation.
@Siltaar: thanks. I've played more around with the example, and the elements indeed seem to be GC'ed to early. When adding conditional logging ``` if (local_prefix.state) { console.log(local_prefix.short); } else { console.log(local_prefix.long); } ``` instead of the unconditional logging, the Web Console shows that `local_prefix.long` indeed becomes a empty `NodeList`. Interestingly, the GC also removes the objects when `prefix`'s and `local_prefix`'s scope is changed to global. Needs further investigation.