<html><head><meta http-equiv="Content-Security-Policy" content="script-src 'self'; img-src * cid: data:;"></head><body style="background-color: rgb(255, 255, 255); background-image: initial; line-height: initial;"><div id="response_container_BBPPID" style="outline:none;font-size:initial;font-family:"Calibri","Slate Pro",sans-serif,"sans-serif"" dir="auto" contenteditable="false"> <div name="BB10" dir="auto" style="width: 100%; padding: initial; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"> I see, I can understand how the currently proposed syntax is more powerful but I can also see people saying that is the base case with only one object it seems weird to have the additional curly braces</div><div name="BB10" id="BB10_response_div_BBPPID" dir="auto" style="width: 100%; padding: initial; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"><br></div><div name="BB10" id="BB10_response_div_BBPPID" dir="auto" style="width: 100%; padding: initial; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);">Sebastian </div>                                                                                                                                      <div name="BB10" dir="auto" style="width: 100%; padding: initial; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"> <br style="display:initial"></div>                            <div id="blackberry_signature_BBPPID" name="BB10" dir="auto">     <div name="BB10" dir="auto" style="padding: initial; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"></div> </div></div><div id="_original_msg_header_BBPPID" dir="auto">                                                                                                                                             <table width="100%" style="background-color: white; border-spacing: 0px; display: table; outline: none;" contenteditable="false"> <tbody><tr><td colspan="2" style="padding: initial; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);">                           <div style="border-right: none; border-bottom: none; border-left: none; border-image: initial; border-top: 1pt solid rgb(181, 196, 223); padding: 3pt 0in 0in; font-family: Tahoma, "BB Alpha Sans", "Slate Pro"; font-size: 10pt;">  <div id="from"><b>From:</b> rtm@gol.com</div><div id="sent"><b>Sent:</b> October 24, 2017 3:26 PM</div><div id="to"><b>To:</b> sebastian@malton.name</div><div id="cc"><b>Cc:</b> es-discuss@mozilla.org</div><div id="subject"><b>Subject:</b> Re: Extend Object Dereferencing</div></div></td></tr></tbody></table><div style="border-right: none; border-bottom: none; border-left: none; border-image: initial; border-top: 1pt solid rgb(186, 188, 209); display: block; padding: initial; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"></div> <br> </div><!--start of _originalContent --><div name="BB10" dir="auto" style="background-image: initial; line-height: initial; outline: none;" contenteditable="false"><div dir="ltr">If your intent is to say<div><br></div><div>```</div><div>const a = {b: e.b, c: e.c, d: e.d};</div><div>```</div><div><br></div><div>then the reception to such functionality (often referred to as "picking") on this list has been decidedly lukewarm, although I remain mystified why, since IMHO it is a common use case and syntactically straightforward. FWIW the currently proposed syntax is</div><div><br></div><div>```</div><div>const a = { {b, c, d} = e };</div><div>```</div><div><br></div><div>which allows combining properties from more than one object, as in</div><div><br></div><div>```</div><div>const a = { {b, c, d} = e, {g, h, i} = k };</div><div>```</div><div><br></div><div>which is equivalent to </div><div><br></div><div>```</div><div>const a = {b: e.b, c: e.c, d: e.d, g: k.g, h: k.h, i: k.i};</div><div>```</div><div><br></div><div>Bob</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 25, 2017 at 12:39 AM, Sebastian Malton <span dir="ltr"><<a href="mailto:sebastian@malton.name">sebastian@malton.name</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="background-color:rgb( 255 , 255 , 255 )"><div id="m_362607926362922101response_container_BBPPID" style="outline:none;font-family:'calibri' , 'slate pro' , sans-serif ," dir="auto"> <div dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )"> I guess I do except for the second part</div><div id="m_362607926362922101BB10_response_div_BBPPID" dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )"><br></div><div id="m_362607926362922101BB10_response_div_BBPPID" dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )">```</div><div id="m_362607926362922101BB10_response_div_BBPPID" dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )">const a = {b, c, d} = e;</div><div id="m_362607926362922101BB10_response_div_BBPPID" dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )">```</div>                                                                                                                                      <div dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )"> <br></div>                            <div id="m_362607926362922101blackberry_signature_BBPPID" dir="auto">     <div dir="auto" style="background-color:rgb( 255 , 255 , 255 )"></div> </div></div><div id="m_362607926362922101_original_msg_header_BBPPID" dir="auto">                                                                                                                                             <table width="100%" style="background-color:white;border-spacing:0px;display:table;outline:none"><tbody><tr><td colspan="2" style="background-color:rgb( 255 , 255 , 255 )">                           <div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb( 181 , 196 , 223 );padding:3pt 0in 0in;font-family:'tahoma' , 'bb alpha sans' , 'slate pro';font-size:10pt">  <div id="m_362607926362922101from"><b>From:</b> <a href="mailto:rtm@gol.com">rtm@gol.com</a></div><div id="m_362607926362922101sent"><b>Sent:</b> October 24, 2017 3:07 PM</div><div id="m_362607926362922101to"><b>To:</b> <a href="mailto:sebastian@malton.name">sebastian@malton.name</a></div><div id="m_362607926362922101cc"><b>Cc:</b> <a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a></div><div id="m_362607926362922101subject"><b>Subject:</b> Re: Extend Object Dereferencing</div></div></td></tr></tbody></table><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb( 186 , 188 , 209 );display:block;background-color:rgb( 255 , 255 , 255 )"></div> <br> </div><div><div class="h5"><div dir="auto" style="outline:none"><div dir="ltr">Don't you just mean the following:<div><br></div><div>```</div><div><span style="font-family:'calibri' , 'slate pro' , sans-serif , sans-serif;font-size:medium">const {abc, xyz, qnc: {awj}} = obj;</span><br></div><div><span style="font-family:'calibri' , 'slate pro' , sans-serif , sans-serif;font-size:medium">```</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 25, 2017 at 12:22 AM, Sebastian Malton <span dir="ltr"><<a href="mailto:sebastian@malton.name">sebastian@malton.name</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="background-color:rgb( 255 , 255 , 255 )"><div id="m_362607926362922101m_277605400857972113response_container_BBPPID" dir="auto"> <div dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )"> This could also be extended to help with cleansing objects.</div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )"><br></div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )">const abc = {cde, def, efg} = obj;</div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )"><br></div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )">Would create an object abc with only those three fields in it.</div>                                                                                                                                      <div dir="auto" style="width:100%;background-color:rgb( 255 , 255 , 255 )"> <br></div>                            <div id="m_362607926362922101m_277605400857972113blackberry_signature_BBPPID" dir="auto">     <div dir="auto" style="background-color:rgb( 255 , 255 , 255 )"></div> </div></div><div id="m_362607926362922101m_277605400857972113_original_msg_header_BBPPID" dir="auto">                                                                                                                                             <table width="100%" style="background-color:white;border-spacing:0px;display:table;outline:none"><tbody><tr><td colspan="2" style="background-color:rgb( 255 , 255 , 255 )">                           <div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb( 181 , 196 , 223 );padding:3pt 0in 0in;font-family:'tahoma' , 'bb alpha sans' , 'slate pro';font-size:10pt">  <div id="m_362607926362922101m_277605400857972113from"><b>From:</b> <a href="mailto:sebastian@malton.name">sebastian@malton.name</a></div><div id="m_362607926362922101m_277605400857972113sent"><b>Sent:</b> October 24, 2017 2:51 PM</div><div id="m_362607926362922101m_277605400857972113to"><b>To:</b> <a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a></div><div id="m_362607926362922101m_277605400857972113subject"><b>Subject:</b> Extend Object Dereferencing</div></div></td></tr></tbody></table><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb( 186 , 188 , 209 );display:block;background-color:rgb( 255 , 255 , 255 )"></div> <br> </div><div><div class="m_362607926362922101h5"><div dir="auto" style="outline:none"><div><div id="m_362607926362922101m_277605400857972113response_container_BBPPID" dir="auto"> <div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%"> Currently you can do the following </div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%"><br></div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%">const {abc, xyz, qnc} = obj;</div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%"><br></div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%">However if you want to go more than one level deep then you have to do it again for each level.</div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%"><br></div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%">I therefore propose the ability to do the following </div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%"><br></div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="width:100%"><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="font-family:'calibri' , 'slate pro' , sans-serif , sans-serif;width:380px">const {abc, xyz, <a href="http://qnc.awj">qnc.awj</a>} = obj;</div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="font-family:'calibri' , 'slate pro' , sans-serif , sans-serif;width:380px"><br></div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="font-family:'calibri' , 'slate pro' , sans-serif , sans-serif;width:380px">And this would create the variables 'abc'', 'xyz', 'awj' with the values from obj. If qnc is not present then an undefined dereference exception would be thrown. </div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="font-family:'calibri' , 'slate pro' , sans-serif , sans-serif;width:380px"><br></div><div id="m_362607926362922101m_277605400857972113BB10_response_div_BBPPID" dir="auto" style="font-family:'calibri' , 'slate pro' , sans-serif , sans-serif;width:380px">This could also be extended with the proposed '?.' notation to go even deeper safely. </div></div>                            <div id="m_362607926362922101m_277605400857972113blackberry_signature_BBPPID" dir="auto">     <div id="m_362607926362922101m_277605400857972113_signaturePlaceholder_BBPPID" dir="auto"></div> </div></div></div></div></div></div></div><br>______________________________<wbr>_________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss">https://mail.mozilla.org/listi<wbr>nfo/es-discuss</a><br>
<br></blockquote></div><br></div>
</div></div></div></div></blockquote></div><br></div>
<!--end of _originalContent --></div></body></html>