Bug 242342

Summary: Object.prototype.toString.call for a revoked Proxy has the wrong error message
Product: WebKit Reporter: Jordan Harband <ljharb>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: saam, webkit-bug-importer, ysuzuki
Priority: P2 Keywords: InRadar
Version: Safari 15   
Hardware: Unspecified   
OS: Unspecified   

Description Jordan Harband 2022-07-05 09:38:48 PDT
`var r = Proxy.revocable({}, {}); r.revoke(); Object.prototype.toString.call(r.proxy)` produces an error with a message "Array.isArray cannot be called on a Proxy that has been revoked", which should appear with `Array.isArray(r.proxy)` but should not appear with `Object.prototype.toString.call(r.proxy)`.
Comment 1 Radar WebKit Bug Importer 2022-07-12 09:39:16 PDT
<rdar://problem/96893485>
Comment 2 serakeri 2022-08-17 14:02:52 PDT
Pull request: https://github.com/WebKit/WebKit/pull/3424
Comment 3 serakeri 2022-09-01 11:47:02 PDT
Pull request: https://github.com/WebKit/WebKit/pull/3923
Comment 4 EWS 2022-09-03 12:45:20 PDT
Committed 254134@main (78a9dd6fd369): <https://commits.webkit.org/254134@main>

Reviewed commits have been landed. Closing PR #3923 and removing active labels.
Comment 5 Jordan Harband 2023-02-18 21:41:41 PST
Which version of Safari might this appear in? 16.2 still has the issue.
Comment 6 Jordan Harband 2023-07-05 20:45:57 PDT
Safari 16.3 also still has this issue.
Comment 7 Jordan Harband 2023-12-05 12:09:15 PST
This continues to be a problem in Safari 17.1.
Comment 8 Jordan Harband 2023-12-05 12:09:48 PST
oops, i misunderstood; this is indeed resolved in 17.1.