WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
261815
[JSC] Stress tests have bogus asserts due to incorrectly negating `instanceof` operator
https://bugs.webkit.org/show_bug.cgi?id=261815
Summary
[JSC] Stress tests have bogus asserts due to incorrectly negating `instanceof...
pablo.gobe
Reported
2023-09-20 04:33:52 PDT
`in` and `instanceof` expressions in JS ```js a in obj; a instanceof C; ``` can be negated by grouping them and applying the `!` operator, i.e. ```js !(a in obj); !(a instanceof C); ``` Applying the `!` operator incorrectly (on the LHS operand) leads to bugs: ```js !a in obj; // will evaluate to false, unless obj has a "true" or "false" key !a instanceof C; // will evaluate to false, unless C overrides instanceof with a @@hasInstance method ``` For more information, please see
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof#not_an_instanceof
and the no-unsafe-negation recommended Eslint rule,
https://eslint.org/docs/latest/rules/no-unsafe-negation
. I have found several potentially problematic instances of the above bugs in your codebase: `in` bugs:
https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/WebKit/WebKit%24+lang:javascript+/%5C%21%5B%5B:alnum:%5D%5C%27%5C%22%5D%2B+in+%5B%5B:alnum:%5D%5D%2B/+-file:%5C.min%5C.js%24+count:all&patternType=standard&sm=1&groupBy=repo
`instanceof` bugs:
https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/WebKit/WebKit%24+lang:javascript+/%5C%21%5B%5B:alnum:%5D%5D%2B+instanceof+%5B%5B:alnum:%5D%5D%2B/+-file:%5C.min%5C.js%24+count:all&patternType=standard&sm=1&groupBy=repo
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2023-09-27 04:34:13 PDT
<
rdar://problem/116114756
>
Alexey Shvayka
Comment 2
2024-02-27 22:07:32 PST
Pull request:
https://github.com/WebKit/WebKit/pull/25215
EWS
Comment 3
2024-02-28 00:36:01 PST
Committed
275433@main
(d4af38db1147): <
https://commits.webkit.org/275433@main
> Reviewed commits have been landed. Closing PR #25215 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug