|
@ -1256,7 +1256,21 @@ void duk_lexer_parse_js_input_element(duk_lexer_ctx *lex_ctx, |
|
|
advtok = DUK__ADVTOK(1, DUK_TOK_COMMA); |
|
|
advtok = DUK__ADVTOK(1, DUK_TOK_COMMA); |
|
|
break; |
|
|
break; |
|
|
case DUK_ASC_LANGLE: /* '<' */ |
|
|
case DUK_ASC_LANGLE: /* '<' */ |
|
|
if (DUK__L1() == DUK_ASC_LANGLE && DUK__L2() == DUK_ASC_EQUALS) { |
|
|
if (DUK__L1() == DUK_ASC_EXCLAMATION && DUK__L2() == DUK_ASC_MINUS && DUK__L3() == DUK_ASC_MINUS) { |
|
|
|
|
|
/*
|
|
|
|
|
|
* ES6: B.1.3, handle "<!--" SingleLineHTMLOpenComment |
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
/* DUK__ADVANCECHARS(lex_ctx, 4) would be correct here, but it is unnecessary */ |
|
|
|
|
|
for (;;) { |
|
|
|
|
|
x = DUK__L0(); |
|
|
|
|
|
if (x < 0 || duk_unicode_is_line_terminator(x)) { |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
DUK__ADVANCECHARS(lex_ctx, 1); |
|
|
|
|
|
} |
|
|
|
|
|
goto restart; /* line terminator will be handled on next round */ |
|
|
|
|
|
} else if (DUK__L1() == DUK_ASC_LANGLE && DUK__L2() == DUK_ASC_EQUALS) { |
|
|
advtok = DUK__ADVTOK(3, DUK_TOK_ALSHIFT_EQ); |
|
|
advtok = DUK__ADVTOK(3, DUK_TOK_ALSHIFT_EQ); |
|
|
} else if (DUK__L1() == DUK_ASC_EQUALS) { |
|
|
} else if (DUK__L1() == DUK_ASC_EQUALS) { |
|
|
advtok = DUK__ADVTOK(2, DUK_TOK_LE); |
|
|
advtok = DUK__ADVTOK(2, DUK_TOK_LE); |
|
|