Skip to content

Commit a0f9aaa

Browse files
committed
adjust parsing of directives to preserve line/column info
1 parent c0ba6fb commit a0f9aaa

File tree

1 file changed

+4
-13
lines changed

1 file changed

+4
-13
lines changed

src/parse/read/directives.ts

+4-13
Original file line numberDiff line numberDiff line change
@@ -101,35 +101,26 @@ Object.keys(DIRECTIVES).forEach(name => {
101101
});
102102

103103
function readExpression(parser: Parser, start: number, quoteMark: string|null) {
104-
let str = '';
104+
let i = start;
105105
let escaped = false;
106106

107-
for (let i = start; i < parser.template.length; i += 1) {
107+
for (; i < parser.template.length; i += 1) {
108108
const char = parser.template[i];
109109

110110
if (quoteMark) {
111111
if (char === quoteMark) {
112-
if (escaped) {
113-
str += quoteMark;
114-
} else {
115-
break;
116-
}
112+
if (!escaped) break;
117113
} else if (escaped) {
118-
str += '\\' + char;
119114
escaped = false;
120115
} else if (char === '\\') {
121116
escaped = true;
122-
} else {
123-
str += char;
124117
}
125118
} else if (/[\s\/>]/.test(char)) {
126119
break;
127-
} else {
128-
str += char;
129120
}
130121
}
131122

132-
const expression = parseExpressionAt(repeat(' ', start) + str, start, {
123+
const expression = parseExpressionAt(parser.template.slice(0, i), start, {
133124
ecmaVersion: 9,
134125
});
135126
parser.index = expression.end;

0 commit comments

Comments
 (0)