diff options
-rw-r--r-- | Libraries/LibJS/Value.cpp | 14 | ||||
-rw-r--r-- | Libraries/LibJS/Value.h | 1 |
2 files changed, 13 insertions, 2 deletions
diff --git a/Libraries/LibJS/Value.cpp b/Libraries/LibJS/Value.cpp index c4c25b2e1e..6ba182f6f5 100644 --- a/Libraries/LibJS/Value.cpp +++ b/Libraries/LibJS/Value.cpp @@ -89,6 +89,18 @@ Value Value::to_object(Heap& heap) const ASSERT_NOT_REACHED(); } +i32 Value::to_i32() const +{ + switch (m_type) { + case Type::Boolean: + return m_value.as_bool; + case Type::Number: + return static_cast<i32>(m_value.as_double); + default: + ASSERT_NOT_REACHED(); + } +} + Value greater_than(Value lhs, Value rhs) { ASSERT(lhs.is_number()); @@ -209,8 +221,6 @@ Value typed_eq(Value lhs, Value rhs) ASSERT_NOT_REACHED(); } - - const LogStream& operator<<(const LogStream& stream, const Value& value) { return stream << value.to_string(); diff --git a/Libraries/LibJS/Value.h b/Libraries/LibJS/Value.h index 95db26df83..d98522ced3 100644 --- a/Libraries/LibJS/Value.h +++ b/Libraries/LibJS/Value.h @@ -133,6 +133,7 @@ public: String to_string() const; bool to_boolean() const; + i32 to_i32() const; Value to_object(Heap&) const; |