std::unique_ptr PropertyDescriptor::fromValue()

in lib/Debugger.Protocol/Generated/protocol/Runtime.cpp [401:459]


std::unique_ptr<PropertyDescriptor> PropertyDescriptor::fromValue(protocol::Value* value, ErrorSupport* errors)
{
    if (!value || value->type() != protocol::Value::TypeObject) {
        errors->addError("object expected");
        return nullptr;
    }

    std::unique_ptr<PropertyDescriptor> result(new PropertyDescriptor());
    protocol::DictionaryValue* object = DictionaryValue::cast(value);
    errors->push();
    protocol::Value* nameValue = object->get("name");
    errors->setName("name");
    result->m_name = ValueConversions<String>::fromValue(nameValue, errors);
    protocol::Value* valueValue = object->get("value");
    if (valueValue) {
        errors->setName("value");
        result->m_value = ValueConversions<protocol::Runtime::RemoteObject>::fromValue(valueValue, errors);
    }
    protocol::Value* writableValue = object->get("writable");
    if (writableValue) {
        errors->setName("writable");
        result->m_writable = ValueConversions<bool>::fromValue(writableValue, errors);
    }
    protocol::Value* getValue = object->get("get");
    if (getValue) {
        errors->setName("get");
        result->m_get = ValueConversions<protocol::Runtime::RemoteObject>::fromValue(getValue, errors);
    }
    protocol::Value* setValue = object->get("set");
    if (setValue) {
        errors->setName("set");
        result->m_set = ValueConversions<protocol::Runtime::RemoteObject>::fromValue(setValue, errors);
    }
    protocol::Value* configurableValue = object->get("configurable");
    errors->setName("configurable");
    result->m_configurable = ValueConversions<bool>::fromValue(configurableValue, errors);
    protocol::Value* enumerableValue = object->get("enumerable");
    errors->setName("enumerable");
    result->m_enumerable = ValueConversions<bool>::fromValue(enumerableValue, errors);
    protocol::Value* wasThrownValue = object->get("wasThrown");
    if (wasThrownValue) {
        errors->setName("wasThrown");
        result->m_wasThrown = ValueConversions<bool>::fromValue(wasThrownValue, errors);
    }
    protocol::Value* isOwnValue = object->get("isOwn");
    if (isOwnValue) {
        errors->setName("isOwn");
        result->m_isOwn = ValueConversions<bool>::fromValue(isOwnValue, errors);
    }
    protocol::Value* symbolValue = object->get("symbol");
    if (symbolValue) {
        errors->setName("symbol");
        result->m_symbol = ValueConversions<protocol::Runtime::RemoteObject>::fromValue(symbolValue, errors);
    }
    errors->pop();
    if (errors->hasErrors())
        return nullptr;
    return result;
}