Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index b1165b3ae7ea74daef4df6ec236d76fdc3b2eaf7..6a338b2f7c05dee67d13eb3ef1e0252fa0c332c1 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -651,7 +651,7 @@ class Utf8StringKey : public HashTableKey { |
bool Object::IsNumber() const { |
- return IsSmi() || IsHeapNumber(); |
+ return IsSmi() || HeapObject::cast(this)->IsHeapNumber(); |
} |
@@ -1081,6 +1081,35 @@ MaybeHandle<Object> Object::ToPrimitive(Handle<Object> input, |
return JSReceiver::ToPrimitive(Handle<JSReceiver>::cast(input), hint); |
} |
+// static |
+MaybeHandle<Object> Object::ToNumber(Handle<Object> input) { |
+ if (input->IsNumber()) return input; |
+ return ConvertToNumber(HeapObject::cast(*input)->GetIsolate(), input); |
+} |
+ |
+// static |
+MaybeHandle<Object> Object::ToInteger(Isolate* isolate, Handle<Object> input) { |
+ if (input->IsSmi()) return input; |
+ return ConvertToInteger(isolate, input); |
+} |
+ |
+// static |
+MaybeHandle<Object> Object::ToInt32(Isolate* isolate, Handle<Object> input) { |
+ if (input->IsSmi()) return input; |
+ return ConvertToInt32(isolate, input); |
+} |
+ |
+// static |
+MaybeHandle<Object> Object::ToUint32(Isolate* isolate, Handle<Object> input) { |
+ if (input->IsSmi()) return handle(Smi::cast(*input)->ToUint32Smi(), isolate); |
+ return ConvertToUint32(isolate, input); |
+} |
+ |
+// static |
+MaybeHandle<String> Object::ToString(Isolate* isolate, Handle<Object> input) { |
+ if (input->IsString()) return Handle<String>::cast(input); |
+ return ConvertToString(isolate, input); |
+} |
bool Object::HasSpecificClassOf(String* name) { |
return this->IsJSObject() && (JSObject::cast(this)->class_name() == name); |