1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-handlebars.js

Клонировать/Скачать
release-notes.md 92 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.06.2025 13:31 f8026e7

Примечания к выпуску

Разработка

Коммиты

v4.7.7 - 15 февраля 2021

  • Исправление странной ошибки в интеграционных тестах - eb860c0
  • Исправление: проверка доступа к свойствам прототипа в строгом режиме (#1736) - b6d3de7
  • Исправление: экранирование имен свойств в режиме совместимости (#1736) - f058970
  • Рефакторинг: в тестах спецификации использовать expectTemplate вместо equals и shouldThrow (#1683) - 77825f8
  • Улучшение: начало тестирования на Node.js 12 и 13 - 3789a30

(ВОЗМОЖНЫЕ) ПРЕРЫВАЮЩИЕ ИЗМЕНЕНИЯ:

  • Изменения из версии 4.6.0 теперь также применяются при использовании опции компиляции "strict: true". Полный доступ к свойствам прототипа запрещен по умолчанию, конкретные свойства или методы могут быть разрешены через опции выполнения. Подробнее см. #1633. Если вы используете Handlebars в соответствии с документацией, вы не должны обращаться к свойствам прототипа из своего шаблона, поэтому изменения не должны вызвать проблем для вас. Только использование неотражённых функций может привести к сбою сборки.

Поэтому мы увеличиваем только версию патча, несмотря на упоминание прерывающих изменений.

Коммиты

v4.7.6 - 3 апреля 2020

Улучшение/Поддержка:- #1672 - Переключение парсера команд на последнюю версию minimist (@dougwilson)

Примечания по совместимости:

  • Восстановлена совместимость с Node.js

Коммиты

v4.7.5 - 2 апреля 2020

Улучшение/Поддержка:

  • Поддержка версий Node.js v6+ Возвращено в 4.7.6

Примечания по совместимости:

  • Node.js < v6 больше не поддерживается Возвращено в 4.7.6

Коммиты

v4.7.4 - 1 апреля 2020

Улучшение/Поддержка:

Примечания по совместимости:

  • Ожидаемых несовместимостей нет

Коммиты

v4.7.3 - 5 февраля 2020 года

Улучшения/Поддержка:

  • #1644 - Ссылки на загрузку на aws сломаны на handlebarsjs.com - доступ запрещен (@Tea56)
  • Исправление орфографии и пунктуации в changelog - d78cc73

Исправления ошибок:

  • Добавление определения типа для Handlebars.VERSION, исправление #1647 - 4de51fe
  • Включение определения типа для runtime.js в пакет - a32d05f

Примечания о совместимости:

  • Ожидаемых несовместимостей нет

Коммиты## v4.7.2 - 13 января 2020 года

Исправления ошибок:

  • fix: не обернуть помощники, которые не являются функциями - 9d5aa36, #1639

Улучшения/Сборка:

  • chore: выполнить saucelabs-task только если существует ключ доступа - a4fd391

Примечания о совместимости:

  • Ожидаемых разрывов нет

Коммиты

v4.7.1 - 12 января 2020 года

Исправления ошибок:

  • fix: исправление вывода журнала в случае незаконного доступа к свойству - f152dfc
  • fix: логирование ошибки для незаконного доступа к свойству только один раз на свойство - 3c1e252

Примечания о совместимости:

  • Ожидаемых несовместимостей нет.

Коммиты

v4.7.0 - 10 января 2020 года

Новые возможности:

  • feat: по умолчанию опции для управления доступом к прототипу - 7af1c12, #1635
    • Это позволяет отключить ограничения доступа к прототипу, добавленные в 4.6.0
    • Ошибка выводится в консоль, если попытка доступа к свойствам прототипа запрещена и не было явного конфигурирования.

Примечания о совместимости:

  • Ожидаемых совместимостей нет

Коммиты

v4.6.0 - 8 января 2020 года

Новые возможности:

  • feat: контроль доступа к свойствам прототипа через белый список (#1633) - d03b6ec

Исправления ошибок:

  • fix(runtime.js): компиляция частей не кэшируется (#1600) - 23d58e7Улучшения, документация:

  • различные улучшения и рефакторинг тестов - d7f0dcf, 187d611, d337f40

  • модернизация процесса сборки

    • использование prettier для форматирования и eslint для проверки - c40d9f3, 8901c28, e97685e, 1f61f21
    • использование nyc вместо istanbul для сбора данных о покрытии - 164b7ff, 1ebce2b
    • обновление кода сборки для использования современного JavaScript и улучшения чистоты кода - 14b621c, 1ec1737, 3a5b65e, dde108e, 04b1984, 587e7a3
    • переструктуризация команд сборки - e913dc5,
  • изменения правил eslint - ac4655e, dc54952

  • обновление года (C) в LICENSE файле - d1fb07b

  • chore: попытка исправить учетные данные saucelabs (#1627) -

  • обновление readme.md с обновленными ссылками (#1620) - edcc84f

КРИТИЧЕСКИЕ ИЗМЕНЕНИЯ:

  • Полный запрет на доступ к свойствам прототипа по умолчанию, конкретные свойства или методы могут быть разрешены через runtime-options. Подробности см. в #1633. Если вы используете Handlebars в соответствии с документацией, вы, вероятно, не используете свойства прототипа в своих шаблонах, поэтому изменения не должны вызвать проблем. Только использование неотокументированных функций может сломать сборку.

    Именно поэтому мы увеличиваем только мажорную версию, несмотря на упоминание критических изменений.

Коммиты

v4.5.3 - 18 ноября 2019 года

Исправления ошибок:

  • fix: добавлено правило "no-prototype-builtins" eslint и исправлены все случаи - f7f05d7

  • fix: добавлены дополнительные свойства, которые должны быть перечислены - 1988878Задачи построения:

  • fix: использование !== 0 вместо != 0 - c02b05f

  • добавлены chai и dirty-chai и sinon для более чистых утверждений и шпионов, устаревшие методы утверждений - 93e284e, 886ba86, 0817dad, 93516a0

Безопасность:

  • Свойства __proto__, __defineGetter__, __defineSetter__ и __lookupGetter__ добавлены в список "свойств, которые должны быть перечислены". Если свойство с таким именем найдено и не перечислено на родительском объекте, оно будет тихо оцениваться как undefined. Это делается как в скомпилированном шаблоне, так и в помощнике "lookup". Это предотвратит новые уязвимости для удаленного выполнения кода, которые были опубликованы недавно.

Примечания по совместимости:

  • Из-за улучшений безопасности. Семантика шаблонов, использующих __proto__, __defineGetter__, __defineSetter__ и __lookupGetter__ изменилась так, что эти выражения теперь возвращают undefined вместо их фактического значения из прототипа.
  • Семантика не изменилась в случаях, когда свойства перечислены, как в:
{
  __proto__: 'some string';
}
  • Изменение может быть критическим в этом отношении, но мы все равно увеличиваем только патч-версию, потому что несовместимые случаи использования не являются намеренными, неотокументированными и значительно менее важными, чем устранение уязвимостей для удаленного выполнения кода на существующих системах.Коммиты

v4.5.2 - 13 ноября 2019 года

Исправления ошибок

  • fix: использование String(field) в lookup при проверке "constructor" - d541378
  • тест: добавлено удобное API для тестирования Handlebars - c2ac79c

Соответствующие примечания:

  • Нет ожидаемых несовместимостей

Коммиты

v4.5.1 - 29 октября 2019 года

Исправления ошибок:

  • Исправление: перемещение "eslint-plugin-compat" в devDependencies - 5e9d17f (#1589)

Соответствующие примечания:

  • Нет ожидаемых несовместимостей

Коммиты

v4.5.0 - 28 октября 2019 года

Новые возможности / Улучшения:

  • Добавление метода Handlebars.parseWithoutProcessing (#1584) - 62ed3c2
  • Добавление защиты для if и unless помощников (#1549)
  • Отображение местоположения источника для исключений строгого поиска - feb60f8

Исправления ошибок:

  • Использование объектов для отслеживания значений хэша - 7fcf9d2

Утилиты:

  • Устранение предупреждений о устаревании от eslint при выполнении eslint (#1586) - 7052e88
  • Утилиты: добавление eslint-plugin-compat и eslint-plugin-es5 - 088e618

Соответствующие примечания:

  • Нет ожидаемых несовместимостей

Коммиты

v4.4.5 - 20 октября 2019 года

Исправления ошибок:

  • Содержимое raw-blocks должно соответствовать с использованием неагрессивного регулярного выражения - 8d5530e, #1579Коммиты

v4.4.4 - 20 октября 2019 года

Исправления ошибок:

  • Исправление: предотвращение нулевых длинных токенов в raw-blocks (#1577, #1578) - f1752fe

Утилиты:

  • Утилиты: ссылка на s3 bucket с https, добавление "npm ci" к инструкциям сборки - 0b593bf

Соответствующие примечания:

  • Нет ожидаемых несовместимостей

Коммиты

v4.4.3 - 8 октября 2019 года

Исправления ошибок:

Типы:

  • Добавление пропущенных полей типа к AST типам и добавление тестов для них - 0440af2

Коммиты

v4.4.2 - 2 октября 2019 года

  • Утилиты: исправление зависимости grunt-saucelabs - b7eada0

Коммиты

v4.4.1 - 2 октября 2019 года

  • #1562 - Сообщение об ошибке для синтаксической ошибки отсутствует местоположение в 4.2.1+

Коммиты

v4.4.0 - 29 сентября 2019 года

  • Добавлена поддержка итерируемых объектов в помощнике {{#each}} (#1557) - cf7545e

Коммиты

v4.3.5 - 2 октября 2019 года

  • Сообщение об ошибке для синтаксической ошибки, отсутствующее местоположение в 4.2.1+ (#1562)

Коммиты

v4.3.4 - 28 сентября 2019 года

  • Исправление: упрочение проверки "propertyIsEnumerable" - ff4d827Примечания по совместимости:

  • Нет известных несовместимостей.

Коммиты

v4.3.3 - 27 сентября 2019 года

  • Исправление тестового случая для браузеров, не поддерживающих defineGetter - 8742bde

Коммиты

v4.3.2 - 26 сентября 2019 года

  • Использование Object.prototype.propertyIsEnumerable для проверки конструкторов - 213c0bb, #1563

Примечания по совместимости:

  • Нет разрушающих изменений

Коммиты

v4.3.1 - 25 сентября 2019 года

Исправления:

  • Не разрушать на предкомпилированных шаблонах от Handlebars >=4.0.0 <4.3.0 - 1266838, #1561
  • Убедиться, что опция времени выполнения allowCallsToHelperMissing является необязательной в типах - 93444c5, 64ecb9e, #1560

Коммиты

v4.3.0 - 24 сентября 2019 года

Исправления:

  • Безопасность: Запретить прямое вызов "helperMissing" и "blockHelperMissing" - 2078c72
  • Запретить прямое вызов "helperMissing" и "blockHelperMissing" - 2078c72

Новые возможности:

  • Добавлена новая опция времени выполнения allowCallsToHelperMissing для разрешения вызова blockHelperMissing и helperMissing.

Разрушающие изменения:

Примечания по совместимости:

  • Увеличение редакции компилятора - 06b7224 - Это означает, что шаблоны, скомпилированные с версий, предшествующих 4.3.0, не будут работать с временными версиями >= 4.3.0. Увеличение было сделано потому, что "helperMissing" и "blockHelperMissing" теперь перемещены из помощников в внутренний объект "container.hooks", так что старые шаблоны больше не смогут вызывать их. Мы рекомендуем вам всегда перекомпилировать свои шаблоны с последним компилятором в ваших конвейерах сборки.
    • Запретить прямое вызов "helperMissing" и "blockHelperMissing" - 2078c72
    • Прямое вызов "helperMissing" и "blockHelperMissing" из шаблона (например, в {{blockHelperMissing}}) никогда не был задуман и был частью уязвимостей, которые были обнаружены в начале 2019 года (см. https://github.com/handlebars-lang/handlebars.js/issues/1495). Это также часть новой уязвимости, которая не была захвачена ранним исправлением. Чтобы усилить защиту Handlebars от таких уязвимостей, прямое вызов этих помощников больше невозможен. Переопределение этих помощников по-прежнему возможно.
    • Если вам действительно нужна эта функциональность, вы можете установить опцию времени выполнения allowCallsToHelperMissing на true, и вызовы снова станут возможными. Оба пункта указывают на то, что Handlebars не является 100% совместимым с версией 4.2.0, несмотря на небольшой номер версии.Мы считаем более важным решить серьезную проблему безопасности, чем поддерживать 100% совместимость.

Коммиты

v4.2.2 - 2 октября 2019 года

  • Сообщение об ошибке для синтаксической ошибки отсутствует местоположение в 4.2.1+ (#1562)

Коммиты

v4.2.1 - 20 сентября 2019 года

Исправления ошибок:

  • Свойство "browser" в файле package.json было обновлено для использования сборок common-js вместо минифицированных UMD - c55a7be, #1553

Примечания о совместимости:

  • Не должно возникнуть проблем совместимости

Коммиты

v4.2.0 - 3 сентября 2019 года

Улучшения/тестирование:

  • Использование пользовательского grunt-saucelab с текущим прокси-сервером sauce-connect - f119497
  • Добавление фреймворка для различных интеграционных тестов - f9cce4d
  • Добавление интеграционного теста для webpack - a57b682

Исправления ошибок:

  • #1544 - Типы TypeScript: knownHelpers не позволяет использовать пользовательские помощники (@NickCis)
  • #1534 - Добавление типов для "Handlebars.VM.resolvePartial" (@AndrewLeedham)

Новые возможности:

  • #1540 - Добавление свойства "browser" в package.json, решение проблемы #1102 (@ouijan)Примечания о совместимости:

  • Новое свойство "browser" не должно вызвать проблем, но вы никогда не можете быть полностью уверены. Интеграционный тест для webpack показывает, что это работает, но если нет, пожалуйста, откройте проблему.

Коммиты

v4.1.2-0 - 25 августа 2019 года

#1540 - Добавление свойства browser в package.json, решение проблемы #1102 (@ouijan)

Примечания о совместимости:

  • Мы не уверены, работают ли импорты через webpack, поэтому этот выпуск является предварительным

Коммиты

v4.1.2 - 13 апреля 2019 года

Задачи/Тесты:

  • #1515 - Перенос проверки стиля и тестирования для типов (@zimmi88)
  • Задачи: добавить пропущенную зависимость typescript, добавить package-lock.json - 594f1e3
  • Тесты: удалить Safari из saucelabs - 871accc

Исправления ошибок:

  • Исправление: предотвратить выполнение удалённого кода через помощник "lookup" - cd38583

Примечания о совместимости:

Доступ к конструктору класса через {{lookup obj "constructor" }} теперь запрещён. Это закрывает утечку, которая была частично закрыта в версиях 4.0.13 и 4.1.0, но это небольшая несовместимость.Такой доступ не является намеренным использованием Handlebars и приводит к уязвимости, описанной в #1495. Мы не увеличим основную версию, так как такое использование не предусмотрено или не документировано, и из-за потенциального воздействия проблемы (мы опасаемся, что большинство людей не перейдут на новую основную версию, и проблема может не быть решена на многих системах).Коммиты

v4.1.1 - 16 марта 2019

Исправления ошибок:

  • Исправление: добавить "runtime.d.ts" для разрешения "require('handlebars/runtime')" в TypeScript - 5cedd62

Переработки:

  • Замена "async" на "neo-async" - 048f2ce
  • Использование функции "substring" вместо "substr" - 445ae12

Примечания по совместимости:

  • Это исправительный выпуск. Нет разрушительных изменений и новых функций.

Коммиты

v4.1.0 - 7 февраля 2019

Новые функции:

  • Импорт типов TypeScript - 27ac1ee

Исправления безопасности:

  • Запрет на доступ к конструктору шаблонов для предотвращения выполнения удалённого кода - 42841c4, #1495

Обслуживание:

  • Задачи: исправление package.json для components/handlebars и автоматическое обновление при выпуске - bacd473
  • Задачи: использование node 10 для сборки handlebars - 78dd89c
  • Задачи/документация: добавление дополнительных документов для выпуска - 6b87c21

Примечания по совместимости:

Доступ к конструкторам классов (например, ({}).constructor) теперь запрещён для предотвращения выполнения удалённого кода. Это означает, что следующий код больше не будет работать:

class SomeClass {
}

SomeClass.staticProperty = 'static'
```var template = Handlebars.compile('{{constructor.staticProperty}}');
document.getElementById('output').innerHTML = template(new SomeClass());
// ожидаемый результат: 'static', но теперь это пустое значение.
```Такой тип доступа не является намеренным использованием Handlebars и приводит к уязвимости, описанной в #1495. Мы **не** увеличим основную версию, так как такое использование не является намеренным или документированным, и из-за потенциального воздействия проблемы (мы опасаемся, что большинство людей не будут использовать новую основную версию, и проблема может не быть решена на многих системах).```[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.12...v4.1.0)

## v4.0.12 - 4 сентября 2018 года

Новые функции:

- отсутствуют

Различные обновления зависимостей:

- [#1464](https://github.com/handlebars-lang/handlebars.js/pull/1464) - Обновление версий grunt-plugins до 1.x
- [#1398](https://github.com/handlebars-lang/handlebars.js/pull/1398) - Управление зависимостями: обновление различных dev-зависимостей
- обновление uglify-js - d3d3942
- Обновление grunt-eslint до 20.1.0 - 7729aa9
- Обновление зависимостей "async" до 2.5.0 и "source-map" до 0.6.1 (73d5637)

Исправления ошибок:

- [components/handlebars.js#24](https://github.com/components/handlebars.js#24) Добавление package.json в components shim
- Обновленный пакет `source-map` должен работать лучше с `rollup`[#1463](https://github.com/handlebars-lang/handlebars.js/issues/1463)

Удаление устаревшего кода:

- избыточная проверка - 0ddff8b
- Использование поля `files` - 69c6ca5
- Обновление jsfiddle до 4.0.11 - 8947dd0

Примечания по совместимости:

- Не предвидено совместимых проблем

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.11...v4.0.12)

## v4.0.11 - 17 октября 2017 года

- [#1391](https://github.com/handlebars-lang/handlebars.js/issues/1391) - `uglify-js` импортируется безусловно, но указан как опциональная зависимость ([@Turbo87](https://github.com/Turbo87))
- [#1233](https://github.com/handlebars-lang/handlebars.js/issues/1233) - Невозможно собрать под Windows - ошибка в тесте:bin задаче ([@blikblum](https://github.com/blikblum))
- Обновление года (C) в LICENSE файле - 21386b6

Примечания по совместимости:

- Это исправляющий выпуск. Нет разрушительных изменений и новых функций.[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.10...v4.0.11)

## v4.0.10 - 21 мая 2017 года

- Исправление регрессии в 4.0.9: замена "Object.assign" (не поддерживается в IE) на "util/extend" - 0e953d1

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.9...v4.0.10)

## v4.0.9 - 21 мая 2017 года

- [#1327](https://github.com/handlebars-lang/handlebars.js/issues/1327) Handlebars.compile() больше не изменяет "options"
- [#1331](https://github.com/handlebars-lang/handlebars.js/issues/1331) Попытки сборки Handlebars в окружении Windows
  - Исправление сборки в Windows - cc554a5
  - Убедиться в использовании LF для завершения строк в файлах фикстур handlebars-template (\*.hbs) - ed879a6
  - Запуск интеграционных тестов с помощью `node handlebars -a ...` в Windows - 2e21e2b
  - Убедиться в использовании LF для завершения строк в файлах lexer (\*.l) - bdfdbea
  - Принудительное использование LF для завершения строк в спецификациях и артефактах - b50ef03
  - Использование istanbul/lib/cli.js вместо node_modules/.bin/istanbul - 6e6269f
- TravisCI: Публикация валидных тегов semver независимо от ветки - 7378f85

Примечания по совместимости:

- Не ожидается проблем совместимости.

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.8...v4.0.9)

## v4.0.8 - 2 мая 2017 года

- [#1341](https://github.com/handlebars-lang/handlebars.js/issues/1341) [#1342](https://github.com/handlebars-lang/handlebars.js/issues/1342) Разрешение выполнения блоков частей без "options" ([@nknapp](https://github.com/nknapp)) - a00c598

Примечания по совместимости:

- Отсутствуют разрушительные изменения

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.7...v4.0.8)## v4.0.7 - 29 апреля 2017 - [#1319](https://github.com/handlebars-lang/handlebars.js/issues/1319): Исправление контекст-стека при вызове блок-хелперов на null значениях ([@nknapp](https://github.com/nknapp)) - c8f4b57
- [#1315](https://github.com/handlebars-lang/handlebars.js/pull/1315) Парсер: Изменение суффикса для использования ES6 по умолчанию ([@Turbo87](https://github.com/Turbo87)) - b617375
- [#1290](https://github.com/handlebars-lang/handlebars.js/pull/1290) [#1252](https://github.com/handlebars-lang/handlebars.js/issue/1290) Добавление дополнительных тестов для частичных блоков и встроенных частичных ([@nknapp](https://github.com/nknapp)) - 63a8e0c
- [#1252](https://github.com/handlebars-lang/handlebars.js/issue/1290) Использование @partial-block дважды в шаблоне невозможно ([@nknapp](https://github.com/nknapp)) - 5a164d0
- [#1310](https://github.com/handlebars-lang/handlebars.js/pull/1310) Предотвращение дублирования строк sourceMappingURL= ([@joonas-lahtinen](https://github.com/joonas-lahtinen)) - 01b0f65
- [#1275](https://github.com/handlebars-lang/handlebars.js/pull/1275) require('sys') устарел, использование 'util' вместо ([@travnels](https://github.com/travnels)) - 406f2ee
- [#1285](https://github.com/handlebars-lang/handlebars.js/pull/1285) [#1284](https://github.com/handlebars-lang/handlebars.js/issues/1284) Делает "column"-свойство ошибок перечисляемым ([@nknapp](https://github.com/nknapp)) - a023cb4
- [#1285](https://github.com/handlebars-lang/handlebars.js/pull/1285) Тестовый случай для проверки, что ошибки компиляции имеют свойство "column" ([@nknapp](https://github.com/nknapp)) - c7dc353[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.6...v4.0.7)## v4.0.6 - 12 ноября 2016 года - [#1243](https://github.com/handlebars-lang/handlebars.js/pull/1243) - Проход по верхним данным для вложенных @partial-block ([@lawnsea](https://github.com/lawnsea))
 - [#1210](https://github.com/handlebars-lang/handlebars.js/pull/1210) - Добавление нового легковесного пакета на основе handlebars в README ([@kabirbaidhya](https://github.com/kabirbaidhya))
 - [#1187](https://github.com/handlebars-lang/handlebars.js/pull/1187) - Убедитесь, что существующие blockParams и глубины уважаются в дубликатных программах ([@charleso](https://github.com/charleso))
 - [#1191](https://github.com/handlebars-lang/handlebars.js/pull/1191) - Добавлен Cory ([@leo](https://github.com/leo))
 - [#1177](https://github.com/handlebars-lang/handlebars.js/pull/1177) - Сохранение информации о лицензии в Closure Compiler ([@gennadiylitvinyuk](https://github.com/gennadiylitvinyuk))
 - [#1171](https://github.com/handlebars-lang/handlebars.js/pull/1171) - Исправление документации CONTRIBUTING: failing thats -> failing tests ([@paulfalgout](https://github.com/paulfalgout))
 - [#1166](https://github.com/handlebars-lang/handlebars.js/pull/1166) - Обновление даты лицензии ([@timwangdev](https://github.com/timwangdev))
 - Обновление jsfiddle для указания на последнюю версию - 959ee55 (оригинально dfc7554 от [@kpdecker](https://github.com/kpdecker))
 - [#1163](https://github.com/handlebars-lang/handlebars.js/pull/1163) - Исправление опечаток в decorators-api.md ([@adjohnson916](https://github.com/adjohnson916))
 - Удаление дополнительных параметров ошибки - 8c19874 (оригинально 63fdb92 от [@kpdecker](https://github.com/kpdecker))
 - [#1153](https://github.com/handlebars-lang/handlebars.js/pull/1153) - Добавление документации по запуску тестов в contributing.md ([@ryanmurakami](https://github.com/ryanmurakami))
 - Избегание ошибок в более старых браузерах в тестах - 400916c (оригинально a6121ca от [@kpdecker](https://github.com/kpdecker))- Обновление версий тестов для целевых браузеров - fee2334 (оригинально 871c32a от [@kpdecker](https://github.com/kpdecker))
 - Исключение проверки охвата в условии исключения - 32d6363 (оригинально 326734b от [@kpdecker](https://github.com/kpdecker))
 - Исправление выброса при создании объекта исключения в Safari - 20c965c (оригинально 2ea6119 от [@kpdecker](https://github.com/kpdecker))
 - Обновление сборки для современных версий Node.js - 6c9f98c (оригинально 8289c0b от [@kpdecker](https://github.com/kpdecker))
 - [#1135](https://github.com/handlebars-lang/handlebars.js/issues/1135) - Смягчение проверки глубины для контекста push - c393c81 (оригинально 25458fd от [@kpdecker](https://github.com/kpdecker))[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.5...v4.0.6)## v4.0.5 - 19 ноября 2015

- [#1132](https://github.com/handlebars-lang/handlebars.js/pull/1132) - Обновление uglify-js для избежания уязвимости ([@plynchnlm](https://github.com/plynchnlm))
- [#1129](https://github.com/handlebars-lang/handlebars.js/issues/1129) - Минифицированная библиотека возвращает пустую строку ([@bricss](https://github.com/bricss))
- Возврат текущего экземпляра handlebars из noConflict - 685cf92
- Добавление webpack в список зависимостей для поддержки npm 3 - 7a6c228
- Дальнейшее ослабление зависимости от uglify - 0a3b3c2
- Включение тестов для минифицированных артефактов - c21118d
- Исправление ошибок линтера под последней версией eslint - 9f59de9
- Добавление скрипта print-script - 98a6717

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.4...v4.0.5)

## v4.0.4 - 29 октября 2015

- [#1121](https://github.com/handlebars-lang/handlebars.js/pull/1121) - Включение имени частичного в сообщение исключения "undefined partial" ([@shinypb](https://github.com/shinypb))
- [#1125](https://github.com/handlebars-lang/handlebars.js/pull/1125) - Добавление promised-handlebars в список "in-the-wild" ([@nknapp](https://github.com/nknapp))

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.3...v4.0.4)

## v4.0.3 - 23 сентября 2015- [#1099](https://github.com/handlebars-lang/handlebars.js/issues/1099) - @partial-block перезаписывается ([@btmorex](https://github.com/btmorex))
- [#1093](https://github.com/handlebars-lang/handlebars.js/issues/1093) - #each пропускает итерацию при неопределенных значениях ([@florianpilz](https://github.com/florianpilz))
- [#1092](https://github.com/handlebars-lang/handlebars.js/issues/1092) - Квадратные скобки в имени ключа ([@distantnative](https://github.com/distantnative))
- [#1091](https://github.com/handlebars-lang/handlebars.js/pull/1091) - Исправление опечатки в заметках о выпуске ([@nikolas](https://github.com/nikolas))
- [#1090](https://github.com/handlebars-lang/handlebars.js/pull/1090) - Исправление грамматики в заметках о выпуске 4.0.0 ([@nikolas](https://github.com/nikolas))Примечания о совместимости:

- Итерация `each` с неопределенными значениями восстановлена до поведения версии 3.0. Вызовы помощников с неопределенными значениями контекста теперь будут выполняться против произвольного пустого объекта для избежания выполнения против глобального объекта в режиме без строгого режима.
- `]` теперь может быть включено в идентификаторы, заключенные в `[]`, путем экранирования с помощью `\`. Любые идентификаторы `[]`, которые включают `\`, теперь должны правильно экранировать эти значения. [Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.2...v4.0.3)

## v4.0.2 - 4 сентября 2015

- [#1089](https://github.com/handlebars-lang/handlebars.js/issues/1089) - "Содержимое резервного варианта" не работает на нескольких уровнях встроенных частей ([@michaellopez](https://github.com/michaellopez))

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.1...v4.0.2)

## v4.0.1 - 2 сентября 2015

- Исправление ошибки при использовании декораторов в частях - 05b82a2

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.0...v4.0.1)## v4.0.0 - 1 сентября 2015 - [#1082](https://github.com/handlebars-lang/handlebars.js/pull/1082) - Декораторы и встроенные частичные шаблоны ([@kpdecker](https://github.com/kpdecker))
  - [#1076](https://github.com/handlebars-lang/handlebars.js/pull/1076) - Реализация блоков частичных шаблонов ([@kpdecker](https://github.com/kpdecker))
  - [#1087](https://github.com/handlebars-lang/handlebars.js/pull/1087) - Исправление #each при последнем объекте с пустым ключом ([@denniskuczynski](https://github.com/denniskuczynski))
  - [#1084](https://github.com/handlebars-lang/handlebars.js/pull/1084) - Обновление версии uglify для исправления уязвимости ([@John-Steidley](https://github.com/John-Steidley))
  - [#1068](https://github.com/handlebars-lang/handlebars.js/pull/1068) - Исправление опечатки ([@0xack13](https://github.com/0xack13))
  - [#1060](https://github.com/handlebars-lang/handlebars.js/pull/1060) - Исправление грамматики для вложенных блоков raw ([@ericbn](https://github.com/ericbn))
  - [#1052](https://github.com/handlebars-lang/handlebars.js/pull/1052) - Обновление года в лицензии ([@maqnouch](https://github.com/maqnouch))
  - [#1037](https://github.com/handlebars-lang/handlebars.js/pull/1037) - Исправление мелких опечаток в README ([@tomxtobin](https://github.com/tomxtobin))
  - [#1032](https://github.com/handlebars-lang/handlebars.js/issues/1032) - Возможно ли отрисовывать частичный шаблон без родительского контекста? ([@aputinski](https://github.com/aputinski))
  - [#1019](https://github.com/handlebars-lang/handlebars.js/pull/1019) - Исправление опечатки в тестах ([@aymerick](https://github.com/aymerick))
  - [#1016](https://github.com/handlebars-lang/handlebars.js/issues/1016) - Несоответствие версий ([@mayankdedhia](https://github.com/mayankdedhia))
  - [#1023](https://github.com/handlebars-lang/handlebars.js/issues/1023) - Возможно ли взаимодействие между вложенными пользовательскими помощниками?
  - [#893](https://github.com/handlebars-lang/handlebars.js/issues/893) - [Предложение] Блоки секций.
  - [#792](https://github.com/handlebars-lang/handlebars.js/issues/792) - Запрос на добавление определений частичных шаблонов в строку.
  - [#583](https://github.com/handlebars-lang/handlebars.js/issues/583) - Путь родителя продолжает просматривать глубину при нескольких условиях.
  - [#404](https://github.com/handlebars-lang/handlebars.js/issues/404) - Добавление именованных дочерних помощников, которые могут быть ссылками для блоковых помощников.
  - Экранирование = в HTML-контенте - [83b8e84](https://github.com/handlebars-lang/handlebars.js/commit/83b8e84) - Заменить конструкторы AST на JSON - [95d84ba](https://github.com/handlebars-lang/handlebars.js/commit/95d84ba)
 - Передать контейнер вместо exec в качестве контекста - [9a2d1d6](https://github.com/handlebars-lang/handlebars.js/commit/9a2d1d6)
 - Добавить опцию компилятора ignoreStandalone - [ea3a5a1](https://github.com/handlebars-lang/handlebars.js/commit/ea3a5a1)
 - Игнорировать пустые значения при итерации по разреженным массивам - [06d515a](https://github.com/handlebars-lang/handlebars.js/commit/06d515a)
 - Добавить поддержку предкомпиляции строк и stdin - [0de8dac](https://github.com/handlebars-lang/handlebars.js/commit/0de8dac)
 - Упростить логику генерации присваивания объектов - [77e6bfc](https://github.com/handlebars-lang/handlebars.js/commit/77e6bfc)
 - Улучшить надежность AST. helpers. helperExpression - [93b0760](https://github.com/handlebars-lang/handlebars.js/commit/93b0760)
 - Всегда возвращать строковые ответы - [8e868ab](https://github.com/handlebars-lang/handlebars.js/commit/8e868ab)
 - Передавать неопределенные поля в помощники в строгом режиме - [5d4b8da](https://github.com/handlebars-lang/handlebars.js/commit/5d4b8da)- Избегать создания глубины, когда контекст остаётся неизменным - [279e038](https://github.com/handlebars-lang/handlebars.js/commit/279e038)
- Улучшить API журналирования - [9a49d35](https://github.com/handlebars-lang/handlebars.js/commit/9a49d35)
- Исправить оператор with в режиме без @data - [231a8d7](https://github.com/handlebars-lang/handlebars.js/commit/231a8d7)
- Разрешить пустое имя ключа при каждой итерации - [1bb640b](https://github.com/handlebars-lang/handlebars.js/commit/1bb640b)
- Добавить поддержку параметров блока with - [2a85106](https://github.com/handlebars-lang/handlebars.js/commit/2a85106)
- Исправить экранирование не-идентификаторов JavaScript - [410141c](https://github.com/handlebars-lang/handlebars.js/commit/410141c)
- Исправить информацию о расположении для программ - [93faffa](https://github.com/handlebars-lang/handlebars.js/commit/93faffa)

Примечания по совместимости:- Глубокие пути теперь условно добавляются на стек. Если помощник использует тот же контекст, новый стек не создаётся. Это приводит к поведению, которое лучше соответствует ожиданиям для помощников, таких как `if`, которые не кажутся изменяющими контекст. Любые экземпляры `../` в шаблонах потребуют проверки для правильного поведения в версии 4.0.0. В общем, шаблоны либо уменьшат количество экземпляров `../`, либо оставят их без изменений. См. [#1028](https://github.com/handlebars-lang/handlebars.js/issues/1028).
- Символ `=` теперь экранируется как HTML. Это закрывает потенциальный случай эксплуатации при использовании неустановленных атрибутов, например, `<div foo={{bar}}>`. В общем рекомендуется всегда кавычить атрибуты, когда их значения генерируются из mustache, чтобы избежать любых потенциальных уязвимостей.
- Конструкторы AST были отменены в пользу простых объектов JavaScript.
- Версия runtime была увеличена. Предварительно скомпилированные шаблоны должны использовать runtime версии 4.0.0 или выше.

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v3.0.3...v4.0.0)

## v3.0.3 - 28 апреля 2015 года

- [#1004](https://github.com/handlebars-lang/handlebars.js/issues/1004) - Последняя версия не работает с RequireJS (global не определён) ([@boskee](https://github.com/boskee))

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v3.0.2...v3.0.3)

## v3.0.2 - 20 апреля 2015 года- [#998](https://github.com/handlebars-lang/handlebars.js/pull/998) - Добавлена полная поддержка ES6 ([@kpdecker](https://github.com/kpdecker))
- [#994](https://github.com/handlebars-lang/handlebars.js/issues/994) - Доступ к Handlebars.Visitor в браузере ([@tamlyn](https://github.com/tamlyn))
- [#990](https://github.com/handlebars-lang/handlebars.js/issues/990) - Разрешено передавать литералы null/undefined в подвыражения ([@blimmer](https://github.com/blimmer))
- [#989](https://github.com/handlebars-lang/handlebars.js/issues/989) - Ошибка source-map с requirejs ([@SteppeEagle](https://github.com/SteppeEagle))
- [#967](https://github.com/handlebars-lang/handlebars.js/issues/967) - Невозможно получить доступ к свойству "this" ([@75lb](https://github.com/75lb))
- Использование captureStackTrace для обработчика ошибок - a009a97
- Игнорирование веток, тестировавшихся без мониторинга покрытия - 37a664b[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v3.0.1...v3.0.2)## v3.0.1 - 24 марта 2015

- [#984](https://github.com/handlebars-lang/handlebars.js/pull/984) - Добавление документации по передаче аргументов в частичные шаблоны ([@johneke](https://github.com/johneke))
- [#973](https://github.com/handlebars-lang/handlebars.js/issues/973) - Версия 3 работает медленнее, чем версия 2 ([@elover](https://github.com/elover))
- [#966](https://github.com/handlebars-lang/handlebars.js/issues/966) - Команда `handlebars --version` не работает с версией v3.0.0 ([@abloomston](https://github.com/abloomston))
- [#964](https://github.com/handlebars-lang/handlebars.js/pull/964) - Слово `default` является зарезервированным ([@grassick](https://github.com/grassick))
- [#962](https://github.com/handlebars-lang/handlebars.js/pull/962) - Добавление ссылки на dashbars в README ([@pismute](https://github.com/pismute))

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v3.0.0...v3.0.1)## v3.0.0 - 10 февраля 2015 - [#941](https://github.com/handlebars-lang/handlebars.js/pull/941) - Добавлена поддержка динамических имен частей ([@kpdecker](https://github.com/kpdecker))
  - [#940](https://github.com/handlebars-lang/handlebars.js/pull/940) - Добавлены недостающие зарезервированные слова, чтобы компилятор знал использовать синтаксис массива: ([@mattflaschen](https://github.com/mattflaschen))
  - [#938](https://github.com/handlebars-lang/handlebars.js/pull/938) - Исправлен пример использования помощника #with ([@diwo](https://github.com/diwo))
  - [#930](https://github.com/handlebars-lang/handlebars.js/pull/930) - Добавлена отслеживание родителей и мутация для посещателей AST ([@kpdecker](https://github.com/kpdecker))
  - [#926](https://github.com/handlebars-lang/handlebars.js/issues/926) - Поиск по глубине не работает, когда запускается дубликатор программы ([@kpdecker](https://github.com/kpdecker))
  - [#918](https://github.com/handlebars-lang/handlebars.js/pull/918) - Добавлены инструкции для 'spec/mustache' в CONTRIBUTING.md, исправлены несколько опечаток ([@oneeman](https://github.com/oneeman))
  - [#915](https://github.com/handlebars-lang/handlebars.js/pull/915) - Обновление AST ([@kpdecker](https://github.com/kpdecker))
  - [#910](https://github.com/handlebars-lang/handlebars.js/issues/910) - Разное поведение {{@last}} при {{#each}} в {{#each}} ([@zordius](https://github.com/zordius))
  - [#907](https://github.com/handlebars-lang/handlebars.js/issues/907) - Реализация ссылок на именованные помощники ([@kpdecker](https://github.com/kpdecker))
  - [#906](https://github.com/handlebars-lang/handlebars.js/pull/906) - Добавлено поддержка парсера для параметров блока ([@mmun](https://github.com/mmun))
  - [#903](https://github.com/handlebars-lang/handlebars.js/issues/903) - Предоставляются псевдонимы только для повторных вызовов ([@kpdecker](https://github.com/kpdecker))
  - [#902](https://github.com/handlebars-lang/handlebars.js/issues/902) -com/handlebars-lang/handlebars.js/pull/902) - Генерация карт источников ([@kpdecker](https://github.com/kpdecker))
  - [#901](https://github.com/handlebars-lang/handlebars.js/issues/901) - Все еще экранируется, когда включен noEscape в изолированной среде Handlebars ([@zedknight](https://github.com/zedknight))
  - [#896](https://github.com/handlebars-lang/handlebars.js/pull/896) - Упрощение BlockNode путем удаления промежуточного MustacheNode ([@mmun](https://github.com/mmun))
  - [#892](https://github.com/handlebars-lang/handlebars.js/pull/892) - Реализация парсера для цепочки else помощников ([@kpdecker](https://github.com/kpdecker))
  - [#889](https://github.com/handlebars-lang/handlebars.js/pull/889) - [#889](https://github.com/handlebars-lang/handlebars.js/issues/889) - Рассмотреть расширяемый API парсера ([@kpdecker](https://github.com/kpdecker))
 - [#887](https://github.com/handlebars-lang/handlebars.js/issues/887) - Опция Handlebars.noConflict()?  ([@bradvogel](https://github.com/bradvogel))
 - [#886](https://github.com/handlebars-lang/handlebars.js/issues/886) - Добавить SafeString в контекст (или использовать duck-typing) ([@dominicbarnes](https://github.com/dominicbarnes))
 - [#870](https://github.com/handlebars-lang/handlebars.js/pull/870) - Регистрация неопределенного частичного шаблона вызывает исключение.  ([@max-b](https://github.com/max-b))
 - [#866](https://github.com/handlebars-lang/handlebars.js/issues/866) - Комментарии не уважают контроль пробелов ([@75lb](https://github.com/75lb))
 - [#863](https://github.com/handlebars-lang/handlebars.js/pull/863) - + jsDelivr CDN информация ([@tomByrer](https://github.com/tomByrer))
 - [#858](https://github.com/handlebars-lang/handlebars.js/issues/858) - Отключить новую по умолчанию автоматическую отступацию в включенных частичных шаблонах ([@majodev](https://github.com/majodev))
 - [#856](https://github.com/handlebars-lang/handlebars.js/pull/856) - Совместимость с jspm ([@MajorBreakfast](https://github.com/MajorBreakfast))
 - [#805](https://github.com/handlebars-lang/handlebars.js/issues/805)com/handlebars-lang/handlebars.js/issues/805) - Запрос: "строгие" поиски ([@nzakas](https://github.com/nzakas))- Экспорт по умолчанию объекта для handlebars/runtime - 5594416
 - Поиск частей при неопределенности - 617dd57Примечания по совместимости:

- Порушенные изменения в runtime. Должно соответствовать runtime и precompiler версии 3.x.
- AST был обновлен до публичного API.
  - В нем произошло множество изменений, но формат теперь документирован в docs/compiler-api.md
  - API посещения был расширен для поддержки мутаций и предоставления базовой реализации
- API `JavaScriptCompiler` были формализованы и документированы. В рамках обработки карты источников эти API должны быть обновлены для возврата массивов для конкатенации.
- `JavaScriptCompiler.namespace` был удален, так как он не использовался.
- `SafeString` теперь является утиным типом для `toHTML`

Новые возможности:

- noConflict
- Карта источников
- Параметры блока
- Режим строгого соответствия
- @last и другие изменения в each
- Цепочки блоков else
- Методы @data теперь могут принимать параметры помощников
- Динамические части

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0...v3.0.0)

## v2.0.0 - 1 сентября 2014 года

- Обновление jsfiddle до версии 2.0.0-beta.1 - 0670f65
- Добавление примечания для вкладчиков относительно документации handlebarsjs.com - 4d17e3c
- Совместимость с номерами версий gemspec - 64d5481

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-beta.1...v2.0.0)## v2.0.0-beta.1 - 26 августа 2014 года - [#787](https://github.com/handlebars-lang/handlebars.js/pull/787) - Удаление пробелов вокруг самостоятельных выражений ([@kpdecker](https://github.com/kpdecker))
  - [#827](https://github.com/handlebars-lang/handlebars.js/issues/827) - Отображение ложного литерала как "false" ([@scoot557](https://github.com/scoot557))
  - [#767](https://github.com/handlebars-lang/handlebars.js/issues/767) - Ошибка субвыражений с хэшем и контекстом ([@evensoul](https://github.com/evensoul))
  - Изменения в обработке 0/undefined
    - [#731](https://github.com/handlebars-lang/handlebars.js/pull/731) - Неправильное поведение для {{#foo}} {{bar}} {{/foo}} при foo = 0 ([@kpdecker](https://github.com/kpdecker))
    - [#820](https://github.com/handlebars-lang/handlebars.js/issues/820) - Неправильное поведение для {{foo.bar}} при foo = 0 или null или false ([@zordius](https://github.com/zordius))
    - [#837](https://github.com/handlebars-lang/handlebars.js/issues/837) - Неправильное поведение для пользовательского помощника (foo.bar == false при foo = undefined) ([@zordius](https://github.com/zordius))
  - [#819](https://github.com/handlebars-lang/handlebars.js/pull/819) - Реализация рекурсивного поиска полей ([@kpdecker](https://github.com/kpdecker))
  - [#764](https://github.com/handlebars-lang/handlebars.js/issues/764) - Ссылка "this" не работает для помощников ([@kpdecker](https://github.com/kpdecker))
  - [#773](https://github.com/handlebars-lang/handlebars.js/issues/773) - Неявные параметры в {{#each}} вносят особенности в соглашение о вызовах помощников ([@Bertrand](https://github.com/Bertrand))
  - [#783](https://github.com/handlebars-lang/handlebars.js/issues/783) - helperMissing и согласованность для различных типов выражений ([@ErisDS](https://github.com/ErisDS))
  - [#795](https://github.com/handlebars-lang/handlebars.js/pull/795) - Преобразование скрипта precompile в обертку вокруг модуля ([@jwietelmann](https://github.com/jwietelmann)) - [#823](https://github.com/handlebars-lang/handlebars.js/pull/823) - Поддержка обратных секций в помощнике with ([@dan-manges](https://github.com/dan-manges))
  - [#834](https://github.com/handlebars-lang/handlebars.js/pull/834) - Переработка блоков, программ и обратных секций ([@mmun](https://github.com/mmun))
  - [#852](https://github.com/handlebars-lang/handlebars.js/issues/852) - Поведение управления пробелами {{foo~}} отличается от старой версии ([@zordius](https://github.com/zordius))
  - [#835](https://github.com/handlebars-lang/handlebars.js/issues/835) - Шаблоны перезаписываются, если файл загружается дважды - Expose escapeExpression на корневом объекте - 980c38c
 - Удаление вложенной функции eval в blockHelperMissing - 6f22ec1
 - Исправление компиляции программы для удаления дубликатов - 9e3f824Примечания по совместимости:

- По умолчанию сборка теперь выдает общий UMD обёртку. Это должно быть прозрачным изменением, но может вызвать проблемы в некоторых окружениях.
- Совместимость на уровне выполнения нарушается в обоих направлениях. Убедитесь, что как компилятор, так и клиент были обновлены до версии OnClickListener 2.0.0-beta.1 или выше одновременно.
  - `programWithDepth` был удалён, и вместо него передаётся массив значений контекста для полей, требующих поиска на глубину.
- Значения `false` теперь выводятся в выходные данные, а не игнорируются.
- Строчки, содержащие только блочные выражения и пробелы, теперь удаляются. Это соответствует спецификации Mustache, но может вызвать проблемы с кодом, который ожидает, что пробелы будут существовать, но не требует их иначе.
- Отдельные частичные шаблоны теперь отступают отрендеренный контент.
- Подпись метода `AST.ProgramNode` изменилась.
- Множество методов/функций удалены из псевдо-API классов
  - `JavaScriptCompiler.register`
  - `JavaScriptCompiler.replaceStack` больше не поддерживает замену вне строки
  - `Compiler.disassemble`
  - `DECLARE` оператор
  - `strip` оператор
  - `lookup` оператор
  - Значения узлов контента могут изменяться со временем. Поле `original` предоставляет неизменённое значение.
- Удалён неиспользуемый параметр `inverse` в `Handlebars.registerHelper`
- Помощник `each` теперь требует параметра итератора[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-alpha.4...v2.0.0-beta.1)

## v2.0.0-alpha.4 - 19 мая 2014

- Expose setup wrappers for compiled templates - 3638874

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-alpha.3...v2.0.0-alpha.4)

## v2.0.0-alpha.3 - 19 мая 2014

- [#797](https://github.com/handlebars-lang/handlebars.js/pull/797) - Передача полного ID помощника в helperMissing при наличии опций ([@tomdale](https://github.com/tomdale))
- [#793](https://github.com/handlebars-lang/handlebars.js/pull/793) - Убедитесь, что isHelper приведён к булевому типу ([@mmun](https://github.com/mmun))
- Переработка логики инициализации шаблона - 085e5e1

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-alpha.2...v2.0.0-alpha.3)

## v2.0.0-alpha.2 - 6 марта 2014

- [#756](https://github.com/handlebars-lang/handlebars.js/pull/756) - Исправление ошибки в IE<=8 (нет Array::map), закрывает #751 ([@jenseng](https://github.com/jenseng))
- [#749](https://github.com/handlebars-lang/handlebars.js/pull/749) - Правильная обработка нескольких подвыражений в одном хэше, исправляет #748 ([@jenseng](https://github.com/jenseng))
- [#743](https://github.com/handlebars-lang/handlebars.js/issues/743) - Путаница или проблема с подвыражениями? ([@waynedpj](https://github.com/waynedpj))
- [#746](https://github.com/handlebars-lang/handlebars.js/issues/746) - [CLI] Поддержка `handlebars --version` ([@apfelbox](https://github.com/apfelbox))
- [#747](https://github.com/handlebars-lang/handlebars.js/pull/747) - Обновлен grunt-saucelabs, выявлены не проходящие тесты ([@Jonahss](https://github.com/Jonahss))
- Требование JSON для компилятора. - 058c0fb
- Временное отключение шага публикации AWS в CI - 8347ee2

Примечания по совместимости:

- Требуется полифил JSON для запуска компилятора в IE8 и ниже. Рекомендуется использовать предкомпилятор вместо запуска компилятора в этих устаревших окружениях.[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-alpha.1...v2.0.0-alpha.2)## v2.0.0-alpha.1 - 10 февраля 2014 года - [#182](https://github.com/handlebars-lang/handlebars.js/pull/182) - Разрешение передачи параметров хэша в частичные шаблоны ([@kpdecker](https://github.com/kpdecker))
 - [#392](https://github.com/handlebars-lang/handlebars.js/pull/392) - Доступ к корневому контексту в частичных шаблонах и помощниках ([@kpdecker](https://github.com/kpdecker))
 - [#472](https://github.com/handlebars-lang/handlebars.js/issues/472) - Помощники не могут иметь десятичные параметры ([@kayleg](https://github.com/kayleg))
 - [#569](https://github.com/handlebars-lang/handlebars.js/pull/569) - Невозможно найти значения массива с помощью @index ([@kpdecker](https://github.com/kpdecker))
 - [#491](https://github.com/handlebars-lang/handlebars.js/pull/491) - Для вложенных помощников: получить переменные @ внешнего помощника из внутреннего ([@kpdecker](https://github.com/kpdecker))
 - [#669](https://github.com/handlebars-lang/handlebars.js/issues/669) - Возможность отменить регистрацию помощника ([@dbachrach](https://github.com/dbachrach))
 - [#730](https://github.com/handlebars-lang/handlebars.js/pull/730) - Чистые блочные помощники ([@kpdecker](https://github.com/kpdecker))
 - [#634](https://github.com/handlebars-lang/handlebars.js/pull/634) - Было бы здорово передавать имя помощника в `blockHelperMissing` ([@kpdecker](https://github.com/kpdecker))
 - [#729](https://github.com/handlebars-lang/handlebars.js/pull/729) - Преобразование спецификации шаблона в литерал объекта ([@kpdecker](https://github.com/kpdecker))
 - [#658](https://github.com/handlebars-lang/handlebars.js/issues/658) - Глубокие помощники не работают после обновления с версии 1.0.0 ([@xibxor](https://github.com/xibxor))
 - [#671](https://github.com/handlebars-lang/handlebars.js/issues/671) - Ошибка при использовании {{#each}} без параметров ([@stepancheg](https://github.com/stepancheg))
 - [#689](https://github.com/handlebars-lang/handlebars.js/issues/689)js/issues/689) - Поврежденная предварительная компиляция шаблона ([@AAS](https://github.com/AAS))
 - [#698](https://github.com/handlebars-lang/handlebars.js/pull/698) - Исправление генерации парсера под Windows ([@osiris43](https://github.com/osiris43))
 - [#699](https://github.com/handlebars-lang/handlebars.js/issues/699) - @DATA не компилируется в недействительный JS в режиме stringParams ([@kpdecker](https://github.com/kpdecker))
 - [#705](https://github.com/handlebars-lang/handlebars.js/issues/705) - 1.3.0 не может быть обернут в IIFE ([@craigteegarden](https://github.com/craigteegarden))
 - [#706](https://github.com/handlebars-lang/handlebars.js/pull/706) - README: Использование помощника with вместо зависимости от blockHelperMissing ([@scottgonzalez](https://github.com/scottgonzalez))- [#700](https://github.com/handlebars-lang/handlebars.js/pull/700) - Удаление избыточных условий ([@blakeembrey](https://github.com/blakeembrey))
- [#704](https://github.com/handlebars-lang/handlebars.js/pull/704) - Очистка JavaScript Compiler ([@blakeembrey](https://github.com/blakeembrey))

Примечания по совместимости:

- Помощник `helperMissing` больше не имеет индексированного аргумента имени. Имя помощника теперь доступно через `options.name`.
- Выходные данные предкомпилятора изменились, что нарушает совместимость с предыдущими версиями времени выполнения и предкомпилированными выходными данными.
- `JavaScriptCompiler.compilerInfo` теперь возвращает общие объекты вместо исходного кода JavaScript.
- Изменения AST
  - INTEGER -> NUMBER
  - Дополнительный параметр hash PartialNode
  - Новый тип RawBlockNode
- Фреймы данных теперь имеют поле `_parent`. Это внутреннее поле, но оно перечисляемо для целей производительности/совместимости.

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.3.0...v2.0.0-alpha.1)## v1.3.0 - 1 января 2014 года - [#690](https://github.com/handlebars-lang/handlebars.js/pull/690) - Добавлена поддержка подвыражений ([@machty](https://github.com/machty))
- [#696](https://github.com/handlebars-lang/handlebars.js/pull/696) - Исправлено использование зарезервированного ключевого слова "default" ([@nateirwin](https://github.com/nateirwin))
- [#692](https://github.com/handlebars-lang/handlebars.js/pull/692) - Добавлены номера строк к узлам при парсинге ([@fivetanley](https://github.com/fivetanley))
- [#695](https://github.com/handlebars-lang/handlebars.js/pull/695) - Извлечены опции из настройки параметров для более простого расширения ([@blakeembrey](https://github.com/blakeembrey))
- [#694](https://github.com/handlebars-lang/handlebars.js/pull/694) - Делает окружение переиспользуемым ([@blakeembrey](https://github.com/blakeembrey))
- [#636](https://github.com/handlebars-lang/handlebars.js/issues/636) - Вывод строки и столбца ошибок ([@sgronblo](https://github.com/sgronblo))
- Использование литерала для поиска данных - c1a93d3
- Добавлены проверки целостности обработки стека - cd885bf
- Исправлено утечка идентификатора стека при замене стека - ddfe457
- Исправлено неправильное удаление стека при замене литералов - f4d337d[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.2.1...v1.3.0)## v1.2.1 - 26 декабря 2013

- [#684](https://github.com/handlebars-lang/handlebars.js/pull/684) - Разрешить любое количество завершающих символов для допустимой JavaScript переменной ([@blakeembrey](https://github.com/blakeembrey))
- [#686](https://github.com/handlebars-lang/handlebars.js/pull/686) - Ложные имена модулей AMD в версии 1.2.0 ([@kpdecker](https://github.com/kpdecker))

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.2.0...v1.2.1)## v1.2.0 - 23 декабря 2013 - [#675](https://github.com/handlebars-lang/handlebars.js/issues/675) - Невозможно скомпилировать пустой шаблон для частичного ([@erwinw](https://github.com/erwinw))
 - [#677](https://github.com/handlebars-lang/handlebars.js/issues/677) - Утроенные фигурные скобки не работают в IE ([@hamzaCM](https://github.com/hamzaCM))
 - [#655](https://github.com/handlebars-lang/handlebars.js/issues/655) - Загрузка Handlebars с помощью bower ([@niki4810](https://github.com/niki4810))
 - [#657](https://github.com/handlebars-lang/handlebars.js/pull/657) - Исправление проблемы с компиляцией не-Handlebars шаблонов через CLI ([@chrishoage](https://github.com/chrishoage))
 - [#681](https://github.com/handlebars-lang/handlebars.js/pull/681) - Добавление тестирования в браузере и CI Saucelabs ([@kpdecker](https://github.com/kpdecker))
 - [#661](https://github.com/handlebars-lang/handlebars.js/pull/661) - Добавление @first и @index к #each объектному итерированию ([@cgp](https://github.com/cgp))
 - [#650](https://github.com/handlebars-lang/handlebars.js/pull/650) - Handlebars имеет лицензию MIT ([@thomasboyt](https://github.com/thomasboyt))
 - [#641](https://github.com/handlebars-lang/handlebars.js/pull/641) - Документация процесса тестирования Ember ([@kpdecker](https://github.com/kpdecker))
 - [#662](https://github.com/handlebars-lang/handlebars.js/issues/662) - handlebars-source 1.1.2 отсутствует в RubyGems.
 - [#656](https://github.com/handlebars-lang/handlebars.js/issues/656) - Expose COMPILER_REVISION проверки как хук ([@machty](https://github.com/machty))
 - [#668](https://github.com/handlebars-lang/handlebars.js/issues/668) - Рассмотрение публикации handlebars-runtime как отдельного модуля в npm ([@dlmanning](https://github.com/dlmanning))
 - [#679](https://github.com/handlebars-lang/handlebars.js/issues/679) - Невозможно переопределить invokePartial ([@mattbrailsford](https://github.com/mattbrailsford))
 - [#646](https://github.com/handlebars-lang/handlebars.js/pull/646) - Исправление "\\{{" сразу после "\{{" ([@dmarcotte](https://github.com/dmarcotte))
- Разрешить extend работать с непрототипированными объектами - eb53f2e
- Добавить публичные API тесты для JavascriptCompiler - 1a751b2
- Добавить тестовое покрытие AST для более сложных путей - ddea5be
- Исправить обработку логического экранирования в MustacheNode - b4968bb

Соответствующие примечания:- `@index` и `@first` теперь поддерживаются для итерации `each` по объектам
- `Handlebars.VM.checkRevision` и `Handlebars.JavaScriptCompiler.prototype.compilerInfo` теперь доступны для изменения поведения проверки версий.
- Пользователи Browserify могут ссылаться на библиотеку времени выполнения через `require('handlebars/runtime')`

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.1.2...v1.2.0)

## v1.1.2 - 5 ноября 2013 года

- [#645](https://github.com/handlebars-lang/handlebars.js/issues/645) - 1.1.1 не работает под IE8 ([@kpdecker](https://github.com/kpdecker))
- [#644](https://github.com/handlebars-lang/handlebars.js/issues/644) - Использование предкомпилированных шаблонов (режим AMD) с handlebars.runtime 1.1.1 ([@fddima](https://github.com/fddima))

- Добавлены простые двоичные утилитные тесты - 96a45a4
- Исправлено компилирование пустой строки - eea708a

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.1.1...v1.1.2)

## v1.1.1 - 4 ноября 2013 года

- [#642](https://github.com/handlebars-lang/handlebars.js/issues/642) - handlebars 1.1.0 не работают с nodejs

- Исправлены ссылки на заметки выпуска - 17ba258

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.1.0...v1.1.1)

## v1.1.0 - 3 ноября 2013 года- [#628](https://github.com/handlebars-lang/handlebars.js/pull/628) - Преобразование кода в модули ES6 ([@kpdecker](https://github.com/kpdecker))
 - [#336](https://github.com/handlebars-lang/handlebars.js/pull/336) - Добавление синтаксиса управления пробелами ([@kpdecker](https://github.com/kpdecker))
 - [#535](https://github.com/handlebars-lang/handlebars.js/pull/535) - Исправление вероятной ошибки JIT под Safari ([@sorentwo](https://github.com/sorentwo))
 - [#483](https://github.com/handlebars-lang/handlebars.js/issues/483) - Добавление переменных @first и @last к помощнику each ([@denniskuczynski](https://github.com/denniskuczynski))
 - [#557](https://github.com/handlebars-lang/handlebars.js/pull/557) - Экранирование `\\{{foo}}` работает только в некоторых ситуациях ([@dmarcotte](https://github.com/dmarcotte))
 - [#552](https://github.com/handlebars-lang/handlebars.js/pull/552) - Добавлен флаг удаления BOM.  ([@blessenm](https://github.com/blessenm))
 - [#543](https://github.com/handlebars-lang/handlebars.js/pull/543) - Публикация проходящих сборок master на s3 ([@fivetanley](https://github.com/fivetanley))
 - [#608](https://github.com/handlebars-lang/handlebars.js/issues/608) - Добавить флаг `includeZero` к условию `if`
 - [#498](https://github.com/handlebars-lang/handlebars.js/issues/498) - `Handlebars.compile` завершает работу с ошибкой при пустой строке, хотя использование одного пробела работает корректно
 - [#599](https://github.com/handlebars-lang/handlebars.js/issues/599) - lambda-помощники получают параметры `options` только при использовании с аргументами
 - [#592](https://github.com/handlebars-lang/handlebars.js/issues/592) - Оптимизация производительности массивов и подпрограмм
 - [#571](https://github.com/handlebars-lang/handlebars.js/issues/571) - Обновление uglify нарушает совместимость с более старыми версиями node
 - [#587](https://github.com/handlebars-lang/handlebars.js/issues/587)js/issues/587) - Вложенная частичная шаблонизация приводит к ошибке?Примечания по совместимости:

- Проект теперь включает отдельные артефакты для AMD, CommonJS и глобальных объектов.
  - AMD: Пользователи могут загрузить упакованный файл `handlebars.amd.js` или `handlebars.runtime.amd.js` или загрузить отдельные модули напрямую. Пользователи AMD должны также отметить, что объект handlebars доступен через поле `default` загруженного объекта. Этот [gist](https://gist.github.com/wycats/7417be0dc361a69d5916) предоставляет некоторое обсуждение возможных совместимых обёрток.
  - CommonJS/Node: Загрузка в Node происходит как обычно через `require`
  - Глобальные: Файлы `handlebars.js` и `handlebars.runtime.js` должны работать так же, как версия 1.0.12 / 1.0.0.
- Артефакты сборки были удалены из репозитория. [npm][npm], [components/handlebars.js][components], [cdnjs][cdnjs] или страница [builds](builds-page) должны использоваться как источник собранных артефактов.
- Помощники, хранящиеся в контексте, теперь всегда получают хэш `options`. Ранее помощники без аргументов не получали этот аргумент.

[Изменения](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.12...v1.1.0)## v1.0.12 / 1.0.0 - 31 мая 2013 года - [#515](https://github.com/handlebars-lang/handlebars.js/issues/515) - Добавить поддержку расширений require для node ([@jjclark1982](https://github.com/jjclark1982))
- [#517](https://github.com/handlebars-lang/handlebars.js/issues/517) - Исправить вывод предкомпилятора amd с директориями ([@blessenm](https://github.com/blessenm))
- [#433](https://github.com/handlebars-lang/handlebars.js/issues/433) - Добавить поддержку unicode идентификаторов
- [#469](https://github.com/handlebars-lang/handlebars.js/issues/469) - Добавить поддержку `?` в идентификаторах
- [#534](https://github.com/handlebars-lang/handlebars.js/issues/534) - Обеспечить защиту от изменений прототипа объекта
- [#519](https://github.com/handlebars-lang/handlebars.js/issues/519) - Исправить частичные шаблоны с именем `.` ([@jamesgorrie](https://github.com/jamesgorrie))
- [#519](https://github.com/handlebars-lang/handlebars.js/issues/519) - Разрешить ID или строки в именах частичных шаблонов
- [#437](https://github.com/handlebars-lang/handlebars.js/issues/437) - Требовать соответствующее количество скобок в экранированных выражениях
- Объединить переданные частичные шаблоны и помощники с глобальным пространством имен
- Добавить поддержку сложных идентификаторов в ссылках @data
- Обновления документации

Примечания по совместимости:- Парсер теперь строже проверяет `{{{`, требуя, чтобы заключительный токен был `}}}`. Шаблоны, которые не следуют этой конвенции, должны добавить дополнительное значение скобки.
- Код, который зависит от глобального пространства имен, которое заглушается при передаче пользовательских помощников или частей, должен явно передавать значение `undefined` для любых помощников, которые не должны быть доступны.
- Версия компилятора изменилась. Предварительно скомпилированные шаблоны с версией 1.0.12 или выше должны использовать версию runtime 1.0.0 или выше.

[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.11...v1.0.12)## v1.0.11 / 1.0.0-rc4 - 13 мая 2013 - [#458](https://github.com/handlebars-lang/handlebars.js/issues/458) - Исправление синтаксиса `. /foo` ([@jpfiset](https://github.com/jpfiset))
 - [#460](https://github.com/handlebars-lang/handlebars.js/issues/460) - Разрешение символа `:` в неэкранированных идентификаторах ([@jpfiset](https://github.com/jpfiset))
 - [#471](https://github.com/handlebars-lang/handlebars.js/issues/471) - Создание заметок о выпуске (Эти! )
 - [#456](https://github.com/handlebars-lang/handlebars.js/issues/456) - Разрешение экранирования `\`
 - [#211](https://github.com/handlebars-lang/handlebars.js/issues/211) - Исправление исключения в `escapeExpression`
 - [#375](https://github.com/handlebars-lang/handlebars.js/issues/375) - Экранирование unicode-символов новой строки
 - [#461](https://github.com/handlebars-lang/handlebars.js/issues/461) - Не провоцировать ошибку при компиляции `""`
 - [#302](https://github.com/handlebars-lang/handlebars.js/issues/302) - Исправление проверки целостности в режиме knownHelpersOnly
 - [#369](https://github.com/handlebars-lang/handlebars.js/issues/369) - Разрешение регистрации нескольких помощников и частей, передавая объект определения
 - Добавление объявления пакета bower ([@DevinClark](https://github.com/DevinClark))
 - Добавление объявления пакета NuSpec ([@MikeMayer](https://github.com/MikeMayer))
 - Обработка пустого контекста в `with` ([@thejohnfreeman](https://github.com/thejohnfreeman))
 - Поддержка пользовательских расширений шаблонов в CLI ([@matteoagosti](https://github.com/matteoagosti))
 - Исправление поддержки Rhino ([@broady](https://github.com/broady))
 - Включение контекстов в режиме строк ([@leshill](https://github.com/leshill))
 - Возврат предкомпилированных скриптов при компиляции в AMD ([@JamesMaroney](https://github.com/JamesMaroney))
 - Обновление документации ([@iangreenleaf](https://github.com/iangreenleaf))com/iangreenleaf), [@gilesbowkett](https://github.com/gilesbowkett), [@utkarsh2012](https://github.com/utkarsh2012))
 - Исправление обработки `toString` в IE и browserify ([@tommydudebreaux](https://github.com/tommydudebreaux))
 - Добавление метаданных программы [записей коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.10...v1.0.11)## v1.0.10 - Node - 27 февраля 2013

- [#428](https://github.com/handlebars-lang/handlebars.js/issues/428) - Исправление некорректного отображения вложенных шаблонов
- Исправление сообщения об ошибке ([@tricknotes](https://github.com/tricknotes))
- Добавлена поддержка отрицательных чисел
- Преобразование библиотеки в единую IIFE
- Добавление gemspec для handlebars-source ([@machty](https://github.com/machty))

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.9...v1.0.10)

## v1.0.9 - Node - 15 февраля 2013

- Добавлен API `Handlebars.create` для модуля Node для изолированных экземпляров ([@tommydudebreaux](https://github.com/tommydudebreaux))

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/1.0.0-rc.3...v1.0.9)

## 1.0.0-rc3 - Браузер - 14 февраля 2013

- Предотвращение использования `this` или `..` в неправильном месте ([@leshill](https://github.com/leshill))
- Добавление передачи AST для `parse`/`compile`/`precompile` ([@machty](https://github.com/machty))
- Оптимизация сгенерированного вывода путем встраивания операторов, где это возможно
- Проверка версии компилятора при оценке шаблонов
- Упаковка браузерной версии в npm пакет

[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.8...1.0.0-rc.3)

## Предыдущие версии

При обновлении с серии Handlebars 0.9 обратите внимание на изменение сигнатуры передачи пользовательских помощников или частей шаблонам.

Вместо:

```js
template(context, helpers, partials, [data]);

Используйте:

template(context, { helpers: helpers, partials: partials, data: data });
```[страница сборки]: http://builds.handlebarsjs.com.s3.amazonaws.com/index.html
[cdnjs]: http://cdnjs.com/libraries/handlebars.js/
[components]: https://github.com/components/handlebars.js
[npm]: https://npmjs.org/package/handlebars

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-handlebars.js.git
git@api.gitlife.ru:oschina-mirror/mirrors-handlebars.js.git
oschina-mirror
mirrors-handlebars.js
mirrors-handlebars.js
master