Make NewNull return an actual Null
This CL updates the CFXJS_Engine::NewNull method to return a real v8::Null
instead of an empty v8::Local. This also adds a NewUndefined and returns
undefined in most of the places null was returned previously.
Change-Id: If1a96bf253057892a3b709cbc72f8825c52503c3
Reviewed-on: https://pdfium-review.googlesource.com/16730
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/fpdfsdk/javascript/global.cpp b/fpdfsdk/javascript/global.cpp
index 040c6e6..5dc6ac9 100644
--- a/fpdfsdk/javascript/global.cpp
+++ b/fpdfsdk/javascript/global.cpp
@@ -109,7 +109,8 @@
pRuntime->Error(JSFormatErrorString(class_name, "GetProperty", L""));
return;
}
- info.GetReturnValue().Set(value.ToV8Value());
+ if (!value.ToV8Value().IsEmpty())
+ info.GetReturnValue().Set(value.ToV8Value());
}
template <class Alt>
@@ -284,16 +285,12 @@
const wchar_t* propname,
CJS_Value* vp) {
auto it = m_MapGlobal.find(ByteString::FromUnicode(propname));
- if (it == m_MapGlobal.end()) {
- vp->Set(pRuntime->NewNull());
+ if (it == m_MapGlobal.end())
return true;
- }
JSGlobalData* pData = it->second.get();
- if (pData->bDeleted) {
- vp->Set(pRuntime->NewNull());
+ if (pData->bDeleted)
return true;
- }
switch (pData->nType) {
case JS_GlobalDataType::NUMBER: