Isiah Meadows wrote:
Cc the list...
On Aug 25, 2014 6:06 PM, "Isiah Meadows" <[email protected]
<mailto:[email protected]>> wrote:
There really shouldn't be any sort of object construction needed
to check types like this. `isa` may be better, anyways, but I
still find that requirement to build and destroy an object to
check somewhat counterproductive.
What object is built and destroyed?
Note that for primitive types no wrapper need be created just to call a
method, in general for JIT-optimized code, and definitely for strict
mode code.
Andrea gets what I'm talking about. Also, another (possibly
separate) proposal would be to make cases like `"foo" instanceof
String" === true` instead of their current behavior, throwing a
TypeError. (I believe...I'm on a phone, not a PC where I can test.
Correct me if I'm wrong.)
(Your phone doesn't have a browser with a console? :-P)
js> "hi" instanceof String
false
js> 42 instanceof Number
false
js> false instanceof Boolean
false
These are well-defined for instanceof, without throwing. Changing
results to true would be backward incompatible.
ES4 had 'is' as a type-classifying operator:
http://wiki.ecmascript.org/doku.php?id=proposals:is_as_to
http://wiki.ecmascript.org/doku.php?id=discussion:is_as_to
It would be a mistake to define 'is' without defining the (unsound) type
system it depends on. This is a challenge, but TypeScript and other
close-to-ES6 languages have sallied forth. We need a detailed proposal.
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss