Я не нашел ничего о моем вопросе здесь, в MDC или спецификациях ECMAscript. Вероятно, кто-то знает более "хакерский" способ решить эту проблему.
Я вызываю "use strict"
в каждый файл javascript в своей среде. Все мои файлы начинаются следующим образом
(function(win, doc, undef) {
"use strict";
// code & functions
}(window, window.document));
Теперь у меня есть пользовательская функция, которая обрабатывает ошибки. Эти функции используют свойство .caller
для предоставления трассировки стека контекста. Выглядит так:
var chain = (function() {
var _parent = _error,
_ret = '';
while( _parent.caller ) {
_ret += ' -> ' + _parent.caller.name;
_parent = _parent.caller;
}
return _ret;
}());
Но, конечно, в строгом режиме .caller
- это недискриминационная опора, которая бросается при извлечении. Итак, мой вопрос: кто-нибудь знает, как отключить строгую более "функциональную"?
"use strict";
наследуется всеми функциями после его вызова. Теперь у нас есть возможность просто использовать строгий режим в определенных функциях, просто называя "use strict";
в верхней части этих, но есть ли способ достижения противоположности?