diff --git a/src/js-tokens.ts b/src/js-tokens.ts
index 2f0f9d4..01f4372 100644
--- a/src/js-tokens.ts
+++ b/src/js-tokens.ts
@@ -26,6 +26,11 @@ export function stripLiteralJsTokens(code: string, options?: StripLiteralOptions
}
if (token.type === 'StringLiteral') {
+ // js-token sees exotic vue prop value as an unclosed string literal
+ if (!token.closed) {
+ result += token.value
+ continue
+ }
const body = token.value.slice(1, -1)
if (filter(body)) {
result += token.value[0] + FILL.repeat(body.length) + token.value[token.value.length - 1]
diff --git a/test/fixtures/vitest-5387.output.vue b/test/fixtures/vitest-5387.output.vue
new file mode 100644
index 0000000..58989cb
--- /dev/null
+++ b/test/fixtures/vitest-5387.output.vue
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/test/fixtures/vitest-5387.vue b/test/fixtures/vitest-5387.vue
new file mode 100644
index 0000000..4c9230e
--- /dev/null
+++ b/test/fixtures/vitest-5387.vue
@@ -0,0 +1,8 @@
+
+