John Lenz (2013-12-18T03:24:19.000Z)
ADVANCED mode requires property definitions for external properties. There
aren't ES6 definitions in the default externs for Map or other new features.
On Dec 17, 2013 10:59 AM, "Andrea Giammarchi" <andrea.giammarchi at gmail.com>
wrote:

> not shold but **does** work ;-)
>
> Although I agree that specific thing is very inconvenient in some case and
> minifiers knows this too.
>
> As example, google closure compiler fails with this script in two ways
>
> ```javascript
> var wm = new WeakMap;
> wm.delete(Object);
> ```
>
> Simple minification does the right, resulting in an IE8 safe script such`
> wm['delete'](Object)` thing but it throws a warning:
> ```
> JSC_INVALID_ES3_PROP_NAME: Keywords and reserved words are not allowed as
> unquoted property names in older versions of JavaScript. If you are
> targeting newer versions of JavaScript, set the appropriate language_in
> option. at line 2 character 3
> wm.delete(Object);
> ```
>
> While in advance mode and no special flags it just breaks resulting in:
>
> `(new WeakMap).a(Object);`
>
> YUI is not even able to minify that script ... in few words developers
> tools do not make the usage of these methods in ES6 collections easy to
> write and use for developers themselves so tey have to remember those
> square brackets ... pretty silly if you ask me ^_^
>
> ES6#del() or remove() would have been way easier solution ... choosing a
> reserved word was OKish, but was also asking for few extra gotchas/troubles
> nobody really needed/wanted.
>
> The good part is: nobody will care about IE8 anymore ... and pretty
> soon!!! Still tools should be smarter about this issue
>
> Best Regards
>
>
>
>
>
>
> On Tue, Dec 17, 2013 at 1:38 AM, David Bruant <bruant.d at gmail.com> wrote:
>
>> Le 17/12/2013 10:19, Shijun He a écrit :
>>
>>  There are some methods using reserved word "delete", such as
>>> Map.prototype.delete, Set.prototype.delete... Though it is allowed since
>>> ES5, I think we'd better avoid it because it cause es6 shim solution fail
>>> on legacy browsers such as IE8.
>>>
>> Note that there is a warning [1] (maybe arguably). Among other
>> incompatibilities, "size" is a getter too.
>>
>> myMap.delete fails, but myMap['delete'] should work.
>>
>> David
>>
>> [1] https://github.com/paulmillr/es6-shim/blob/
>> 4322eae20b6f8a7769fa1d89ac207ef8ee9e1ee4/es6-shim.js#L662
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20131217/d02d1ba8/attachment.html>
domenic at domenicdenicola.com (2014-01-03T15:07:51.684Z)
ADVANCED mode requires property definitions for external properties. There
aren't ES6 definitions in the default externs for Map or other new features.