f42a0ef25c
"x is Foo" will become getInterceptor(x).$isFoo Testing against a type with type arguments is still a giveup(). This test always works, but is not very fast. For instance, testing against an int should be "typeof x === 'number' && Math.floor(x) === x". Following an offline discussion with Karl, the plan is to rewrite 'is'-checks to more fine-grained tests in a CPS optimization pass, probably the type propagator. Concretely, we plan to introduce IR nodes like TypeOfTest, FloorTest, InstanceofTest, etc, which optimization phases can introduce under the right circumstances. That way, the code generation phase remains simple. BUG= R=karlklose@google.com Review URL: https://codereview.chromium.org//1144163004