tweak-parser
Rich Harris 3 months ago
parent e1240c610d
commit 7d9df9afc3

@ -27,16 +27,15 @@ export function get_loose_identifier(parser, opening_token) {
/**
* @param {Parser} parser
* @param {string} [opening_token]
* @param {boolean} [disallow_loose]
* @returns {Expression}
*/
export default function read_expression(parser, opening_token, disallow_loose) {
export default function read_expression(parser, opening_token) {
try {
return /** @type {Expression} */ (parse_expression_at(parser, parser.template, parser.index));
} catch (err) {
// If we are in an each loop we need the error to be thrown in cases like
// `as { y = z }` so we still throw and handle the error there
if (parser.loose && !disallow_loose) {
if (parser.loose) {
const expression = get_loose_identifier(parser, opening_token);
if (expression) {
return expression;

@ -93,7 +93,9 @@ function open(parser) {
// we get a valid expression
while (!expression) {
try {
expression = read_expression(parser, undefined, true);
expression = /** @type {Expression} */ (
parse_expression_at(parser, parser.template, parser.index)
);
} catch (err) {
end = /** @type {any} */ (err).position[0] - 2;

Loading…
Cancel
Save