#ifndef BW_CEF_V8_TO_STRING_HPP
#define BW_CEF_V8_TO_STRING_HPP
class V8ToString {
public:
static CefString convert( CefRefPtr<CefV8Value> val ) {
if ( val->IsUndefined() )
return "undefined";
if ( val->IsNull() )
return "null";
if ( val->IsString() )
return val->GetStringValue();
if ( val->IsBool() )
return boolToString( val->GetBoolValue() );
if ( val->IsInt() )
return intoString( val->GetIntValue() );
if ( val->IsUInt() )
return intoString( val->GetUIntValue() );
if ( val->IsDouble() )
return intoString( val->GetDoubleValue() );
if ( val->IsObject() )
return "[object]";
if ( val->IsArray() )
return "[array]";
if ( val->IsDate() )
return "[date]";
if ( val->IsFunction() )
return "[function]";
return "[unknown type]";
}
protected:
static CefString boolToString( bool boolean ) {
if ( boolean )
return "true";
return "false";
}
template <class V>
static CefString intoString( const V& value ) {
std::string str = std::to_string( value );
return CefString( str );
}
};
#endif