]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix: resolve options for parser
author三咲智子 Kevin Deng <sxzz@sxzz.moe>
Wed, 6 Dec 2023 06:37:40 +0000 (14:37 +0800)
committer三咲智子 Kevin Deng <sxzz@sxzz.moe>
Wed, 6 Dec 2023 10:48:45 +0000 (18:48 +0800)
ref: https://github.com/vuejs/core/pull/9760

packages/compiler-core/src/compile.ts
packages/compiler-vapor/src/compile.ts

index 6ae90907f97e1d4c11728d1b073825335ebe0055..d5a9b0194bebb0f405175f64de41464cc1d89447 100644 (file)
@@ -82,7 +82,10 @@ export function baseCompile(
     onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED))
   }
 
-  const ast = isString(source) ? baseParse(source, options) : source
+  const resolvedOptions = extend({}, options, {
+    prefixIdentifiers
+  })
+  const ast = isString(source) ? baseParse(source, resolvedOptions) : source
   const [nodeTransforms, directiveTransforms] =
     getBaseTransformPreset(prefixIdentifiers)
 
@@ -95,8 +98,7 @@ export function baseCompile(
 
   transform(
     ast,
-    extend({}, options, {
-      prefixIdentifiers,
+    extend({}, resolvedOptions, {
       nodeTransforms: [
         ...nodeTransforms,
         ...(options.nodeTransforms || []) // user transforms
@@ -109,10 +111,5 @@ export function baseCompile(
     })
   )
 
-  return generate(
-    ast,
-    extend({}, options, {
-      prefixIdentifiers
-    })
-  )
+  return generate(ast, resolvedOptions)
 }
index 7b745fd37455cd8a5e3fafff5a7328ddad694475..5a5c0cc1466cd2066ea14af6f16808bebe1e2d2e 100644 (file)
@@ -49,7 +49,10 @@ export function compile(
   //   onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED))
   // }
 
-  const ast = isString(source) ? parse(source, options) : source
+  const resolvedOptions = extend({}, options, {
+    prefixIdentifiers,
+  })
+  const ast = isString(source) ? parse(source, resolvedOptions) : source
   const [nodeTransforms, directiveTransforms] =
     getBaseTransformPreset(prefixIdentifiers)
 
@@ -63,7 +66,6 @@ export function compile(
   const ir = transform(
     ast,
     extend({}, options, {
-      prefixIdentifiers,
       nodeTransforms: [
         ...nodeTransforms,
         ...(options.nodeTransforms || []), // user transforms
@@ -76,12 +78,7 @@ export function compile(
     }),
   )
 
-  return generate(
-    ir,
-    extend({}, options, {
-      prefixIdentifiers,
-    }),
-  )
+  return generate(ir, resolvedOptions)
 }
 
 export type TransformPreset = [