This was also pointed out to me elsewhere:

```js
const ToStringSpec = x => `${x}`;
```

On Tue, Dec 13, 2016 at 9:05 PM, Jordan Harband <ljh...@gmail.com> wrote:

> Here you go: `require('es-abstract').ToString` https://www.npmjs.
> com/package/es-abstract
>
> On Tue, Dec 13, 2016 at 7:44 PM, Bergi <a.d.be...@web.de> wrote:
>
>> Sergey R schrieb:
>>
>>> I want to propose a new language feature — Reflect.toStringSpec.
>>>
>>
>> `Reflect.toString` or `Reflect.toStringSpec`?
>>
>> Here is a repo https://github.com/chicoxyzzy/
>>> proposal-reflect-tostringspec
>>>
>>
>> | Rationale
>> |
>> | There is no exact way to call spec's `ToString` in JS.
>> | However it may be necessary for polyfills.
>>
>> It's not that hard to emulate, is it? There are other internal operations
>> would be more important.
>>
>> Regardless, the `Reflect` namespace is supposed to only contain object
>> tools that would be the default for proxy traps. No `ToString` in there.
>>
>> | Current solution is to do something like:
>> |
>> | function toStringSpec(target) {
>> |    return target == null ? target : String(Object(target));
>> | }
>>
>> That looks horribly wrong. It doesn't do the least what `ToString` does
>> in ES6.
>>
>> The spec says it should do
>> ```
>> function ToString(x) {
>>     if (typeof x != "symbol) return String(x);
>>     else throw new TypeError("…");
>> }
>> ```
>> This would be a pretty standard approach, also being used e.g. in
>> https://github.com/ljharb/es-abstract/blob/035153777213981e0
>> e24f6cf007ffbd279384130/es6.js#L129-L135
>>
>> And if you don't care about Symbols, you can easily just use `String`.
>>
>> Kind regards,
>>  Bergi
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to