Add asBool() method
Summary: Changelog: [General][Added] - Add asBool() method to JSI Reviewed By: mhorowitz Differential Revision: D34630901 fbshipit-source-id: 3007784618fcc0f7828eee42de5cbf2bd71258c5
This commit is contained in:
Родитель
350f8c5ed0
Коммит
603620b739
|
@ -283,6 +283,15 @@ bool Value::strictEquals(Runtime& runtime, const Value& a, const Value& b) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool Value::asBool() const {
|
||||
if (!isBool()) {
|
||||
throw JSINativeException(
|
||||
"Value is " + kindToString(*this) + ", expected a boolean");
|
||||
}
|
||||
|
||||
return getBool();
|
||||
}
|
||||
|
||||
double Value::asNumber() const {
|
||||
if (!isNumber()) {
|
||||
throw JSINativeException(
|
||||
|
|
|
@ -1078,6 +1078,10 @@ class JSI_EXPORT Value {
|
|||
return data_.boolean;
|
||||
}
|
||||
|
||||
/// \return the boolean value, or throws JSIException if not a
|
||||
/// boolean.
|
||||
bool asBool() const;
|
||||
|
||||
/// \return the number value, or asserts if not a number.
|
||||
double getNumber() const {
|
||||
assert(isNumber());
|
||||
|
|
|
@ -849,6 +849,8 @@ TEST_P(JSITest, ValueTest) {
|
|||
EXPECT_EQ(eval("'str'").getString(rt).utf8(rt), "str");
|
||||
EXPECT_TRUE(eval("[]").getObject(rt).isArray(rt));
|
||||
|
||||
EXPECT_TRUE(eval("true").asBool());
|
||||
EXPECT_THROW(eval("123").asBool(), JSIException);
|
||||
EXPECT_EQ(eval("456").asNumber(), 456);
|
||||
EXPECT_THROW(eval("'word'").asNumber(), JSIException);
|
||||
EXPECT_EQ(
|
||||
|
|
Загрузка…
Ссылка в новой задаче