Boris Zbarsky (2015-01-04T03:24:56.000Z)
On 1/3/15 9:41 PM, Alex Kocharin wrote:
> function log(anything) {
>    process.stdout.write(new Date().toJSON() + ' - ' + anything + '\n')
> }
> ```
> Right now it'll never throw. Well, unless you override `.toString()` to
> throw, which I've never seen to be done intentionally.

Just to nitpick, try:

   console.log("" + HTMLAnchorElement.prototype);

in your favorite browser and watch it throw precisely for this reason.

Or load

data:text/html,<iframe src="http://www.ecma-international.org/"></iframe>

and try:

   console.log("" + frames[0]);

> With throwing Symbols we'll have innocuous-looking code which will cause
> an exception.

The innocuous-looking code will totally cause exceptions in the wild 
today depending on what you pass to it.

-Boris
d at domenic.me (2015-01-12T17:56:04.879Z)
On 1/3/15 9:41 PM, Alex Kocharin wrote:
> ```js
> function log(anything) {
>    process.stdout.write(new Date().toJSON() + ' - ' + anything + '\n')
> }
> ```
>
> Right now it'll never throw. Well, unless you override `.toString()` to
> throw, which I've never seen to be done intentionally.

Just to nitpick, try:

```js
console.log("" + HTMLAnchorElement.prototype);
```

in your favorite browser and watch it throw precisely for this reason.

Or load

```
data:text/html,<iframe src="http://www.ecma-international.org/"></iframe>
```

and try:

```js
console.log("" + frames[0]);
```

> With throwing Symbols we'll have innocuous-looking code which will cause
> an exception.

The innocuous-looking code will totally cause exceptions in the wild 
today depending on what you pass to it.