Я пишу синтаксический анализатор JavaScript и, тестируя его в библиотеке prototype.js, выдает ошибку в этом коде:
строка 4000:
while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) {
soFar = m[3];
parts.push( m[1] );
if ( m[2] ) {
extra = m[3];
break;
}
}
Я уменьшил это до этого:
while ( (a, b) == c ) {}
Это действительно правильный JavaScript? Согласно ECMA-262 цикл while имеет следующий синтаксис:
while ( Expression ) Statement
Какое выражение есть (a, b) == c
? Я не думал, что кортежи поддерживаются в JavaScript?