Могу ли я отключить строгий режим ECMAscript для определенных функций?

Я не нахожу здесь ничего по своему вопросу о спецификациях MDC или ECMAscript. Возможно, кто-то знает более «хитрый» способ решить эту проблему.

Я призываю «использовать строгий» для каждого файла 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 - это не удаляемая опора, которая срабатывает при извлечении. Итак, мой вопрос: знает ли кто-нибудь способ отключить strict более "функционально"?

"use strict"; наследуется всеми функциями после его вызова. Теперь у нас есть возможность просто использовать строгий режим в определенных функциях, просто вызывая "use strict"; в верхней части, но есть ли способ добиться противоположного?

70
задан Bhargav Rao 21 September 2018 в 23:24
поделиться