diff --git a/lib/base/scriptutils.cpp b/lib/base/scriptutils.cpp index d3f4478cf..ceabf1ec8 100644 --- a/lib/base/scriptutils.cpp +++ b/lib/base/scriptutils.cpp @@ -80,7 +80,7 @@ bool ScriptUtils::Regex(const String& pattern, const String& text) return res; } -int ScriptUtils::Len(const Value& value) +double ScriptUtils::Len(const Value& value) { if (value.IsObjectType()) { Dictionary::Ptr dict = value; @@ -88,8 +88,10 @@ int ScriptUtils::Len(const Value& value) } else if (value.IsObjectType()) { Array::Ptr array = value; return array->GetLength(); - } else { + } else if (value.IsString()) { return Convert::ToString(value).GetLength(); + } else { + return 0; } } diff --git a/lib/base/scriptutils.hpp b/lib/base/scriptutils.hpp index 452635bd5..b6c98470e 100644 --- a/lib/base/scriptutils.hpp +++ b/lib/base/scriptutils.hpp @@ -40,7 +40,7 @@ public: static double CastNumber(const Value& value); static bool CastBool(const Value& value); static bool Regex(const String& pattern, const String& text); - static int Len(const Value& value); + static double Len(const Value& value); static Array::Ptr Union(const std::vector& arguments); static Array::Ptr Intersection(const std::vector& arguments); static void Log(const std::vector& arguments);