Inline...<br><br><div class="gmail_quote">On Fri, Oct 26, 2012 at 1:37 PM, Allen Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com" target="_blank">allen@wirfs-brock.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


ES5 added "poison pill" properties to the strict mode function objects that were intended to prevent implementors from supporting the non-standard legacy "caller" and "arguments" properties on such objects.<br>



<br>
In ES6 we have several new syntactic forms for defining functions: arrow functions, concise methods, generators.  What should be do WRT the position pill properties for functions defined using such new syntax.  Possibilities:<br>



<br>
1)  Same as ES5 function definitions.  If strict they get the poison pills , if non-strict they don't.<br></blockquote><div><br></div><div>The least desirable as far as "paving an ideal path forward", but likely the most realistically desirable if the goal maintain expectations. </div>


<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2)  All new function forms always get poison pills, even if they aren't strict.<br></blockquote><div><br></div><div>This could be seen as "less to think about" w/r to just new function forms, or "more to think about" when side-by-side with existing function forms. I'm willing to champion this as progress and a future with "less to think about".</div>


<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
3)  They never get poison pills because new implementor would be silly enough to associate they legacy features with new syntax.<br></blockquote><div><br></div><div>Of course, this is the "ideal world" option, right? Less to implement, less to be concerned with on the whole. On the other hand, I'd be worried that leaving it unspecified would inevitably result in mismatched implementations.</div>

<div><br></div><div><br></div><div>#2 and #3</div><div><br></div><div>Rick</div>
<div><br></div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Options 1&2 would essentially collapse to "always" if new function definition syntactic forms always produced strict mode code.  However, I believe, the current plan of record is that the new forms have the same strict mode opt-in rules as ES5 uses for function definitions.<br>



<br>
Allen<br>
<br>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div><br>