Использование 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
в простейшем случае.
Спасибо... Можете задать еще один вопрос (после поиска) о том, как это сделать для веб-работников.
Ответы
Ответ 1
Как mdn note сказал,
Ключевое слово yield доступно только для блоков кода в HTML, заключенных в блок <script type="application/javascript;version=1.7">
(или более высокую версию)
Таким образом, изменение <script type="text/javascript">
до <script type="application/javascript;version=1.7">
заставит его работать.