From 2ed0c4a7dce9cccb9c29bda2d833ef7fc7f75276 Mon Sep 17 00:00:00 2001 From: patrickpircher Date: Fri, 18 Oct 2024 17:34:15 +0200 Subject: [PATCH] fix --- .../@glimmer-workspace/integration-tests/lib/modifiers.ts | 4 ++-- .../@glimmer/interfaces/lib/managers/internal/modifier.d.ts | 4 ++-- packages/@glimmer/interfaces/lib/managers/modifier.d.ts | 2 +- packages/@glimmer/manager/lib/public/modifier.ts | 5 ++--- packages/@glimmer/runtime/lib/compiled/opcodes/component.ts | 4 ++-- packages/@glimmer/runtime/lib/environment.ts | 4 ++-- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/packages/@glimmer-workspace/integration-tests/lib/modifiers.ts b/packages/@glimmer-workspace/integration-tests/lib/modifiers.ts index a749439c65..eb0e26717c 100644 --- a/packages/@glimmer-workspace/integration-tests/lib/modifiers.ts +++ b/packages/@glimmer-workspace/integration-tests/lib/modifiers.ts @@ -44,8 +44,8 @@ export class TestModifierManager return tag; } - getDebugName(definition?: object) { - return (definition as any).instance.constructor.name || ''; + getDebugName({ Klass }: TestModifierDefinitionState) { + return Klass?.name || ''; } getDebugInstance({ instance }: TestModifier) { diff --git a/packages/@glimmer/interfaces/lib/managers/internal/modifier.d.ts b/packages/@glimmer/interfaces/lib/managers/internal/modifier.d.ts index d49064171b..b717072d23 100644 --- a/packages/@glimmer/interfaces/lib/managers/internal/modifier.d.ts +++ b/packages/@glimmer/interfaces/lib/managers/internal/modifier.d.ts @@ -22,8 +22,8 @@ export interface InternalModifierManager< // the modifier's update hooks need to be called (if at all). getTag(modifier: TModifierInstanceState): UpdatableTag | null; - getDebugName(modifier: TModifierInstanceState): string; - getDebugInstance(modifier: TModifierInstanceState): unknown; + getDebugName(Modifier: TModifierDefinitionState): string; + getDebugInstance(Modifier: TModifierInstanceState): unknown; // At initial render, the modifier gets a chance to install itself on the // element it is managing. It can also return a bucket of state that diff --git a/packages/@glimmer/interfaces/lib/managers/modifier.d.ts b/packages/@glimmer/interfaces/lib/managers/modifier.d.ts index bf5e7f10a7..f6e0ae7c36 100644 --- a/packages/@glimmer/interfaces/lib/managers/modifier.d.ts +++ b/packages/@glimmer/interfaces/lib/managers/modifier.d.ts @@ -19,6 +19,6 @@ export interface ModifierManager { installModifier(instance: ModifierStateBucket, element: Element, args: Arguments): void; updateModifier(instance: ModifierStateBucket, args: Arguments): void; destroyModifier(instance: ModifierStateBucket, args: Arguments): void; - getDebugName?(definition?: object): string; + getDebugName?(factory?: unknown): string; getDebugInstance?(instance: ModifierStateBucket): any; } diff --git a/packages/@glimmer/manager/lib/public/modifier.ts b/packages/@glimmer/manager/lib/public/modifier.ts index 460bbbdc79..33c35aa3d7 100644 --- a/packages/@glimmer/manager/lib/public/modifier.ts +++ b/packages/@glimmer/manager/lib/public/modifier.ts @@ -38,7 +38,6 @@ export interface CustomModifierState { modifier: ModifierStateBucket; delegate: ModifierManager; args: Arguments; - definition?: object; } /** @@ -109,7 +108,6 @@ export class CustomModifierManager element, delegate, args, - definition, modifier, }; @@ -118,7 +116,8 @@ export class CustomModifierManager return state; } - getDebugName({ delegate, definition }: CustomModifierState) { + getDebugName(definition: object) { + const delegate = this.factory.prototype; if (typeof delegate?.getDebugName === 'function') { return delegate.getDebugName(definition); } diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts index a38816d8d3..446267546e 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts @@ -494,7 +494,7 @@ export class ComponentElementOperations implements ElementOperations { this.modifiers.push(modifier); if (vm.env.debugRenderTree !== undefined) { - const { manager, state } = modifier; + const { manager, state, definition } = modifier; // TODO: we need a stable object for the debugRenderTree as the key, add support for // the case where the state is a primitive, or if in practice we always have/require @@ -504,7 +504,7 @@ export class ComponentElementOperations implements ElementOperations { } let { element, constructing } = vm.elements(); - let name = manager.getDebugName(state); + let name = manager.getDebugName(definition.state); let instance = manager.getDebugInstance(state); assert(constructing, `Expected a constructing element in addModifier`); diff --git a/packages/@glimmer/runtime/lib/environment.ts b/packages/@glimmer/runtime/lib/environment.ts index 52ab7d11bc..46a1b5a18b 100644 --- a/packages/@glimmer/runtime/lib/environment.ts +++ b/packages/@glimmer/runtime/lib/environment.ts @@ -65,7 +65,7 @@ class TransactionImpl implements Transaction { () => manager.install(state), import.meta.env.DEV && `- While rendering:\n (instance of a \`${ - definition.resolvedName || manager.getDebugName(state) + definition.resolvedName || manager.getDebugName(definition.state) }\` modifier)` ); updateTag(modifierTag, tag); @@ -82,7 +82,7 @@ class TransactionImpl implements Transaction { () => manager.update(state), import.meta.env.DEV && `- While rendering:\n (instance of a \`${ - definition.resolvedName || manager.getDebugName(state) + definition.resolvedName || manager.getDebugName(definition.state) }\` modifier)` ); updateTag(modifierTag, tag);