expect(ir.dynamic.children[0]).toMatchObject({
id: 1,
- dynamicFlags: DynamicFlag.REFERENCED,
+ flags: DynamicFlag.REFERENCED,
})
expect(ir.template[0]).toMatchObject({
type: IRNodeTypes.TEMPLATE_FACTORY,
let offset = 0
for (const [index, child] of children.entries()) {
- if (child.dynamicFlags & DynamicFlag.NON_TEMPLATE) {
+ if (child.flags & DynamicFlag.NON_TEMPLATE) {
offset--
}
const idx = Number(index) + offset
const id =
- child.dynamicFlags & DynamicFlag.REFERENCED
- ? child.dynamicFlags & DynamicFlag.INSERT
+ child.flags & DynamicFlag.REFERENCED
+ ? child.flags & DynamicFlag.INSERT
? child.anchor
: child.id
: null
export interface IRDynamicInfo {
id: number | null
- dynamicFlags: DynamicFlag
+ flags: DynamicFlag
anchor: number | null
children: IRDynamicInfo[]
}
export const genDefaultDynamic = (): IRDynamicInfo => ({
id: null,
- dynamicFlags: 0,
+ flags: DynamicFlag.NONE,
anchor: null,
children: [],
})
increaseId: () => globalId++,
reference() {
if (this.dynamic.id !== null) return this.dynamic.id
- this.dynamic.dynamicFlags |= DynamicFlag.REFERENCED
+ this.dynamic.flags |= DynamicFlag.REFERENCED
return (this.dynamic.id = this.increaseId())
},
registerEffect(expressions, operations) {
template: [],
templateIndex: -1,
dynamic: extend(genDefaultDynamic(), {
- dynamicFlags: DynamicFlag.REFERENCED,
+ flags: DynamicFlag.REFERENCED,
} satisfies Partial<IRDynamicInfo>),
effect: [],
operation: [],
let hasStatic = false
for (const [index, child] of ctx.dynamic.children.entries()) {
- if (!child || !(child.dynamicFlags & DynamicFlag.INSERT)) {
+ if (!child || !(child.flags & DynamicFlag.INSERT)) {
if (prevChildren.length) {
if (hasStatic) {
ctx.childrenTemplate[index - prevChildren.length] = `<!>`
- prevChildren[0].dynamicFlags -= DynamicFlag.NON_TEMPLATE
+ prevChildren[0].flags -= DynamicFlag.NON_TEMPLATE
const anchor = (prevChildren[0].anchor = ctx.increaseId())
ctx.registerOperation({
)
} else {
const id = ctx.reference()
- ctx.dynamic.dynamicFlags |= DynamicFlag.INSERT | DynamicFlag.NON_TEMPLATE
+ ctx.dynamic.flags |= DynamicFlag.INSERT | DynamicFlag.NON_TEMPLATE
ctx.registerOperation({
type: IRNodeTypes.CREATE_TEXT_NODE,
loc: node.loc,
dir.exp = createSimpleExpression(`true`, false, loc)
}
- context.dynamic.dynamicFlags |= DynamicFlag.NON_TEMPLATE
+ context.dynamic.flags |= DynamicFlag.NON_TEMPLATE
if (dir.name === 'if') {
const id = context.reference()
- context.dynamic.dynamicFlags |= DynamicFlag.INSERT
+ context.dynamic.flags |= DynamicFlag.INSERT
const [branch, onExit] = createIfBranch(node, context)
return () => {
) {
if (__DEV__ && sibling.type === NodeTypes.COMMENT)
comments.unshift(sibling)
- siblingsDynamic[i].dynamicFlags |= DynamicFlag.NON_TEMPLATE
+ siblingsDynamic[i].flags |= DynamicFlag.NON_TEMPLATE
templates[i] = null
} else {
break
node,
templateIndex: -1,
dynamic: extend(genDefaultDynamic(), {
- dynamicFlags: DynamicFlag.REFERENCED,
+ flags: DynamicFlag.REFERENCED,
} satisfies Partial<IRDynamicInfo>),
effect: [],
operation: [],