Skip to content
This repository was archived by the owner on Jan 6, 2026. It is now read-only.
This repository was archived by the owner on Jan 6, 2026. It is now read-only.

Some destroyables aren't destroyed #1446

Description

@swastik

I'm not familiar with Glimmer internals, so I'm not sure if this is an issue or if it works as intended, but here's a pretty simple Ember app that inserts 100 divs on click, then clears them out. If I enable destroy tracking, then assert it's all destroyed later, that seems like it doesn't quite happen.

In our actual app, this seems to retain a ton of these destroyables that should (?) be destroyed at this point but aren't for some reason.

Screen.Recording.2023-10-09.at.14.20.24.mov

Code:

  @tracked items = [];
  @tracked count = 0;

  @action addItems() {
    this.items = [
      ...this.items,
      ...Array(100)
        .fill(0)
        .map((_, i) => i),
    ];
  }

  @action clear() {
    this.items = [];
  }
<div>
  <button
    class="p-2 ml-2 add-items"
    type="button"
    {{on "click" this.addItems}}
  >Add 100 items</button>
  <button
    class="p-2 ml-2 clear"
    type="button"
    {{on "click" this.clear}}
  >Clear</button>
</div>

{{#each this.items as |item|}}
  <div>
    {{item}}
  </div>
{{/each}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions