From a3e6feb3bd21bf7d947c01002787cbfd830eae60 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Fri, 12 May 2023 17:28:52 +0200 Subject: [PATCH] Convert src/compiler/compile/nodes/shared/Tag.ts to JavaScript --- src/compiler/compile/nodes/shared/Tag.ts | 69 ++++++++++++++---------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/src/compiler/compile/nodes/shared/Tag.ts b/src/compiler/compile/nodes/shared/Tag.ts index 19ba1c20c0..f1251367e6 100644 --- a/src/compiler/compile/nodes/shared/Tag.ts +++ b/src/compiler/compile/nodes/shared/Tag.ts @@ -1,31 +1,44 @@ -import Node from './Node'; -import Expression from './Expression'; +import Node from './Node.js'; +import Expression from './Expression.js'; +/** @extends Node */ export default class Tag extends Node { - type: 'MustacheTag' | 'RawMustacheTag'; - expression: Expression; - should_cache: boolean; - - constructor(component, parent, scope, info) { - super(component, parent, scope, info); - component.tags.push(this); - this.cannot_use_innerhtml(); - - this.expression = new Expression(component, this, scope, info.expression); - - this.should_cache = - info.expression.type !== 'Identifier' || - (this.expression.dependencies.size && scope.names.has(info.expression.name)); - } - is_dependencies_static() { - return ( - this.expression.dynamic_contextual_dependencies().length === 0 && - this.expression.dynamic_dependencies().length === 0 - ); - } - check_if_content_dynamic() { - if (!this.is_dependencies_static()) { - this.not_static_content(); - } - } + + /** @type {'MustacheTag' | 'RawMustacheTag'} */ + type; + + /** @type {import('./Expression.js').default} */ + expression; + + /** @type {boolean} */ + should_cache; + + /** + * @param {any} component * + * @param {any} parent * + * @param {any} scope * + * @param {any} info undefined + */ + constructor(component, parent, scope, info) { + super(component, parent, scope, info); + component.tags.push(this); + this.cannot_use_innerhtml(); + this.expression = new Expression(component, this, scope, info.expression); + this.should_cache = + info.expression.type !== 'Identifier' || + (this.expression.dependencies.size && scope.names.has(info.expression.name)); + } + is_dependencies_static() { + return (this.expression.dynamic_contextual_dependencies().length === 0 && + this.expression.dynamic_dependencies().length === 0); + } + check_if_content_dynamic() { + if (!this.is_dependencies_static()) { + this.not_static_content(); + } + } } + + + +