Подтвердить что ты не робот

Использование let и yield в Firefox

Я пытаюсь использовать let и yield в Firefox. Я тестирую обе версии 18 и 21 (ночной) и получаю те же результаты.

Вот мой действительно простой тест script:

<html>
    <head>
        <title>test</title>
        <script type="text/javascript">
            'use strict';
            function a() {
                yield 5;
            }
        </script>
    </head>
    <body></body>
</html>

Я получаю эту ошибку:

yield is a reserved identifier

Аналогично, когда я делаю простой тест с let, я получаю "let is reserved identifier", что действительно расстраивает, потому что let предположительно существует в Firefox с версии 2!

Странно, если я выполняю тот же код в Firebug, он работает!

Я пробовал различные другие строки в атрибутах type и language тега script, но не нашел волшебный, который работает.

Что происходит? Как заставить этот материал работать с тегом script?


Изменить

Хм, я вижу, поэтому вы должны указать номер версии. Я пробовал это, но для моего оригинального более сложного script, который использовал веб-работников. Очевидно, использование version=1.7 в script, которое включает веб-рабочего, который включает в себя script, который использует let и yield, недостаточно хорош - веб-рабочий script все еще ломается... Тогда я попытался сократить до простейшего случая, но, по-видимому, не пробовал version=1.7 в простейшем случае.

Спасибо... Можете задать еще один вопрос (после поиска) о том, как это сделать для веб-работников.

4b9b3361

Ответ 1

Как mdn note сказал,

Ключевое слово yield доступно только для блоков кода в HTML, заключенных в блок <script type="application/javascript;version=1.7"> (или более высокую версию)

Таким образом, изменение <script type="text/javascript"> до <script type="application/javascript;version=1.7"> заставит его работать.