diff --git a/packages/component-base/src/element-mixin.d.ts b/packages/component-base/src/element-mixin.d.ts index 8f72bb9747..5be90aa0f7 100644 --- a/packages/component-base/src/element-mixin.d.ts +++ b/packages/component-base/src/element-mixin.d.ts @@ -18,6 +18,4 @@ export declare function ElementMixin>( export declare class ElementMixinClass { static is: string; static version: string; - - protected static finalize(): void; } diff --git a/packages/component-base/src/element-mixin.js b/packages/component-base/src/element-mixin.js index 5f4f15d72a..9bcdc0eaba 100644 --- a/packages/component-base/src/element-mixin.js +++ b/packages/component-base/src/element-mixin.js @@ -38,9 +38,7 @@ const registered = new Set(); export const ElementMixin = (superClass) => class VaadinElementMixin extends DirMixin(superClass) { /** @protected */ - static finalize() { - super.finalize(); - + static _ensureRegistrations() { const { is } = this; // Registers a class prototype for telemetry purposes. @@ -66,5 +64,7 @@ export const ElementMixin = (superClass) => 'Vaadin components require the "standards mode" declaration. Please add to the HTML document.', ); } + + this.constructor._ensureRegistrations(); } }; diff --git a/packages/component-base/test/element-mixin.test.js b/packages/component-base/test/element-mixin.test.js index b14066c75b..48befdc785 100644 --- a/packages/component-base/test/element-mixin.test.js +++ b/packages/component-base/test/element-mixin.test.js @@ -40,9 +40,11 @@ describe('ElementMixin', () => { before(() => { ElementFoo = defineCE('element-foo'); + flush(); }); it('should store the class entry in registrations once instance created', () => { + expect(window.Vaadin.registrations.length).to.equal(0); document.createElement(ElementFoo.is); flush(); expect(window.Vaadin.registrations).to.be.instanceOf(Array);