]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor(compiler-vapor): remove loc in IR
author三咲智子 Kevin Deng <sxzz@sxzz.moe>
Wed, 31 Jan 2024 09:37:54 +0000 (17:37 +0800)
committer三咲智子 Kevin Deng <sxzz@sxzz.moe>
Wed, 31 Jan 2024 09:37:54 +0000 (17:37 +0800)
13 files changed:
packages/compiler-vapor/src/ir.ts
packages/compiler-vapor/src/transform.ts
packages/compiler-vapor/src/transforms/transformElement.ts
packages/compiler-vapor/src/transforms/transformInterpolation.ts
packages/compiler-vapor/src/transforms/transformRef.ts
packages/compiler-vapor/src/transforms/vBind.ts
packages/compiler-vapor/src/transforms/vFor.ts
packages/compiler-vapor/src/transforms/vHtml.ts
packages/compiler-vapor/src/transforms/vIf.ts
packages/compiler-vapor/src/transforms/vModel.ts
packages/compiler-vapor/src/transforms/vOn.ts
packages/compiler-vapor/src/transforms/vShow.ts
packages/compiler-vapor/src/transforms/vText.ts

index 6962a1fff99ab0fafd7b7266902334a290f07b76..a2f2f2f7c24c9c0fb78f26ef697f979f8d59c22e 100644 (file)
@@ -4,7 +4,6 @@ import type {
   DirectiveNode,
   RootNode,
   SimpleExpressionNode,
-  SourceLocation,
   TemplateChildNode,
 } from '@vue/compiler-dom'
 import type { Prettify } from '@vue/shared'
@@ -37,7 +36,6 @@ export enum IRNodeTypes {
 
 export interface BaseIRNode {
   type: IRNodeTypes
-  loc: SourceLocation
 }
 
 export type VaporHelper = keyof typeof import('@vue/runtime-vapor')
index 00078f57ce3dce257b11bc45ed68a0c5070c2cb8..3bd7ada2be59767753b2367252444c53a3dbd230 100644 (file)
@@ -197,12 +197,10 @@ function createRootContext(
         templateNode = {
           type: IRNodeTypes.TEMPLATE_FACTORY,
           template: this.template,
-          loc: node.loc,
         }
       } else {
         templateNode = {
           type: IRNodeTypes.FRAGMENT_FACTORY,
-          loc: node.loc,
         }
       }
       root.template.push(templateNode)
@@ -243,7 +241,6 @@ export function transform(
     type: IRNodeTypes.ROOT,
     node: root,
     source: root.source,
-    loc: root.loc,
     template: [],
     templateIndex: -1,
     dynamic: extend(genDefaultDynamic(), {
@@ -327,34 +324,32 @@ function transformChildren(ctx: TransformContext<RootNode | ElementNode>) {
   processDynamicChildren(ctx)
 }
 
-function processDynamicChildren(ctx: TransformContext<RootNode | ElementNode>) {
-  const { node } = ctx
-
+function processDynamicChildren(
+  context: TransformContext<RootNode | ElementNode>,
+) {
   let prevChildren: IRDynamicInfo[] = []
   let hasStatic = false
 
-  for (const [index, child] of ctx.dynamic.children.entries()) {
+  for (const [index, child] of context.dynamic.children.entries()) {
     if (!child || !(child.flags & DynamicFlag.INSERT)) {
       if (prevChildren.length) {
         if (hasStatic) {
-          ctx.childrenTemplate[index - prevChildren.length] = `<!>`
+          context.childrenTemplate[index - prevChildren.length] = `<!>`
 
           prevChildren[0].flags -= DynamicFlag.NON_TEMPLATE
-          const anchor = (prevChildren[0].anchor = ctx.increaseId())
+          const anchor = (prevChildren[0].anchor = context.increaseId())
 
-          ctx.registerOperation({
+          context.registerOperation({
             type: IRNodeTypes.INSERT_NODE,
-            loc: node.loc,
             element: prevChildren.map(child => child.id!),
-            parent: ctx.reference(),
+            parent: context.reference(),
             anchor,
           })
         } else {
-          ctx.registerOperation({
+          context.registerOperation({
             type: IRNodeTypes.PREPEND_NODE,
-            loc: node.loc,
             elements: prevChildren.map(child => child.id!),
-            parent: ctx.reference(),
+            parent: context.reference(),
           })
         }
       }
@@ -365,12 +360,11 @@ function processDynamicChildren(ctx: TransformContext<RootNode | ElementNode>) {
 
     prevChildren.push(child)
 
-    if (index === ctx.dynamic.children.length - 1) {
-      ctx.registerOperation({
+    if (index === context.dynamic.children.length - 1) {
+      context.registerOperation({
         type: IRNodeTypes.APPEND_NODE,
-        loc: node.loc,
         elements: prevChildren.map(child => child.id!),
-        parent: ctx.reference(),
+        parent: context.reference(),
       })
     }
   }
index 1e519935c9a9daea8ece476f0b3a54e0d951aaa9..aafda37358620ccb8b4b1c7f1cb772cd02bf2352 100644 (file)
@@ -59,7 +59,7 @@ function transformProp(
   node: ElementNode,
   context: TransformContext<ElementNode>,
 ): void {
-  const { name, loc } = prop
+  const { name } = prop
   if (isReservedProp(name)) return
 
   if (prop.type === NodeTypes.ATTRIBUTE) {
@@ -76,7 +76,6 @@ function transformProp(
       type: IRNodeTypes.WITH_DIRECTIVE,
       element: context.reference(),
       dir: prop,
-      loc,
     })
   }
 }
index 56a870ac1f5356754debdd923d87186191b575ce..255ff6763aafedfc608225193d654d1c71a1269a 100644 (file)
@@ -19,7 +19,6 @@ export const transformInterpolation: NodeTransform = (node, ctx) => {
       [
         {
           type: IRNodeTypes.SET_TEXT,
-          loc: node.loc,
           element: parentId,
           value: expr,
         },
@@ -30,7 +29,6 @@ export const transformInterpolation: NodeTransform = (node, ctx) => {
     ctx.dynamic.flags |= DynamicFlag.INSERT | DynamicFlag.NON_TEMPLATE
     ctx.registerOperation({
       type: IRNodeTypes.CREATE_TEXT_NODE,
-      loc: node.loc,
       id,
     })
     ctx.registerEffect(
@@ -38,7 +36,6 @@ export const transformInterpolation: NodeTransform = (node, ctx) => {
       [
         {
           type: IRNodeTypes.SET_TEXT,
-          loc: node.loc,
           element: id,
           value: expr,
         },
index 141b01fbb175a0d07f096ea32e199854f608f9e8..d3e1976af689129c63e25413c70566e30a4a3cda 100644 (file)
@@ -26,6 +26,5 @@ export const transformRef: NodeTransform = (node, context) => {
     type: IRNodeTypes.SET_REF,
     element: context.reference(),
     value,
-    loc: dir.loc,
   })
 }
index 3443247219bad4cbd39302ab2267d7c7e5980ad7..128a67d807ab94f7a4e3df0806eed9f3c19f53ea 100644 (file)
@@ -51,7 +51,6 @@ export const transformVBind: DirectiveTransform = (dir, node, context) => {
     [
       {
         type: IRNodeTypes.SET_PROP,
-        loc: dir.loc,
         element: context.reference(),
         key: arg,
         value: exp,
index dd61405e3d178bf95ba0fda9e65bd76257245d78..a70f1ec81972c921a473344a8bf4c5f0c92268c5 100644 (file)
@@ -50,7 +50,6 @@ export function processFor(
   const id = context.reference()
   const render: BlockFunctionIRNode = {
     type: IRNodeTypes.BLOCK_FUNCTION,
-    loc: node.loc,
     node,
     templateIndex: -1,
     dynamic: extend(genDefaultDynamic(), {
@@ -69,7 +68,6 @@ export function processFor(
     context.registerOperation({
       type: IRNodeTypes.FOR,
       id,
-      loc: dir.loc,
       source: source as SimpleExpressionNode,
       value: value as SimpleExpressionNode | undefined,
       key: key as SimpleExpressionNode | undefined,
index f509c7196745939f54b6352623801978b860901d..8b851b4985756c3c17ec74168a15c4272d909c10 100644 (file)
@@ -21,7 +21,6 @@ export const transformVHtml: DirectiveTransform = (dir, node, context) => {
     [
       {
         type: IRNodeTypes.SET_HTML,
-        loc: dir.loc,
         element: context.reference(),
         value: exp || '""',
       },
index 9c9731a81e41dc4ee36070930158ddeb200a0fce..ed70d8b7d2d77f7c630116bbdf8022af4ca62e6f 100644 (file)
@@ -51,7 +51,6 @@ export function processIf(
       context.registerOperation({
         type: IRNodeTypes.IF,
         id,
-        loc: dir.loc,
         condition: dir.exp!,
         positive: branch,
       })
@@ -130,7 +129,6 @@ export function processIf(
       lastIfNode.negative = {
         type: IRNodeTypes.IF,
         id: -1,
-        loc: dir.loc,
         condition: dir.exp!,
         positive: branch,
       }
@@ -148,7 +146,6 @@ export function createIfBranch(
 
   const branch: BlockFunctionIRNode = {
     type: IRNodeTypes.BLOCK_FUNCTION,
-    loc: node.loc,
     node,
     templateIndex: -1,
     dynamic: extend(genDefaultDynamic(), {
index a4fe26f9a92cdf8aef454b3f1a228275c1aecade..29bccaa32dacd1cc5f8153a6ade4d96b894b55c2 100644 (file)
@@ -16,7 +16,7 @@ import type { DirectiveTransform } from '../transform'
 import { IRNodeTypes, type VaporHelper } from '../ir'
 
 export const transformVModel: DirectiveTransform = (dir, node, context) => {
-  const { exp, arg, loc } = dir
+  const { exp, arg } = dir
   if (!exp) {
     context.options.onError(
       createCompilerError(ErrorCodes.X_V_MODEL_NO_EXPRESSION, dir.loc),
@@ -140,7 +140,6 @@ export const transformVModel: DirectiveTransform = (dir, node, context) => {
     key: (arg && arg.isStatic ? arg.content : arg) || 'modelValue',
     value: exp,
     isComponent,
-    loc: loc,
   })
 
   if (runtimeDirective)
@@ -148,7 +147,6 @@ export const transformVModel: DirectiveTransform = (dir, node, context) => {
       type: IRNodeTypes.WITH_DIRECTIVE,
       element: context.reference(),
       dir,
-      loc,
       builtin: runtimeDirective,
     })
 
index f2545c602dc1ada4716b27baf82643697dc18a1a..c4017e27cee37dd6b62bf15b6d7a545fb7e21d10 100644 (file)
@@ -72,7 +72,6 @@ export const transformVOn: DirectiveTransform = (dir, node, context) => {
 
   const operation: SetEventIRNode = {
     type: IRNodeTypes.SET_EVENT,
-    loc,
     element: context.reference(),
     key: arg,
     value: exp,
index 1604b27e7dc1e775bb67b508803aff1184f1d800..7be355396e7cfc9e7eb9dad7b93a55ca18ccd888 100644 (file)
@@ -14,6 +14,5 @@ export const transformVShow: DirectiveTransform = (dir, node, context) => {
     type: IRNodeTypes.WITH_DIRECTIVE,
     element: context.reference(),
     dir,
-    loc,
   })
 }
index fbeb5cd5df03cf8b4755add825c62e9b8ec7f5a0..dfd2af392f2c838fbc0f7b68913475c396e80a71 100644 (file)
@@ -21,7 +21,6 @@ export const transformVText: DirectiveTransform = (dir, node, context) => {
     [
       {
         type: IRNodeTypes.SET_TEXT,
-        loc: dir.loc,
         element: context.reference(),
         value: exp || '""',
       },