Store JS string constants as single-byte strings.

Save some space since none contain non-ascii characters.
Avoid allocating C++ WideStrings just to convert back to
UTF8 when defining properties.

Change-Id: Id94db21b32ee7a96856c35a09f7550b54599ae13
Reviewed-on: https://pdfium-review.googlesource.com/2826
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/fpdfsdk/javascript/Document.cpp b/fpdfsdk/javascript/Document.cpp
index 3fdb906..fbcd53f 100644
--- a/fpdfsdk/javascript/Document.cpp
+++ b/fpdfsdk/javascript/Document.cpp
@@ -766,18 +766,24 @@
   CFX_WideString cwTrapped = pDictionary->GetUnicodeTextFor("Trapped");
 
   v8::Local<v8::Object> pObj = pRuntime->NewFxDynamicObj(-1);
-  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"Author",
+                              pRuntime->NewString(cwAuthor.AsStringC()));
+  pRuntime->PutObjectProperty(pObj, L"Title",
+                              pRuntime->NewString(cwTitle.AsStringC()));
+  pRuntime->PutObjectProperty(pObj, L"Subject",
+                              pRuntime->NewString(cwSubject.AsStringC()));
   pRuntime->PutObjectProperty(pObj, L"Keywords",
-                              pRuntime->NewString(cwKeywords));
-  pRuntime->PutObjectProperty(pObj, L"Creator", pRuntime->NewString(cwCreator));
+                              pRuntime->NewString(cwKeywords.AsStringC()));
+  pRuntime->PutObjectProperty(pObj, L"Creator",
+                              pRuntime->NewString(cwCreator.AsStringC()));
   pRuntime->PutObjectProperty(pObj, L"Producer",
-                              pRuntime->NewString(cwProducer));
+                              pRuntime->NewString(cwProducer.AsStringC()));
   pRuntime->PutObjectProperty(pObj, L"CreationDate",
-                              pRuntime->NewString(cwCreationDate));
-  pRuntime->PutObjectProperty(pObj, L"ModDate", pRuntime->NewString(cwModDate));
-  pRuntime->PutObjectProperty(pObj, L"Trapped", pRuntime->NewString(cwTrapped));
+                              pRuntime->NewString(cwCreationDate.AsStringC()));
+  pRuntime->PutObjectProperty(pObj, L"ModDate",
+                              pRuntime->NewString(cwModDate.AsStringC()));
+  pRuntime->PutObjectProperty(pObj, L"Trapped",
+                              pRuntime->NewString(cwTrapped.AsStringC()));
 
   // It's to be compatible to non-standard info dictionary.
   for (const auto& it : *pDictionary) {
@@ -786,7 +792,8 @@
     CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey.AsStringC());
     if (pValueObj->IsString() || pValueObj->IsName()) {
       pRuntime->PutObjectProperty(
-          pObj, wsKey, pRuntime->NewString(pValueObj->GetUnicodeText()));
+          pObj, wsKey,
+          pRuntime->NewString(pValueObj->GetUnicodeText().AsStringC()));
     } else if (pValueObj->IsNumber()) {
       pRuntime->PutObjectProperty(pObj, wsKey,
                                   pRuntime->NewNumber(pValueObj->GetNumber()));