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
IMO, this is a bug in V8, and would appreciate someone representing a different use case chiming in on that issue.
Anyway, this ends up mattering because some code, in this case, lodash's isPlainObject() uses the exact match of the string as a signal and that ends up breaking.
From what I gathered, the whole reason the Proxying code exists is an imperfect workaround to make more existing code work as-is, to that end, you may want to also handle toString() to improve compatibility on the proxies until V8 fixes the underlying bug.
The text was updated successfully, but these errors were encountered:
Bug Report
A while back, I filed https://issues.chromium.org/issues/380105420 for a completely unrelated issue in a different context.
Today, I came across open-telemetry/opentelemetry-js#4473 (vercel/otel#136) which sounds suspiciously similar. Did some digging, and indeed, edge does wrap the constructor in a proxy.
The TL;DR of the issue is that, currently in V8, wrapping a native function in a Proxy alters the result of
toString()
:IMO, this is a bug in V8, and would appreciate someone representing a different use case chiming in on that issue.
Anyway, this ends up mattering because some code, in this case, lodash's
isPlainObject()
uses the exact match of the string as a signal and that ends up breaking.From what I gathered, the whole reason the Proxying code exists is an imperfect workaround to make more existing code work as-is, to that end, you may want to also handle
toString()
to improve compatibility on the proxies until V8 fixes the underlying bug.The text was updated successfully, but these errors were encountered: