Одинаковы ли результаты работы парсеров JavaScript разных браузеров? - PullRequest
0 голосов
/ 13 мая 2010

Предположим, есть фрагмент кода JavaScript, который поддерживается различными браузерами, например IE и Firefox. Могут ли парсеры JavaScript разных браузеров генерировать одинаковые выходные данные (т. Е. Одинаковые AST)?

Ответы [ 2 ]

2 голосов
/ 13 мая 2010

Теоретически да, но на практике это не так. Например, следующий код немного отличается в IE и Firefox:

var e = 10;
try
{
    e.something();
}
catch (e)
{
}

alert(e);

IE будет печатать «[объект]», тогда как другие браузеры будут печатать «10», потому что браузеры, отличные от IE, предполагают, что условие catch является «локальной» переменной и отличается от внешнего видения.

2 голосов
/ 13 мая 2010

Будет ли синтаксический анализатор JavaScript в разных браузерах генерировать одинаковый вывод

Нет, не всегда, разные браузеры имеют разный анализатор JavaScript, IE имеют JScript Engine, а Mozilla имеет собственный Javascript Engine.

Например, если вы запустите следующий код

'x'.split(/(x)/).length

Firefox возвращает 3, а IE возвращает 0

См

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...