]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(compiler-core): use the same resolved options for all compile stages (#9760)
author三咲智子 Kevin Deng <sxzz@sxzz.moe>
Wed, 6 Dec 2023 06:41:21 +0000 (14:41 +0800)
committerGitHub <noreply@github.com>
Wed, 6 Dec 2023 06:41:21 +0000 (14:41 +0800)
packages/compiler-core/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)
 }