Я не знаходжу нічого про своє запитання тут щодо 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";
вгорі, але чи є спосіб досягти протилежного?