<div dir="ltr">This came out of disabling "use strict"; everywhere thread<div><a href="https://mail.mozilla.org/pipermail/es-discuss/2013-January/028511.html">https://mail.mozilla.org/pipermail/es-discuss/2013-January/028511.html</a></div>
<div><br></div><div>After a better analysis, I have realized it is possible to simulate the monocle mustache in ES5 via "use strict";</div><div><br></div><div>Any thought on this, appreciated.<br><div><br></div>
<div><div>function With(o) {</div><div>  return function (f) {</div><div>    return Function(</div><div>      "with(this){return(" + ("" + f).replace(</div><div>        "{", "{'use strict';"</div>
<div>      ) + ").call(this)}"</div><div>    ).call(o);</div><div>  };</div><div>}</div><div><br></div><div>With({test: 123})(function () {</div><div>  alert(test); // 123</div><div>  outer = 456; // throws outer is not defined</div>
<div>});</div></div></div><div><br></div><div><div>alert(With({test: 123})(function () {</div><div>  return test;</div><div>}));</div></div><div><br></div><div style>br</div></div>