Convert src/compiler/compile/nodes/shared/Tag.ts to JavaScript

pull/8569/head
Simon Holthausen 3 years ago
parent c409d1bbb8
commit a3e6feb3bd

@ -1,27 +1,36 @@
import Node from './Node'; import Node from './Node.js';
import Expression from './Expression'; import Expression from './Expression.js';
/** @extends Node */
export default class Tag extends Node { export default class Tag extends Node {
type: 'MustacheTag' | 'RawMustacheTag';
expression: Expression;
should_cache: boolean;
/** @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) { constructor(component, parent, scope, info) {
super(component, parent, scope, info); super(component, parent, scope, info);
component.tags.push(this); component.tags.push(this);
this.cannot_use_innerhtml(); this.cannot_use_innerhtml();
this.expression = new Expression(component, this, scope, info.expression); this.expression = new Expression(component, this, scope, info.expression);
this.should_cache = this.should_cache =
info.expression.type !== 'Identifier' || info.expression.type !== 'Identifier' ||
(this.expression.dependencies.size && scope.names.has(info.expression.name)); (this.expression.dependencies.size && scope.names.has(info.expression.name));
} }
is_dependencies_static() { is_dependencies_static() {
return ( return (this.expression.dynamic_contextual_dependencies().length === 0 &&
this.expression.dynamic_contextual_dependencies().length === 0 && this.expression.dynamic_dependencies().length === 0);
this.expression.dynamic_dependencies().length === 0
);
} }
check_if_content_dynamic() { check_if_content_dynamic() {
if (!this.is_dependencies_static()) { if (!this.is_dependencies_static()) {
@ -29,3 +38,7 @@ export default class Tag extends Node {
} }
} }
} }

Loading…
Cancel
Save