| Index: src/objects-inl.h
|
| ===================================================================
|
| --- src/objects-inl.h (revision 2644)
|
| +++ src/objects-inl.h (working copy)
|
| @@ -100,6 +100,25 @@
|
| }
|
|
|
|
|
| +bool Object::IsInstanceOf(FunctionTemplateInfo* expected) {
|
| + // There is a constraint on the object; check.
|
| + if (!this->IsJSObject()) return false;
|
| + // Fetch the constructor function of the object.
|
| + Object* cons_obj = JSObject::cast(this)->map()->constructor();
|
| + if (!cons_obj->IsJSFunction()) return false;
|
| + JSFunction* fun = JSFunction::cast(cons_obj);
|
| + // Iterate through the chain of inheriting function templates to
|
| + // see if the required one occurs.
|
| + for (Object* type = fun->shared()->function_data();
|
| + type->IsFunctionTemplateInfo();
|
| + type = FunctionTemplateInfo::cast(type)->parent_template()) {
|
| + if (type == expected) return true;
|
| + }
|
| + // Didn't find the required type in the inheritance chain.
|
| + return false;
|
| +}
|
| +
|
| +
|
| bool Object::IsSmi() {
|
| return HAS_SMI_TAG(this);
|
| }
|
|
|