Prefer single-byte form of CFX_V8::NewString() with literals.

Otherwise, we store 3 extra bytes of zeros per character, which
we then throw away at runtime when we turn it back into a bytestring
before entering V8.

Add small test for equivalence of L"123" vs. "123".

Change-Id: I18d4a3677924372297ea62e36ee96489bad7c264
Reviewed-on: https://pdfium-review.googlesource.com/c/44893
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp
index 3676717..eb594cf 100644
--- a/fxjs/cjs_field.cpp
+++ b/fxjs/cjs_field.cpp
@@ -665,13 +665,13 @@
 
   switch (pFormControl->GetControlAlignment()) {
     case 0:
-      return CJS_Result::Success(pRuntime->NewString(L"left"));
+      return CJS_Result::Success(pRuntime->NewString("left"));
     case 1:
-      return CJS_Result::Success(pRuntime->NewString(L"center"));
+      return CJS_Result::Success(pRuntime->NewString("center"));
     case 2:
-      return CJS_Result::Success(pRuntime->NewString(L"right"));
+      return CJS_Result::Success(pRuntime->NewString("right"));
   }
-  return CJS_Result::Success(pRuntime->NewString(L""));
+  return CJS_Result::Success(pRuntime->NewString(""));
 }
 
 CJS_Result CJS_Field::set_alignment(CJS_Runtime* pRuntime,
@@ -697,17 +697,17 @@
 
   switch (pWidget->GetBorderStyle()) {
     case BorderStyle::SOLID:
-      return CJS_Result::Success(pRuntime->NewString(L"solid"));
+      return CJS_Result::Success(pRuntime->NewString("solid"));
     case BorderStyle::DASH:
-      return CJS_Result::Success(pRuntime->NewString(L"dashed"));
+      return CJS_Result::Success(pRuntime->NewString("dashed"));
     case BorderStyle::BEVELED:
-      return CJS_Result::Success(pRuntime->NewString(L"beveled"));
+      return CJS_Result::Success(pRuntime->NewString("beveled"));
     case BorderStyle::INSET:
-      return CJS_Result::Success(pRuntime->NewString(L"inset"));
+      return CJS_Result::Success(pRuntime->NewString("inset"));
     case BorderStyle::UNDERLINE:
-      return CJS_Result::Success(pRuntime->NewString(L"underline"));
+      return CJS_Result::Success(pRuntime->NewString("underline"));
   }
-  return CJS_Result::Success(pRuntime->NewString(L""));
+  return CJS_Result::Success(pRuntime->NewString(""));
 }
 
 CJS_Result CJS_Field::set_border_style(CJS_Runtime* pRuntime,
@@ -1374,15 +1374,15 @@
   int eHM = pFormControl->GetHighlightingMode();
   switch (eHM) {
     case CPDF_FormControl::None:
-      return CJS_Result::Success(pRuntime->NewString(L"none"));
+      return CJS_Result::Success(pRuntime->NewString("none"));
     case CPDF_FormControl::Push:
-      return CJS_Result::Success(pRuntime->NewString(L"push"));
+      return CJS_Result::Success(pRuntime->NewString("push"));
     case CPDF_FormControl::Invert:
-      return CJS_Result::Success(pRuntime->NewString(L"invert"));
+      return CJS_Result::Success(pRuntime->NewString("invert"));
     case CPDF_FormControl::Outline:
-      return CJS_Result::Success(pRuntime->NewString(L"outline"));
+      return CJS_Result::Success(pRuntime->NewString("outline"));
     case CPDF_FormControl::Toggle:
-      return CJS_Result::Success(pRuntime->NewString(L"toggle"));
+      return CJS_Result::Success(pRuntime->NewString("toggle"));
   }
   return CJS_Result::Success();
 }
@@ -2024,23 +2024,23 @@
 
   switch (pFormField->GetFieldType()) {
     case FormFieldType::kUnknown:
-      return CJS_Result::Success(pRuntime->NewString(L"unknown"));
+      return CJS_Result::Success(pRuntime->NewString("unknown"));
     case FormFieldType::kPushButton:
-      return CJS_Result::Success(pRuntime->NewString(L"button"));
+      return CJS_Result::Success(pRuntime->NewString("button"));
     case FormFieldType::kCheckBox:
-      return CJS_Result::Success(pRuntime->NewString(L"checkbox"));
+      return CJS_Result::Success(pRuntime->NewString("checkbox"));
     case FormFieldType::kRadioButton:
-      return CJS_Result::Success(pRuntime->NewString(L"radiobutton"));
+      return CJS_Result::Success(pRuntime->NewString("radiobutton"));
     case FormFieldType::kComboBox:
-      return CJS_Result::Success(pRuntime->NewString(L"combobox"));
+      return CJS_Result::Success(pRuntime->NewString("combobox"));
     case FormFieldType::kListBox:
-      return CJS_Result::Success(pRuntime->NewString(L"listbox"));
+      return CJS_Result::Success(pRuntime->NewString("listbox"));
     case FormFieldType::kTextField:
-      return CJS_Result::Success(pRuntime->NewString(L"text"));
+      return CJS_Result::Success(pRuntime->NewString("text"));
     case FormFieldType::kSignature:
-      return CJS_Result::Success(pRuntime->NewString(L"signature"));
+      return CJS_Result::Success(pRuntime->NewString("signature"));
     default:
-      return CJS_Result::Success(pRuntime->NewString(L"unknown"));
+      return CJS_Result::Success(pRuntime->NewString("unknown"));
   }
 }
 
@@ -2113,7 +2113,7 @@
         }
       }
       if (!bFind)
-        ret = pRuntime->NewString(L"Off");
+        ret = pRuntime->NewString("Off");
 
       break;
     }
@@ -2171,12 +2171,12 @@
             pFormField->GetControl(i)->GetExportValue().AsStringView()));
       }
     }
-    return CJS_Result::Success(pRuntime->NewString(L"Off"));
+    return CJS_Result::Success(pRuntime->NewString("Off"));
   }
 
   if (pFormField->GetFieldType() == FormFieldType::kListBox &&
       (pFormField->CountSelectedItems() > 1)) {
-    return CJS_Result::Success(pRuntime->NewString(L""));
+    return CJS_Result::Success(pRuntime->NewString(""));
   }
   return CJS_Result::Success(
       pRuntime->NewString(pFormField->GetValue().AsStringView()));