Thanks for your clarification!<div><br></div><div>I filed this issue to <a href="http://bugs.ecmascript.org">bugs.ecmascript.org</a></div><div><a href="https://bugs.ecmascript.org/show_bug.cgi?id=414">https://bugs.ecmascript.org/show_bug.cgi?id=414</a></div>

<div><br></div><div>Regards,</div><div>Yusuke Suzuki<br><br><div class="gmail_quote">On Sun, Jun 24, 2012 at 11:50 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"><div style="word-wrap:break-word">Yes, please file a bug report at <a href="http://bugs.ecmascript.org" target="_blank">bugs.ecmascript.org</a><div>

<br></div><div>As you suggest, the straight forward way to specify this is probably to use a normal array for the actual argument values for Binding Initialisation of the formals rather than trying to use the arguments object for that purpose.   Of course, that doesn't mean that the additional array actually has to be created at runtme, it will just be a specification device.</div>

<div><br></div><div>Allen</div><div><br></div><div><br></div><div><div><div><div class="h5"><div>On Jun 24, 2012, at 5:11 AM, Yusuke Suzuki wrote:</div><br></div></div><blockquote type="cite"><div><div class="h5"><div>Hello everyone,</div>

<div><br></div><div>I'm now implementing ES.next engine in ES5.1 and I may find issue on current draft.</div><div><br></div><div>In June 15 draft, to realize destructuring assignment in FormalParameters, we perform Binding Initialisation for formals with Arguments object.</div>




<div><br></div><div>In section 10.5.3, step 8-d,</div><div><br></div><div>    d. Let formalStatus be the result of performing Binding Initialisation for formals with ao and undefined as arguments.</div><div><br></div><div>



But, ao.[[Get]], ao.[[GetOwnProperty]] have been already overriden to mapped arguments special internal methods in non-strict function.</div>
<div><br></div><div>For example,</div><div><br></div><div><span style="white-space:pre-wrap">     </span>function test(a) { }</div><div><span style="white-space:pre-wrap">     </span>test(10);</div>
<div><br></div><div>In this script, we perform Indexed Binding Initialisation and finally, we perform ao.[[Get]]('a').</div><div>But, in this phase, 'a' entry of environmental record is initialized to undefined in 10.5.3-5-c-ii-1, so ao's getter defined in CreateMappedArgumentsObject step 7-c-ii-2,</div>




<div><br></div><div><span style="white-space:pre-wrap"> </span>function () { return a; }</div><div><br></div><div>always returns undefined.</div><div>As the result, ao.[[Get]] result is always undefined, and we cannot initialize argument by correct value.</div>




<div><br></div><div>I think it is issue of current draft, is it right?</div><div><br></div><div>To fix this, I suggest creating JS Array from argumentsList and performing Binding Initialisation with it, or delaying internal method override phase of ao.</div>




<div><br></div><div>Regards,</div><div>Yusuke Suzuki</div><div><br></div></div></div>
_______________________________________________<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></div></div></blockquote></div><br></div>