@@ -206,7 +206,7 @@ function parseScript(
206206 */
207207export function parseScriptSetupElements (
208208scriptSetupElement :VElement ,
209- scriptElement :VElement ,
209+ scriptElements :VElement [ ] ,
210210sfcCode :string ,
211211linesAndColumns :LinesAndColumns ,
212212originalParserOptions :ParserOptions ,
@@ -216,7 +216,7 @@ export function parseScriptSetupElements(
216216)
217217const scriptSetupModuleCodeBlocks = getScriptSetupModuleCodeBlocks (
218218scriptSetupElement ,
219- scriptElement ,
219+ scriptElements ,
220220sfcCode ,
221221linesAndColumns ,
222222parserOptions ,
@@ -283,7 +283,7 @@ export function parseScriptSetupElements(
283283
284284// Adjust AST and tokens
285285if ( result . ast . tokens != null ) {
286- for ( const node of [ scriptSetupElement , scriptElement ] ) {
286+ for ( const node of [ scriptSetupElement , ... scriptElements ] ) {
287287const startTag = node . startTag
288288const endTag = node . endTag
289289
@@ -314,7 +314,7 @@ export function parseScriptSetupElements(
314314result . ast . loc . start =
315315locationCalculator . getLocFromIndex ( programStartOffset )
316316if ( result . ast . start != null ) {
317- result . ast . start = [ scriptSetupElement , scriptElement ] . reduce (
317+ result . ast . start = [ scriptSetupElement , ... scriptElements ] . reduce (
318318( start , node ) => {
319319const textNode = node . children [ 0 ]
320320return Math . min (
@@ -335,7 +335,7 @@ export function parseScriptSetupElements(
335335result . ast . range [ 1 ] = programEndOffset
336336result . ast . loc . end = locationCalculator . getLocFromIndex ( programEndOffset )
337337if ( result . ast . end != null ) {
338- result . ast . end = [ scriptSetupElement , scriptElement ] . reduce (
338+ result . ast . end = [ scriptSetupElement , ... scriptElements ] . reduce (
339339( end , node ) => {
340340const textNode = node . children [ 0 ]
341341return Math . max (
@@ -447,7 +447,7 @@ export function parseScriptSetupElements(
447447 */
448448function getScriptSetupModuleCodeBlocks (
449449scriptSetupElement :VElement ,
450- scriptElement :VElement ,
450+ scriptElements :VElement [ ] ,
451451sfcCode :string ,
452452linesAndColumns :LinesAndColumns ,
453453parserOptions :ParserOptions ,
@@ -459,24 +459,30 @@ function getScriptSetupModuleCodeBlocks(
459459parserOptions ,
460460)
461461
462- const textNode = scriptElement . children [ 0 ]
463- if ( textNode == null || textNode . type !== "VText" ) {
464- return scriptSetupCodeBlocks
462+ const codeBlocks = new CodeBlocks ( )
463+
464+ for ( const scriptElement of scriptElements ) {
465+ const textNode = scriptElement . children [ 0 ]
466+ if ( textNode == null || textNode . type !== "VText" ) {
467+ continue
468+ }
469+
470+ const [ scriptStartOffset , scriptEndOffset ] = textNode . range
471+
472+ codeBlocks . append (
473+ sfcCode . slice ( scriptStartOffset , scriptEndOffset ) ,
474+ scriptStartOffset ,
475+ )
465476}
466477
467- const [ scriptStartOffset , scriptEndOffset ] = textNode . range
468- const codeBlocks = new CodeBlocks ( )
469- codeBlocks . append (
470- sfcCode . slice ( scriptStartOffset , scriptEndOffset ) ,
471- scriptStartOffset ,
472- )
473478if ( scriptSetupCodeBlocks == null ) {
474479return { codeBlocks}
475480}
476481
477482codeBlocks . appendSplitPunctuators ( ";" )
478483const scriptSetupOffset = codeBlocks . length
479484codeBlocks . appendCodeBlocks ( scriptSetupCodeBlocks . codeBlocks )
485+
480486return {
481487 codeBlocks,
482488scriptSetupBlockRange :[