Сообщение от kobezzza
|
Почему не просто global? Или у тебя этот скрипт также работает в браузере?
|
Когда полифил для браузера одновременно является CommonJS модулем, его кто-то может подключить через require в браузере с помощью какого-нибудь Browserify (не знаю зачем это делать в браузере, но так делают).
В браузере модуль оказывается завернутым в дополнительную функцию, поэтому в strict режиме такая обертка для модуля:
(function (global) {
…
}(this));
оказывается нерабочей.
Например, возьмем все тот же полифил для Promise.
Как тут угодить всем тем, кто:
1. подключает полифил напрямую в браузере и ожидает что глобальный конструктор станет доступен автоматически
<script src="promise.js"></script>
<script>
Promise…
</script>
2. подключает полифил в Node.js:
var Promise = require('es6-promises');
Promise…
3. подключает полифил в Node.js и ожидает что глобальный конструктор станет доступен автоматически
require('es6-promises');
Promise…
4. подключает полифил в Browserify:
var Promise = require('es6-promises');
Promise…
5. подключает полифил в Browserify и ожидает что глобальный конструктор станет доступен автоматически
require('es6-promises');
Promise…
?
Например, в полифиле для
setImmediate используется top lvl global.