Цитата:
Это самый главный момент - это именно RuntimeError, не ParseError (SyntaxError). Соответственно, если ещё и функция iff существует, то в этом месте ошибки вообще не будет (а вот такие ошибки уже являются ошибками логики программы - программа полностью рабочая и нерабочая одновременно). Причина и следствие ясны. Возможно ли как-то избавиться от RuntimeError (именно это я имел в виду, когда спрашивал про избавление от подобного типа ошибки), но не допустить ошибки в логике программы? Т.е. можно, конечно, объявить функцию iff, и RuntimeError-a не будет, но это ещё больше усугубит дело, т.к. ошибка не будет отловлена. Цитата:
|
Цитата:
|
Цитата:
Меня как раз интересует, можно ли сделать так, чтобы был SyntaxError на стадии парсинга? Чтобы мы отловили ошибку с iff ещё до запуска и не допустили случая логической ошибки, если будет существовать функция iff. В сущности, все подсказки были даны в заголовке темы (две из них уже разобраны). |
ну остается только механизм. это обьявление функции при которой ключевое слово funcion отсутсвует.
|
Цитата:
Также, задействовали "опечатку". Осталась "стилистика кода". Отмечу, что я обычно использую стилистику не ту, что была приведена в примере, хотя в текущем проекте у нас принята именно стилистика из примера. |
пока пришла в голову только использовать обязательно конечный else, таким образом вызывая именно ошибку парсинга
непонятно что делать с другими стандартными структырами типа циклов do,do-while, и условий |
Если не будет точки с запятой внутри фигурных скобок -
Цитата:
iff (!x) {
x = 1;
}
|
Цитата:
хотя не факт ибо, такой подход все еще не решает проблему do-while
x=false;
doq=123;
i=0;
doq {
alert(i);//в опере данный код показывает один alert, после чего процессор начинает показывать 100% нагруженность, без каких-либо изменений на странице скрипта
//мозилла показывает ошибку missing ; before statement "doq {\n"
i++;
if(i==3)
x = true;
}while(!x);
alert('end');
|
Цитата:
|
Цитата:
то есть в зависимости от контекста, фигурные скобочки будут использоваться так или иначе
<script type="text/javascript">
var qwe={alert(1)};//missing : after property id, ибо объект
</script>
<script type="text/javascript">
{alert(1)};//выведет alert, ибо это блок кода
</script>
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 16:30. |