title: Can I disable ECMAscript strict mode for specific functions?
body: <p>I don't find anything about my question here on MDC or the ECMAscript specifications. Probably somebody knows a more 'hacky' way to solve this.</p>
  
  <p>I'm calling <code>"use strict"</code> on every javascript file in my environment. All my files start like this</p>
  
  <pre><code>(function(win, doc, undef) {
      "use strict";
  
      // code &amp; functions
  }(window, window.document));
  </code></pre>
  
  <p>Now, I have a custom function which handles errors. That functions uses the <code>.caller</code> property to provide a <em>context stack trace</em>. Looks like this:</p>
  
  <pre><code>var chain = (function() {
      var _parent = _error,
          _ret = '';
  
      while( _parent.caller ) {
          _ret += ' -&gt; ' + _parent.caller.name;
          _parent = _parent.caller;
      }
  
      return _ret;
  }());
  </code></pre>
  
  <p>But of course, in strict mode <code>.caller</code> is a non-deletable prop which throws when retrieved. So my question is, is anybody aware of way to <em>disable</em> strict more "function-wise" ?</p>
  
  <p><code>"use strict";</code> is inherited by all functions after it was called. Now we have the possibilty to just use strict mode in specific functions by just calling <code>"use strict";</code> at the top of those, but is there a way to achieve the opposite ?</p>