Skip to content

Commit

Permalink
fix: adjust static attribute regex (#9551)
Browse files Browse the repository at this point in the history
a `+` was missing
Fixes sveltejs/vite-plugin-svelte#804
  • Loading branch information
dummdidumm committed Nov 20, 2023
1 parent 36b2c50 commit 77ba5e7
Show file tree
Hide file tree
Showing 5 changed files with 193 additions and 3 deletions.
5 changes: 5 additions & 0 deletions .changeset/khaki-turkeys-hunt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'svelte': patch
---

fix: adjust static attribute regex
2 changes: 1 addition & 1 deletion packages/svelte/src/compiler/parse/state/tag.js
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ function get_directive_type(name) {
if (name === 'in' || name === 'out' || name === 'transition') return 'Transition';
}

const regex_attribute_value = /^(?:"([^"]*)"|'([^'])*'|([^>\s]))/;
const regex_attribute_value = /^(?:"([^"]*)"|'([^'])*'|([^>\s]+))/;

/**
* @param {import('../index.js').Parser} parser
Expand Down
4 changes: 2 additions & 2 deletions packages/svelte/src/compiler/preprocess/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -253,9 +253,9 @@ function stringify_tag_attributes(attributes) {
}

const regex_style_tags =
/<!--[^]*?-->|<style((?:\s+[^=>'"\/]+=(?:"[^"]*"|'[^']*'|[^>\s])|\s+[^=>'"\/]+)*\s*)(?:\/>|>([\S\s]*?)<\/style>)/g;
/<!--[^]*?-->|<style((?:\s+[^=>'"\/]+=(?:"[^"]*"|'[^']*'|[^>\s]+)|\s+[^=>'"\/]+)*\s*)(?:\/>|>([\S\s]*?)<\/style>)/g;
const regex_script_tags =
/<!--[^]*?-->|<script((?:\s+[^=>'"\/]+=(?:"[^"]*"|'[^']*'|[^>\s])|\s+[^=>'"\/]+)*\s*)(?:\/>|>([\S\s]*?)<\/script>)/g;
/<!--[^]*?-->|<script((?:\s+[^=>'"\/]+=(?:"[^"]*"|'[^']*'|[^>\s]+)|\s+[^=>'"\/]+)*\s*)(?:\/>|>([\S\s]*?)<\/script>)/g;

/**
* Calculate the updates required to process all instances of the specified tag.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<script context=module>
export const foo = 'bar';
</script>

<script>
foo;
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
{
"html": {
"start": 62,
"end": 60,
"type": "Fragment",
"children": [
{
"start": 60,
"end": 62,
"type": "Text",
"raw": "\n\n",
"data": "\n\n"
}
]
},
"instance": {
"type": "Script",
"start": 62,
"end": 86,
"context": "default",
"content": {
"type": "Program",
"start": 70,
"end": 77,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 7,
"column": 0
}
},
"body": [
{
"type": "ExpressionStatement",
"start": 72,
"end": 76,
"loc": {
"start": {
"line": 6,
"column": 1
},
"end": {
"line": 6,
"column": 5
}
},
"expression": {
"type": "Identifier",
"start": 72,
"end": 75,
"loc": {
"start": {
"line": 6,
"column": 1
},
"end": {
"line": 6,
"column": 4
}
},
"name": "foo"
}
}
],
"sourceType": "module"
}
},
"module": {
"type": "Script",
"start": 0,
"end": 60,
"context": "module",
"content": {
"type": "Program",
"start": 23,
"end": 51,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"body": [
{
"type": "ExportNamedDeclaration",
"start": 25,
"end": 50,
"loc": {
"start": {
"line": 2,
"column": 1
},
"end": {
"line": 2,
"column": 26
}
},
"declaration": {
"type": "VariableDeclaration",
"start": 32,
"end": 50,
"loc": {
"start": {
"line": 2,
"column": 8
},
"end": {
"line": 2,
"column": 26
}
},
"declarations": [
{
"type": "VariableDeclarator",
"start": 38,
"end": 49,
"loc": {
"start": {
"line": 2,
"column": 14
},
"end": {
"line": 2,
"column": 25
}
},
"id": {
"type": "Identifier",
"start": 38,
"end": 41,
"loc": {
"start": {
"line": 2,
"column": 14
},
"end": {
"line": 2,
"column": 17
}
},
"name": "foo"
},
"init": {
"type": "Literal",
"start": 44,
"end": 49,
"loc": {
"start": {
"line": 2,
"column": 20
},
"end": {
"line": 2,
"column": 25
}
},
"value": "bar",
"raw": "'bar'"
}
}
],
"kind": "const"
},
"specifiers": [],
"source": null
}
],
"sourceType": "module"
}
}
}

0 comments on commit 77ba5e7

Please sign in to comment.