Remove dead code from CFXJSE_Value. Gemini-generated patch to help thin out this file prior to attempting to tackle the related issue. Bug: 42270615 Change-Id: Ib24672b922dfc80ecc46279afbe2448cd67a0091 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/147952 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cfxjse_value.cpp b/fxjs/xfa/cfxjse_value.cpp index cd6d610..529f65d 100644 --- a/fxjs/xfa/cfxjse_value.cpp +++ b/fxjs/xfa/cfxjse_value.cpp
@@ -20,52 +20,6 @@ #include "v8/include/v8-primitive.h" #include "v8/include/v8-script.h" -namespace { - -double ftod(float fNumber) { - static_assert(sizeof(float) == 4, "float of incorrect size"); - - uint32_t nFloatBits = (uint32_t&)fNumber; - uint8_t nExponent = (uint8_t)(nFloatBits >> 23); - if (nExponent == 0 || nExponent == 255) { - return fNumber; - } - - int8_t nErrExp = nExponent - 150; - if (nErrExp >= 0) { - return fNumber; - } - - double dwError = pow(2.0, nErrExp); - double dwErrorHalf = dwError / 2; - double dNumber = fNumber; - double dNumberAbs = fabs(fNumber); - double dNumberAbsMin = dNumberAbs - dwErrorHalf; - double dNumberAbsMax = dNumberAbs + dwErrorHalf; - int32_t iErrPos = 0; - if (floor(dNumberAbsMin) == floor(dNumberAbsMax)) { - dNumberAbsMin = fmod(dNumberAbsMin, 1.0); - dNumberAbsMax = fmod(dNumberAbsMax, 1.0); - int32_t iErrPosMin = 1; - int32_t iErrPosMax = 38; - do { - int32_t iMid = (iErrPosMin + iErrPosMax) / 2; - double dPow = pow(10.0, iMid); - if (floor(dNumberAbsMin * dPow) == floor(dNumberAbsMax * dPow)) { - iErrPosMin = iMid + 1; - } else { - iErrPosMax = iMid; - } - } while (iErrPosMin < iErrPosMax); - iErrPos = iErrPosMax; - } - double dPow = pow(10.0, iErrPos); - return fNumber < 0 ? ceil(dNumber * dPow - 0.5) / dPow - : floor(dNumber * dPow + 0.5) / dPow; -} - -} // namespace - void FXJSE_ThrowMessage(v8::Isolate* pIsolate, ByteStringView utf8Message) { DCHECK(pIsolate); CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); @@ -87,14 +41,6 @@ return CFXJSE_HostObject::FromV8(v8::Local<v8::Value>::New(pIsolate, value_)); } -void CFXJSE_Value::SetHostObject(v8::Isolate* pIsolate, - CFXJSE_HostObject* pObject, - CFXJSE_Class* pClass) { - CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); - value_.Reset(pIsolate, pObject->NewBoundV8Object( - pIsolate, pClass->GetTemplate(pIsolate))); -} - void CFXJSE_Value::SetArray( v8::Isolate* pIsolate, const std::vector<std::unique_ptr<CFXJSE_Value>>& values) { @@ -113,84 +59,6 @@ value_.Reset(pIsolate, hArrayObject); } -void CFXJSE_Value::SetFloat(v8::Isolate* pIsolate, float fFloat) { - CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate); - value_.Reset(pIsolate, fxv8::NewNumberHelper(pIsolate, ftod(fFloat))); -} - -bool CFXJSE_Value::SetObjectProperty(v8::Isolate* pIsolate, - ByteStringView szPropName, - CFXJSE_Value* pPropValue) { - if (pPropValue->IsEmpty()) { - return false; - } - - CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); - v8::Local<v8::Value> hObject = GetValue(pIsolate); - if (!hObject->IsObject()) { - return false; - } - - return fxv8::ReentrantPutObjectPropertyHelper( - pIsolate, hObject.As<v8::Object>(), szPropName, - pPropValue->GetValue(pIsolate)); -} - -bool CFXJSE_Value::GetObjectProperty(v8::Isolate* pIsolate, - ByteStringView szPropName, - CFXJSE_Value* pPropValue) { - CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); - v8::Local<v8::Value> hObject = GetValue(pIsolate); - if (!hObject->IsObject()) { - return false; - } - - pPropValue->ForceSetValue( - pIsolate, fxv8::ReentrantGetObjectPropertyHelper( - pIsolate, hObject.As<v8::Object>(), szPropName)); - return true; -} - -bool CFXJSE_Value::GetObjectPropertyByIdx(v8::Isolate* pIsolate, - uint32_t uPropIdx, - CFXJSE_Value* pPropValue) { - CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); - v8::Local<v8::Value> hObject = GetValue(pIsolate); - if (!hObject->IsArray()) { - return false; - } - - pPropValue->ForceSetValue(pIsolate, - fxv8::ReentrantGetArrayElementHelper( - pIsolate, hObject.As<v8::Array>(), uPropIdx)); - return true; -} - -void CFXJSE_Value::DeleteObjectProperty(v8::Isolate* pIsolate, - ByteStringView szPropName) { - CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); - v8::Local<v8::Value> hObject = v8::Local<v8::Value>::New(pIsolate, value_); - if (hObject->IsObject()) { - fxv8::ReentrantDeleteObjectPropertyHelper( - pIsolate, hObject.As<v8::Object>(), szPropName); - } -} - -bool CFXJSE_Value::SetObjectOwnProperty(v8::Isolate* pIsolate, - ByteStringView szPropName, - CFXJSE_Value* pPropValue) { - CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); - v8::Local<v8::Value> hObject = v8::Local<v8::Value>::New(pIsolate, value_); - if (!hObject->IsObject()) { - return false; - } - - v8::Local<v8::Value> pValue = - v8::Local<v8::Value>::New(pIsolate, pPropValue->value_); - return fxv8::ReentrantSetObjectOwnPropertyHelper( - pIsolate, hObject.As<v8::Object>(), szPropName, pValue); -} - v8::Local<v8::Function> CFXJSE_Value::NewBoundFunction( v8::Isolate* pIsolate, v8::Local<v8::Function> hOldFunction, @@ -279,16 +147,6 @@ return hValue->IsNumber(); } -bool CFXJSE_Value::IsInteger(v8::Isolate* pIsolate) const { - if (IsEmpty()) { - return false; - } - - CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate); - v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, value_); - return hValue->IsInt32(); -} - bool CFXJSE_Value::IsObject(v8::Isolate* pIsolate) const { if (IsEmpty()) { return false; @@ -326,24 +184,6 @@ pIsolate, v8::Local<v8::Value>::New(pIsolate, value_)); } -float CFXJSE_Value::ToFloat(v8::Isolate* pIsolate) const { - return static_cast<float>(ToDouble(pIsolate)); -} - -double CFXJSE_Value::ToDouble(v8::Isolate* pIsolate) const { - DCHECK(!IsEmpty()); - CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); - return fxv8::ReentrantToDoubleHelper( - pIsolate, v8::Local<v8::Value>::New(pIsolate, value_)); -} - -int32_t CFXJSE_Value::ToInteger(v8::Isolate* pIsolate) const { - DCHECK(!IsEmpty()); - CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); - return fxv8::ReentrantToInt32Helper( - pIsolate, v8::Local<v8::Value>::New(pIsolate, value_)); -} - ByteString CFXJSE_Value::ToString(v8::Isolate* pIsolate) const { DCHECK(!IsEmpty()); CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate); @@ -355,28 +195,3 @@ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate); value_.Reset(pIsolate, fxv8::NewUndefinedHelper(pIsolate)); } - -void CFXJSE_Value::SetNull(v8::Isolate* pIsolate) { - CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate); - value_.Reset(pIsolate, fxv8::NewNullHelper(pIsolate)); -} - -void CFXJSE_Value::SetBoolean(v8::Isolate* pIsolate, bool bBoolean) { - CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate); - value_.Reset(pIsolate, fxv8::NewBooleanHelper(pIsolate, bBoolean)); -} - -void CFXJSE_Value::SetInteger(v8::Isolate* pIsolate, int32_t nInteger) { - CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate); - value_.Reset(pIsolate, fxv8::NewNumberHelper(pIsolate, nInteger)); -} - -void CFXJSE_Value::SetDouble(v8::Isolate* pIsolate, double dDouble) { - CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate); - value_.Reset(pIsolate, fxv8::NewNumberHelper(pIsolate, dDouble)); -} - -void CFXJSE_Value::SetString(v8::Isolate* pIsolate, ByteStringView szString) { - CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate); - value_.Reset(pIsolate, fxv8::NewStringHelper(pIsolate, szString)); -}
diff --git a/fxjs/xfa/cfxjse_value.h b/fxjs/xfa/cfxjse_value.h index 174bfcf..9d5163f 100644 --- a/fxjs/xfa/cfxjse_value.h +++ b/fxjs/xfa/cfxjse_value.h
@@ -18,7 +18,6 @@ #include "v8/include/v8-forward.h" #include "v8/include/v8-persistent-handle.h" -class CFXJSE_Class; class CFXJSE_HostObject; class CFXJSE_Value { @@ -33,49 +32,25 @@ bool IsBoolean(v8::Isolate* pIsolate) const; bool IsString(v8::Isolate* pIsolate) const; bool IsNumber(v8::Isolate* pIsolate) const; - bool IsInteger(v8::Isolate* pIsolate) const; + bool IsObject(v8::Isolate* pIsolate) const; bool IsArray(v8::Isolate* pIsolate) const; bool IsFunction(v8::Isolate* pIsolate) const; bool ToBoolean(v8::Isolate* pIsolate) const; - float ToFloat(v8::Isolate* pIsolate) const; - double ToDouble(v8::Isolate* pIsolate) const; - int32_t ToInteger(v8::Isolate* pIsolate) const; + ByteString ToString(v8::Isolate* pIsolate) const; WideString ToWideString(v8::Isolate* pIsolate) const { return WideString::FromUTF8(ToString(pIsolate).AsStringView()); } + CFXJSE_HostObject* ToHostObject(v8::Isolate* pIsolate) const; void SetUndefined(v8::Isolate* pIsolate); - void SetNull(v8::Isolate* pIsolate); - void SetBoolean(v8::Isolate* pIsolate, bool bBoolean); - void SetInteger(v8::Isolate* pIsolate, int32_t nInteger); - void SetDouble(v8::Isolate* pIsolate, double dDouble); - void SetString(v8::Isolate* pIsolate, ByteStringView szString); - void SetFloat(v8::Isolate* pIsolate, float fFloat); - void SetHostObject(v8::Isolate* pIsolate, - CFXJSE_HostObject* pObject, - CFXJSE_Class* pClass); void SetArray(v8::Isolate* pIsolate, const std::vector<std::unique_ptr<CFXJSE_Value>>& values); - bool GetObjectProperty(v8::Isolate* pIsolate, - ByteStringView szPropName, - CFXJSE_Value* pPropValue); - bool SetObjectProperty(v8::Isolate* pIsolate, - ByteStringView szPropName, - CFXJSE_Value* pPropValue); - bool GetObjectPropertyByIdx(v8::Isolate* pIsolate, - uint32_t uPropIdx, - CFXJSE_Value* pPropValue); - void DeleteObjectProperty(v8::Isolate* pIsolate, ByteStringView szPropName); - bool SetObjectOwnProperty(v8::Isolate* pIsolate, - ByteStringView szPropName, - CFXJSE_Value* pPropValue); - // Return empty local on error. static v8::Local<v8::Function> NewBoundFunction( v8::Isolate* pIsolate,