XFA: Avoid infinite recursion when deleting a ThisProxy object property.
Rather than setting it to undefined, which might invoke an interceptor and
trap back into ourselves, delete the property which avoids the interceptor.
Bug: chromium:913566
Change-Id: If64cd37a6f934f47ebfc43c14269e55baa9422b7
Reviewed-on: https://pdfium-review.googlesource.com/c/47332
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cfxjse_engine.cpp b/fxjs/xfa/cfxjse_engine.cpp
index eb5c955..70b8d60 100644
--- a/fxjs/xfa/cfxjse_engine.cpp
+++ b/fxjs/xfa/cfxjse_engine.cpp
@@ -194,7 +194,7 @@
}
if (lpOrginalNode->IsThisProxy()) {
if (pValue && pValue->IsUndefined()) {
- pObject->SetObjectOwnProperty(szPropName, pValue);
+ pObject->DeleteObjectProperty(szPropName);
return;
}
}