Summary:
Changelog:
[General][Added] - Add asBool() method to JSI

Reviewed By: mhorowitz

Differential Revision: D34630901

fbshipit-source-id: 3007784618fcc0f7828eee42de5cbf2bd71258c5
This commit is contained in:
Scott Kyle 2022-03-04 08:02:17 -08:00 коммит произвёл Facebook GitHub Bot
Родитель 350f8c5ed0
Коммит 603620b739
3 изменённых файлов: 15 добавлений и 0 удалений

Просмотреть файл

@ -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(