Index: src/ia32/full-codegen-ia32.cc |
=================================================================== |
--- src/ia32/full-codegen-ia32.cc (revision 5085) |
+++ src/ia32/full-codegen-ia32.cc (working copy) |
@@ -1985,6 +1985,26 @@ |
} |
+void FullCodeGenerator::EmitIsSpecObject(ZoneList<Expression*>* args) { |
+ ASSERT(args->length() == 1); |
+ |
+ VisitForValue(args->at(0), kAccumulator); |
+ |
+ Label materialize_true, materialize_false; |
+ Label* if_true = NULL; |
+ Label* if_false = NULL; |
+ PrepareTest(&materialize_true, &materialize_false, &if_true, &if_false); |
+ |
+ __ test(eax, Immediate(kSmiTagMask)); |
+ __ j(equal, if_false); |
+ __ CmpObjectType(eax, FIRST_JS_OBJECT_TYPE, ebx); |
+ __ j(above_equal, if_true); |
+ __ jmp(if_false); |
+ |
+ Apply(context_, if_true, if_false); |
+} |
+ |
+ |
void FullCodeGenerator::EmitIsUndetectableObject(ZoneList<Expression*>* args) { |
ASSERT(args->length() == 1); |