| Index: fpdfsdk/javascript/Document.cpp
|
| diff --git a/fpdfsdk/javascript/Document.cpp b/fpdfsdk/javascript/Document.cpp
|
| index 79d68ec3a78e3772373f369a72faebe9634b4723..4bf1afd5a3af46feee298d8ae57f8839132e61dc 100644
|
| --- a/fpdfsdk/javascript/Document.cpp
|
| +++ b/fpdfsdk/javascript/Document.cpp
|
| @@ -801,15 +801,18 @@ bool Document::info(IJS_Context* cc,
|
| CJS_Runtime* pRuntime = pContext->GetJSRuntime();
|
|
|
| v8::Local<v8::Object> pObj = pRuntime->NewFxDynamicObj(-1);
|
| - pRuntime->PutObjectString(pObj, L"Author", cwAuthor);
|
| - pRuntime->PutObjectString(pObj, L"Title", cwTitle);
|
| - pRuntime->PutObjectString(pObj, L"Subject", cwSubject);
|
| - pRuntime->PutObjectString(pObj, L"Keywords", cwKeywords);
|
| - pRuntime->PutObjectString(pObj, L"Creator", cwCreator);
|
| - pRuntime->PutObjectString(pObj, L"Producer", cwProducer);
|
| - pRuntime->PutObjectString(pObj, L"CreationDate", cwCreationDate);
|
| - pRuntime->PutObjectString(pObj, L"ModDate", cwModDate);
|
| - pRuntime->PutObjectString(pObj, L"Trapped", cwTrapped);
|
| + pRuntime->PutObjectProperty(pObj, L"Author", pRuntime->NewString(cwAuthor));
|
| + pRuntime->PutObjectProperty(pObj, L"Title", pRuntime->NewString(cwTitle));
|
| + pRuntime->PutObjectProperty(pObj, L"Subject", pRuntime->NewString(cwSubject));
|
| + pRuntime->PutObjectProperty(pObj, L"Keywords",
|
| + pRuntime->NewString(cwKeywords));
|
| + pRuntime->PutObjectProperty(pObj, L"Creator", pRuntime->NewString(cwCreator));
|
| + pRuntime->PutObjectProperty(pObj, L"Producer",
|
| + pRuntime->NewString(cwProducer));
|
| + pRuntime->PutObjectProperty(pObj, L"CreationDate",
|
| + pRuntime->NewString(cwCreationDate));
|
| + pRuntime->PutObjectProperty(pObj, L"ModDate", pRuntime->NewString(cwModDate));
|
| + pRuntime->PutObjectProperty(pObj, L"Trapped", pRuntime->NewString(cwTrapped));
|
|
|
| // It's to be compatible to non-standard info dictionary.
|
| for (const auto& it : *pDictionary) {
|
| @@ -817,11 +820,14 @@ bool Document::info(IJS_Context* cc,
|
| CPDF_Object* pValueObj = it.second.get();
|
| CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey.AsStringC());
|
| if (pValueObj->IsString() || pValueObj->IsName()) {
|
| - pRuntime->PutObjectString(pObj, wsKey, pValueObj->GetUnicodeText());
|
| + pRuntime->PutObjectProperty(
|
| + pObj, wsKey, pRuntime->NewString(pValueObj->GetUnicodeText()));
|
| } else if (pValueObj->IsNumber()) {
|
| - pRuntime->PutObjectNumber(pObj, wsKey, (float)pValueObj->GetNumber());
|
| + pRuntime->PutObjectProperty(pObj, wsKey,
|
| + pRuntime->NewNumber(pValueObj->GetNumber()));
|
| } else if (pValueObj->IsBoolean()) {
|
| - pRuntime->PutObjectBoolean(pObj, wsKey, !!pValueObj->GetInteger());
|
| + pRuntime->PutObjectProperty(
|
| + pObj, wsKey, pRuntime->NewBoolean(!!pValueObj->GetInteger()));
|
| }
|
| }
|
| vp << pObj;
|
|
|