JsValueRef RuntimeImpl::GetTypeString()

in lib/Debugger.ProtocolHandler/RuntimeImpl.cpp [231:292]


    JsValueRef RuntimeImpl::GetTypeString(JsValueRef object)
    {
        JsValueType type;
        if (JsGetValueType(object, &type) != JsNoError)
        {
            return nullptr;
        }

        std::string typeString;

        switch (type)
        {
        case JsValueType::JsUndefined:
            typeString = "undefined";
            break;
        case JsValueType::JsNull:
            typeString = "null";
            break;
        case JsValueType::JsNumber:
            typeString = "number";
            break;
        case JsValueType::JsString:
            typeString = "string";
            break;
        case JsValueType::JsBoolean:
            typeString = "boolean";
            break;
        case JsValueType::JsObject:
            typeString = "object";
            break;
        case JsValueType::JsFunction:
            typeString = "function";
            break;
        case JsValueType::JsError:
            typeString = "error";
            break;
        case JsValueType::JsArray:
            typeString = "array";
            break;
        case JsValueType::JsSymbol:
            typeString = "symbol";
            break;
        case JsValueType::JsArrayBuffer:
            typeString = "arraybuffer";
            break;
        case JsValueType::JsTypedArray:
        case JsValueType::JsDataView:
            typeString = "typedarray";
            break;
        }

        if (typeString.length() != 0)
        {
            JsValueRef typeStringObject = JS_INVALID_REFERENCE;
            if (JsCreateString(typeString.c_str(), typeString.length(), &typeStringObject) == JsNoError)
            {
                return typeStringObject;
            }
        }

        return nullptr;
    }