diff --git a/packages/@glimmer/interfaces/lib/runtime/debug-render-tree.d.ts b/packages/@glimmer/interfaces/lib/runtime/debug-render-tree.d.ts index e3a7aafd754..a9504c67d7a 100644 --- a/packages/@glimmer/interfaces/lib/runtime/debug-render-tree.d.ts +++ b/packages/@glimmer/interfaces/lib/runtime/debug-render-tree.d.ts @@ -17,6 +17,7 @@ export interface RenderNode { args: CapturedArguments; instance: unknown; template?: string | undefined; + meta?: Record; } export interface CapturedRenderNode { @@ -26,6 +27,7 @@ export interface CapturedRenderNode { args: Arguments; instance: unknown; template: string | null; + meta: Record | null; bounds: null | { parentElement: SimpleElement; firstNode: SimpleNode; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts index 9c0d378b123..9ba2c7f3489 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts @@ -103,6 +103,9 @@ APPEND_OPCODES.add(VM_PUSH_REMOTE_ELEMENT_OP, (vm) => { name: 'in-element', args, instance: null, + meta: { + parentElement: vm.elements().element, + }, }); registerDestructor(block, () => { diff --git a/packages/@glimmer/runtime/lib/debug-render-tree.ts b/packages/@glimmer/runtime/lib/debug-render-tree.ts index b48626fb8a3..fe036bb9b0f 100644 --- a/packages/@glimmer/runtime/lib/debug-render-tree.ts +++ b/packages/@glimmer/runtime/lib/debug-render-tree.ts @@ -182,11 +182,21 @@ export default class DebugRenderTreeImpl< private captureNode(id: string, state: TBucket): CapturedRenderNode { let node = this.nodeFor(state); - let { type, name, args, instance, refs } = node; + let { type, name, args, instance, refs, meta = null } = node; let template = this.captureTemplate(node); let bounds = this.captureBounds(node); let children = this.captureRefs(refs); - return { id, type, name, args: reifyArgsDebug(args), instance, template, bounds, children }; + return { + id, + type, + name, + args: reifyArgsDebug(args), + instance, + template, + bounds, + children, + meta, + }; } private captureTemplate({ template }: InternalRenderNode): Nullable {