]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(compiler-sfc): avoid script setup marker showing up in devtools
authorEvan You <yyx990803@gmail.com>
Mon, 28 Jun 2021 22:48:38 +0000 (18:48 -0400)
committerEvan You <yyx990803@gmail.com>
Mon, 28 Jun 2021 22:48:38 +0000 (18:48 -0400)
packages/compiler-sfc/src/compileScript.ts

index 3e72da9cf56e82204b12dd80c88bebae3fe701f0..cfc5f8021ac4356811f3464c2167ceee876c07ed 100644 (file)
@@ -1121,15 +1121,22 @@ export function compileScript(
         allBindings[key] = true
       }
     }
-    const keys = Object.keys(allBindings)
-    if (!__TEST__) {
-      // the `__isScriptSetup: true` flag is used by componentPublicInstance
-      // proxy to allow properties that start with $ or _
-      keys.push(`__isScriptSetup: true`)
-    }
-    returned = `{ ${keys.join(', ')} }`
+    returned = `{ ${Object.keys(allBindings).join(', ')} }`
+  }
+
+  if (!options.inlineTemplate && !__TEST__) {
+    // in non-inline mode, the `__isScriptSetup: true` flag is used by
+    // componentPublicInstance proxy to allow properties that start with $ or _
+    s.appendRight(
+      endOffset,
+      `\nconst __returned__ = ${returned}\n` +
+        `Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true })\n` +
+        `return __returned__` +
+        `\n}\n\n`
+    )
+  } else {
+    s.appendRight(endOffset, `\nreturn ${returned}\n}\n\n`)
   }
-  s.appendRight(endOffset, `\nreturn ${returned}\n}\n\n`)
 
   // 11. finalize default export
   let runtimeOptions = ``