Just something that popped into my head yesterday. In some prototype code I wrote, I had some long `if ((foo instanceof A) || (foo instanceof B) || ...) { /* do something */ }` which I've been building recently. I later moved over to `switch (foo.kind) { case Kind.A: case Kind.B:, ... }`
New syntax of the form `switch (value instanceof) { case A: /* do something */ }` might be more concise, and possibly something an engine could optimize a bit. (I could see some manipulations of Symbol.hasInstance particularly when A and B inherit from C, but not D.)
This is _just_ an idea I haven't fully explored yet. I'm not even sure it's a _good_ idea, I'm just throwing it out here to see how people react.
Alex
-- "The first step in confirming there is a bug in someone else's work is confirming there are no bugs in your own."
-- Alexander J. Vincent, June 30, 2001