You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We recently chatted about #13367 and related work (e.g. #13394) with @sebmarkbage, and he raised a good point.
It seems like overall treating them consistently is adding significant overhead in the implementation readability. And there’s undoubtedly runtime overhead to it too. There are two separate issues here:
warning for invalid values
ensuring that the output for invalid values is consistent (e.g. functions are always skipped)
The conclusion we came to is that we should keep warning for bad values, but as long as we warn, consistency is not necessary. It's fine if we sometimes stringify a function, and sometimes skip it, as long as we always warn for those cases
Our guiding principle for invalid inputs should be that we handle them with the least amount of overhead (both at runtime, and in terms of code size), not that they’re always handled the same way.
One exception to this is probably Symbols because they throw when stringified. So it seems like skipping them is actually desirable — unless we're okay with errors.
The text was updated successfully, but these errors were encountered:
We recently chatted about #13367 and related work (e.g. #13394) with @sebmarkbage, and he raised a good point.
It seems like overall treating them consistently is adding significant overhead in the implementation readability. And there’s undoubtedly runtime overhead to it too. There are two separate issues here:
The conclusion we came to is that we should keep warning for bad values, but as long as we warn, consistency is not necessary. It's fine if we sometimes stringify a function, and sometimes skip it, as long as we always warn for those cases
Our guiding principle for invalid inputs should be that we handle them with the least amount of overhead (both at runtime, and in terms of code size), not that they’re always handled the same way.
One exception to this is probably Symbols because they throw when stringified. So it seems like skipping them is actually desirable — unless we're okay with errors.
The text was updated successfully, but these errors were encountered: