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()));