Есть ли проект JavaScript, который нормализует ECMAScript 5

#javascript #ecmascript-5

#javascript #ecmascript-5

Вопрос:

Есть ли где-нибудь проект JavaScript, который фокусируется на собственной нормализации ECMAScript 5 в обычных браузерах?

Для справки, нормализуем таблицу следующим образом: http://kangax.github.com/es5-compat-table /

Я знаю об обертках, которые добавляют некоторые функции ES5 и возвращаются к собственным реализациям, если они существуют. Но я не видел проекта, который фокусируется исключительно на собственной реализации и нормализации. Есть мысли?

Ответ №1:

Я бы очень рекомендовал прокладку ES5:

https://github.com/kriskowal/es5-shim

Комментарии:

1. @c69 Я рекомендую вам использовать это в производстве каждый день. Он стабилен, он надежен.

2. @Raynos я имею в виду .. несправедливо даже называть его «ES5 shim», потому что он реализует только дополнения к массиву, .trim , Date .now и .toJSON , которые являются довольно небольшим подмножеством ES5. (маленький, но очень полезный, хотя).

3. @c69: вы просто не можете использовать все новые функции. Например .freeze() , or .seal() и другие функции могут быть реализованы только очень дерьмово, например Object.create() or Object.defineProperties() . Однако вы, по крайней мере, можете создавать поля для всех из них, чтобы существующий код es5 не прерывался (если он не сильно зависит от результата)

4. @c69 … Он настраивает все, что можно изменить. Если вы можете найти способы добавить больше, пожалуйста, внесите свой вклад

5. @Raynos: Я бы с этим не согласился. Разве он, например, просто «возвращает» исходный объект для .freeze() and .seal() ? Это вообще не прокладка, это просто полиполнение.

Ответ №2:

Я рекомендую вам использовать polyfills только для тех функций ES5, которые вы фактически используете в своем приложении, вместо того, чтобы включать дополнительную библиотеку, полную вещей, из которых вы будете использовать только некоторые фрагменты. YAGNI FTW. Стоит отметить, что некоторые функции ES5 «не поддаются настройке» в некоторых браузерах.

Ответ №3:

См http://www.mascaraengine.com / для другого подхода.