Lint and format src/compiler/parse/read/script.js

pull/8569/head
Simon Holthausen 3 years ago
parent b5d4f92f95
commit db8b24eff5

@ -11,17 +11,16 @@ const regex_starts_with_closing_script_tag = /^<\/script\s*>/;
* @returns {string} * @returns {string}
*/ */
function get_context(parser, attributes, start) { function get_context(parser, attributes, start) {
const context = attributes.find((attribute) => attribute.name === 'context'); const context = attributes.find((attribute) => attribute.name === 'context');
if (!context) if (!context) return 'default';
return 'default'; if (context.value.length !== 1 || context.value[0].type !== 'Text') {
if (context.value.length !== 1 || context.value[0].type !== 'Text') { parser.error(parser_errors.invalid_script_context_attribute, start);
parser.error(parser_errors.invalid_script_context_attribute, start); }
} const value = context.value[0].data;
const value = context.value[0].data; if (value !== 'module') {
if (value !== 'module') { parser.error(parser_errors.invalid_script_context_value, context.start);
parser.error(parser_errors.invalid_script_context_value, context.start); }
} return value;
return value;
} }
/** /**
@ -31,35 +30,31 @@ function get_context(parser, attributes, start) {
* @returns {Script} * @returns {Script}
*/ */
export default function read_script(parser, start, attributes) { export default function read_script(parser, start, attributes) {
const script_start = parser.index; const script_start = parser.index;
const data = parser.read_until(regex_closing_script_tag, parser_errors.unclosed_script); const data = parser.read_until(regex_closing_script_tag, parser_errors.unclosed_script);
if (parser.index >= parser.template.length) { if (parser.index >= parser.template.length) {
parser.error(parser_errors.unclosed_script); parser.error(parser_errors.unclosed_script);
} }
const source = parser.template.slice(0, script_start).replace(regex_not_newline_characters, ' ') + data; const source =
parser.read(regex_starts_with_closing_script_tag); parser.template.slice(0, script_start).replace(regex_not_newline_characters, ' ') + data;
parser.read(regex_starts_with_closing_script_tag);
/** /**
* @type {Program} * @type {Program}
*/ */
let ast; let ast;
try { try {
ast = acorn.parse(source); ast = acorn.parse(source);
} } catch (err) {
catch (err) { parser.acorn_error(err);
parser.acorn_error(err); }
} // TODO is this necessary?
// TODO is this necessary? ast.start = script_start;
ast.start = script_start; return {
return { type: 'Script',
type: 'Script', start,
start, end: parser.index,
end: parser.index, context: get_context(parser, attributes, start),
context: get_context(parser, attributes, start), content: ast
content: ast };
};
} }

Loading…
Cancel
Save