This is current V8 behavior:

```
> let obj = {};
> obj[Object(Symbol())] = true;
TypeError: Cannot convert object to primitive value

> '' + Object(Symbol())
TypeError: Cannot convert a Symbol wrapper object to a primitive value
```

Both exceptions make a lot of sense, but I don’t see that in the spec. The way 
I’d expect it to happen is via `Symbol.prototype[@@toPrimitive]` – it would 
always throw. But that’s not the case.

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol.prototype-@@toprimitive

-- 
Dr. Axel Rauschmayer
[email protected]
rauschma.de



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to