Index: src/i18n.cc |
diff --git a/src/i18n.cc b/src/i18n.cc |
index bfe420057916a58239d89b90479dc7cca351ccc2..c3f95412833ab4ec3d17c45c5e8abfc0e67b7613 100644 |
--- a/src/i18n.cc |
+++ b/src/i18n.cc |
@@ -57,7 +57,7 @@ bool ExtractStringSetting(Isolate* isolate, |
Handle<JSObject> options, |
const char* key, |
icu::UnicodeString* setting) { |
- Handle<String> str = isolate->factory()->NewStringFromAscii(CStrVector(key)); |
+ Handle<String> str = isolate->factory()->NewStringFromAsciiChecked(key); |
Handle<Object> object = Object::GetProperty(options, str).ToHandleChecked(); |
if (object->IsString()) { |
v8::String::Utf8Value utf8_string( |
@@ -73,7 +73,7 @@ bool ExtractIntegerSetting(Isolate* isolate, |
Handle<JSObject> options, |
const char* key, |
int32_t* value) { |
- Handle<String> str = isolate->factory()->NewStringFromAscii(CStrVector(key)); |
+ Handle<String> str = isolate->factory()->NewStringFromAsciiChecked(key); |
Handle<Object> object = Object::GetProperty(options, str).ToHandleChecked(); |
if (object->IsNumber()) { |
object->ToInt32(value); |
@@ -87,7 +87,7 @@ bool ExtractBooleanSetting(Isolate* isolate, |
Handle<JSObject> options, |
const char* key, |
bool* value) { |
- Handle<String> str = isolate->factory()->NewStringFromAscii(CStrVector(key)); |
+ Handle<String> str = isolate->factory()->NewStringFromAsciiChecked(key); |
Handle<Object> object = Object::GetProperty(options, str).ToHandleChecked(); |
if (object->IsBoolean()) { |
*value = object->BooleanValue(); |
@@ -149,16 +149,17 @@ void SetResolvedDateSettings(Isolate* isolate, |
const icu::Locale& icu_locale, |
icu::SimpleDateFormat* date_format, |
Handle<JSObject> resolved) { |
+ Factory* factory = isolate->factory(); |
UErrorCode status = U_ZERO_ERROR; |
icu::UnicodeString pattern; |
date_format->toPattern(pattern); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("pattern")), |
- isolate->factory()->NewStringFromTwoByte( |
+ factory->NewStringFromStaticAscii("pattern"), |
+ factory->NewStringFromTwoByte( |
Vector<const uint16_t>( |
reinterpret_cast<const uint16_t*>(pattern.getBuffer()), |
- pattern.length())), |
+ pattern.length())).ToHandleChecked(), |
NONE, |
SLOPPY).Assert(); |
@@ -167,8 +168,8 @@ void SetResolvedDateSettings(Isolate* isolate, |
const char* calendar_name = calendar->getType(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("calendar")), |
- isolate->factory()->NewStringFromAscii(CStrVector(calendar_name)), |
+ factory->NewStringFromStaticAscii("calendar"), |
+ factory->NewStringFromAsciiChecked(calendar_name), |
NONE, |
SLOPPY).Assert(); |
@@ -182,19 +183,19 @@ void SetResolvedDateSettings(Isolate* isolate, |
if (canonical_time_zone == UNICODE_STRING_SIMPLE("Etc/GMT")) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("timeZone")), |
- isolate->factory()->NewStringFromAscii(CStrVector("UTC")), |
+ factory->NewStringFromStaticAscii("timeZone"), |
+ factory->NewStringFromStaticAscii("UTC"), |
NONE, |
SLOPPY).Assert(); |
} else { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("timeZone")), |
- isolate->factory()->NewStringFromTwoByte( |
+ factory->NewStringFromStaticAscii("timeZone"), |
+ factory->NewStringFromTwoByte( |
Vector<const uint16_t>( |
reinterpret_cast<const uint16_t*>( |
canonical_time_zone.getBuffer()), |
- canonical_time_zone.length())), |
+ canonical_time_zone.length())).ToHandleChecked(), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -210,15 +211,15 @@ void SetResolvedDateSettings(Isolate* isolate, |
const char* ns = numbering_system->getName(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("numberingSystem")), |
- isolate->factory()->NewStringFromAscii(CStrVector(ns)), |
+ factory->NewStringFromStaticAscii("numberingSystem"), |
+ factory->NewStringFromAsciiChecked(ns), |
NONE, |
SLOPPY).Assert(); |
} else { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("numberingSystem")), |
- isolate->factory()->undefined_value(), |
+ factory->NewStringFromStaticAscii("numberingSystem"), |
+ factory->undefined_value(), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -232,16 +233,16 @@ void SetResolvedDateSettings(Isolate* isolate, |
if (U_SUCCESS(status)) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("locale")), |
- isolate->factory()->NewStringFromAscii(CStrVector(result)), |
+ factory->NewStringFromStaticAscii("locale"), |
+ factory->NewStringFromAsciiChecked(result), |
NONE, |
SLOPPY).Assert(); |
} else { |
// This would never happen, since we got the locale from ICU. |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("locale")), |
- isolate->factory()->NewStringFromAscii(CStrVector("und")), |
+ factory->NewStringFromStaticAscii("locale"), |
+ factory->NewStringFromStaticAscii("und"), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -376,15 +377,16 @@ void SetResolvedNumberSettings(Isolate* isolate, |
const icu::Locale& icu_locale, |
icu::DecimalFormat* number_format, |
Handle<JSObject> resolved) { |
+ Factory* factory = isolate->factory(); |
icu::UnicodeString pattern; |
number_format->toPattern(pattern); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("pattern")), |
- isolate->factory()->NewStringFromTwoByte( |
+ factory->NewStringFromStaticAscii("pattern"), |
+ factory->NewStringFromTwoByte( |
Vector<const uint16_t>( |
reinterpret_cast<const uint16_t*>(pattern.getBuffer()), |
- pattern.length())), |
+ pattern.length())).ToHandleChecked(), |
NONE, |
SLOPPY).Assert(); |
@@ -393,11 +395,11 @@ void SetResolvedNumberSettings(Isolate* isolate, |
if (!currency.isEmpty()) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("currency")), |
- isolate->factory()->NewStringFromTwoByte( |
+ factory->NewStringFromStaticAscii("currency"), |
+ factory->NewStringFromTwoByte( |
Vector<const uint16_t>( |
reinterpret_cast<const uint16_t*>(currency.getBuffer()), |
- currency.length())), |
+ currency.length())).ToHandleChecked(), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -412,15 +414,15 @@ void SetResolvedNumberSettings(Isolate* isolate, |
const char* ns = numbering_system->getName(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("numberingSystem")), |
- isolate->factory()->NewStringFromAscii(CStrVector(ns)), |
+ factory->NewStringFromStaticAscii("numberingSystem"), |
+ factory->NewStringFromAsciiChecked(ns), |
NONE, |
SLOPPY).Assert(); |
} else { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("numberingSystem")), |
- isolate->factory()->undefined_value(), |
+ factory->NewStringFromStaticAscii("numberingSystem"), |
+ factory->undefined_value(), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -428,60 +430,49 @@ void SetResolvedNumberSettings(Isolate* isolate, |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("useGrouping")), |
- isolate->factory()->ToBoolean(number_format->isGroupingUsed()), |
+ factory->NewStringFromStaticAscii("useGrouping"), |
+ factory->ToBoolean(number_format->isGroupingUsed()), |
NONE, |
SLOPPY).Assert(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii( |
- CStrVector("minimumIntegerDigits")), |
- isolate->factory()->NewNumberFromInt( |
- number_format->getMinimumIntegerDigits()), |
+ factory->NewStringFromStaticAscii("minimumIntegerDigits"), |
+ factory->NewNumberFromInt(number_format->getMinimumIntegerDigits()), |
NONE, |
SLOPPY).Assert(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii( |
- CStrVector("minimumFractionDigits")), |
- isolate->factory()->NewNumberFromInt( |
- number_format->getMinimumFractionDigits()), |
+ factory->NewStringFromStaticAscii("minimumFractionDigits"), |
+ factory->NewNumberFromInt(number_format->getMinimumFractionDigits()), |
NONE, |
SLOPPY).Assert(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii( |
- CStrVector("maximumFractionDigits")), |
- isolate->factory()->NewNumberFromInt( |
- number_format->getMaximumFractionDigits()), |
+ factory->NewStringFromStaticAscii("maximumFractionDigits"), |
+ factory->NewNumberFromInt(number_format->getMaximumFractionDigits()), |
NONE, |
SLOPPY).Assert(); |
- Handle<String> key = isolate->factory()->NewStringFromAscii( |
- CStrVector("minimumSignificantDigits")); |
+ Handle<String> key = |
+ factory->NewStringFromStaticAscii("minimumSignificantDigits"); |
if (JSReceiver::HasLocalProperty(resolved, key)) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii( |
- CStrVector("minimumSignificantDigits")), |
- isolate->factory()->NewNumberFromInt( |
- number_format->getMinimumSignificantDigits()), |
+ factory->NewStringFromStaticAscii("minimumSignificantDigits"), |
+ factory->NewNumberFromInt(number_format->getMinimumSignificantDigits()), |
NONE, |
SLOPPY).Assert(); |
} |
- key = isolate->factory()->NewStringFromAscii( |
- CStrVector("maximumSignificantDigits")); |
+ key = factory->NewStringFromStaticAscii("maximumSignificantDigits"); |
if (JSReceiver::HasLocalProperty(resolved, key)) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii( |
- CStrVector("maximumSignificantDigits")), |
- isolate->factory()->NewNumberFromInt( |
- number_format->getMaximumSignificantDigits()), |
+ factory->NewStringFromStaticAscii("maximumSignificantDigits"), |
+ factory->NewNumberFromInt(number_format->getMaximumSignificantDigits()), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -494,16 +485,16 @@ void SetResolvedNumberSettings(Isolate* isolate, |
if (U_SUCCESS(status)) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("locale")), |
- isolate->factory()->NewStringFromAscii(CStrVector(result)), |
+ factory->NewStringFromStaticAscii("locale"), |
+ factory->NewStringFromAsciiChecked(result), |
NONE, |
SLOPPY).Assert(); |
} else { |
// This would never happen, since we got the locale from ICU. |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("locale")), |
- isolate->factory()->NewStringFromAscii(CStrVector("und")), |
+ factory->NewStringFromStaticAscii("locale"), |
+ factory->NewStringFromStaticAscii("und"), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -578,12 +569,13 @@ void SetResolvedCollatorSettings(Isolate* isolate, |
const icu::Locale& icu_locale, |
icu::Collator* collator, |
Handle<JSObject> resolved) { |
+ Factory* factory = isolate->factory(); |
UErrorCode status = U_ZERO_ERROR; |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("numeric")), |
- isolate->factory()->ToBoolean( |
+ factory->NewStringFromStaticAscii("numeric"), |
+ factory->ToBoolean( |
collator->getAttribute(UCOL_NUMERIC_COLLATION, status) == UCOL_ON), |
NONE, |
SLOPPY).Assert(); |
@@ -592,24 +584,24 @@ void SetResolvedCollatorSettings(Isolate* isolate, |
case UCOL_LOWER_FIRST: |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("caseFirst")), |
- isolate->factory()->NewStringFromAscii(CStrVector("lower")), |
+ factory->NewStringFromStaticAscii("caseFirst"), |
+ factory->NewStringFromStaticAscii("lower"), |
NONE, |
SLOPPY).Assert(); |
break; |
case UCOL_UPPER_FIRST: |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("caseFirst")), |
- isolate->factory()->NewStringFromAscii(CStrVector("upper")), |
+ factory->NewStringFromStaticAscii("caseFirst"), |
+ factory->NewStringFromStaticAscii("upper"), |
NONE, |
SLOPPY).Assert(); |
break; |
default: |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("caseFirst")), |
- isolate->factory()->NewStringFromAscii(CStrVector("false")), |
+ factory->NewStringFromStaticAscii("caseFirst"), |
+ factory->NewStringFromStaticAscii("false"), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -618,8 +610,8 @@ void SetResolvedCollatorSettings(Isolate* isolate, |
case UCOL_PRIMARY: { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("strength")), |
- isolate->factory()->NewStringFromAscii(CStrVector("primary")), |
+ factory->NewStringFromStaticAscii("strength"), |
+ factory->NewStringFromStaticAscii("primary"), |
NONE, |
SLOPPY).Assert(); |
@@ -627,15 +619,15 @@ void SetResolvedCollatorSettings(Isolate* isolate, |
if (UCOL_ON == collator->getAttribute(UCOL_CASE_LEVEL, status)) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("sensitivity")), |
- isolate->factory()->NewStringFromAscii(CStrVector("case")), |
+ factory->NewStringFromStaticAscii("sensitivity"), |
+ factory->NewStringFromStaticAscii("case"), |
NONE, |
SLOPPY).Assert(); |
} else { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("sensitivity")), |
- isolate->factory()->NewStringFromAscii(CStrVector("base")), |
+ factory->NewStringFromStaticAscii("sensitivity"), |
+ factory->NewStringFromStaticAscii("base"), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -644,28 +636,28 @@ void SetResolvedCollatorSettings(Isolate* isolate, |
case UCOL_SECONDARY: |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("strength")), |
- isolate->factory()->NewStringFromAscii(CStrVector("secondary")), |
+ factory->NewStringFromStaticAscii("strength"), |
+ factory->NewStringFromStaticAscii("secondary"), |
NONE, |
SLOPPY).Assert(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("sensitivity")), |
- isolate->factory()->NewStringFromAscii(CStrVector("accent")), |
+ factory->NewStringFromStaticAscii("sensitivity"), |
+ factory->NewStringFromStaticAscii("accent"), |
NONE, |
SLOPPY).Assert(); |
break; |
case UCOL_TERTIARY: |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("strength")), |
- isolate->factory()->NewStringFromAscii(CStrVector("tertiary")), |
+ factory->NewStringFromStaticAscii("strength"), |
+ factory->NewStringFromStaticAscii("tertiary"), |
NONE, |
SLOPPY).Assert(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("sensitivity")), |
- isolate->factory()->NewStringFromAscii(CStrVector("variant")), |
+ factory->NewStringFromStaticAscii("sensitivity"), |
+ factory->NewStringFromStaticAscii("variant"), |
NONE, |
SLOPPY).Assert(); |
break; |
@@ -674,36 +666,36 @@ void SetResolvedCollatorSettings(Isolate* isolate, |
// put them into variant. |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("strength")), |
- isolate->factory()->NewStringFromAscii(CStrVector("quaternary")), |
+ factory->NewStringFromStaticAscii("strength"), |
+ factory->NewStringFromStaticAscii("quaternary"), |
NONE, |
SLOPPY).Assert(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("sensitivity")), |
- isolate->factory()->NewStringFromAscii(CStrVector("variant")), |
+ factory->NewStringFromStaticAscii("sensitivity"), |
+ factory->NewStringFromStaticAscii("variant"), |
NONE, |
SLOPPY).Assert(); |
break; |
default: |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("strength")), |
- isolate->factory()->NewStringFromAscii(CStrVector("identical")), |
+ factory->NewStringFromStaticAscii("strength"), |
+ factory->NewStringFromStaticAscii("identical"), |
NONE, |
SLOPPY).Assert(); |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("sensitivity")), |
- isolate->factory()->NewStringFromAscii(CStrVector("variant")), |
+ factory->NewStringFromStaticAscii("sensitivity"), |
+ factory->NewStringFromStaticAscii("variant"), |
NONE, |
SLOPPY).Assert(); |
} |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("ignorePunctuation")), |
- isolate->factory()->ToBoolean(collator->getAttribute( |
+ factory->NewStringFromStaticAscii("ignorePunctuation"), |
+ factory->ToBoolean(collator->getAttribute( |
UCOL_ALTERNATE_HANDLING, status) == UCOL_SHIFTED), |
NONE, |
SLOPPY).Assert(); |
@@ -716,16 +708,16 @@ void SetResolvedCollatorSettings(Isolate* isolate, |
if (U_SUCCESS(status)) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("locale")), |
- isolate->factory()->NewStringFromAscii(CStrVector(result)), |
+ factory->NewStringFromStaticAscii("locale"), |
+ factory->NewStringFromAsciiChecked(result), |
NONE, |
SLOPPY).Assert(); |
} else { |
// This would never happen, since we got the locale from ICU. |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("locale")), |
- isolate->factory()->NewStringFromAscii(CStrVector("und")), |
+ factory->NewStringFromStaticAscii("locale"), |
+ factory->NewStringFromStaticAscii("und"), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -769,6 +761,7 @@ void SetResolvedBreakIteratorSettings(Isolate* isolate, |
const icu::Locale& icu_locale, |
icu::BreakIterator* break_iterator, |
Handle<JSObject> resolved) { |
+ Factory* factory = isolate->factory(); |
UErrorCode status = U_ZERO_ERROR; |
// Set the locale |
@@ -779,16 +772,16 @@ void SetResolvedBreakIteratorSettings(Isolate* isolate, |
if (U_SUCCESS(status)) { |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("locale")), |
- isolate->factory()->NewStringFromAscii(CStrVector(result)), |
+ factory->NewStringFromStaticAscii("locale"), |
+ factory->NewStringFromAsciiChecked(result), |
NONE, |
SLOPPY).Assert(); |
} else { |
// This would never happen, since we got the locale from ICU. |
JSObject::SetProperty( |
resolved, |
- isolate->factory()->NewStringFromAscii(CStrVector("locale")), |
- isolate->factory()->NewStringFromAscii(CStrVector("und")), |
+ factory->NewStringFromStaticAscii("locale"), |
+ factory->NewStringFromStaticAscii("und"), |
NONE, |
SLOPPY).Assert(); |
} |
@@ -852,7 +845,7 @@ icu::SimpleDateFormat* DateFormat::UnpackDateFormat( |
Isolate* isolate, |
Handle<JSObject> obj) { |
Handle<String> key = |
- isolate->factory()->NewStringFromAscii(CStrVector("dateFormat")); |
+ isolate->factory()->NewStringFromStaticAscii("dateFormat"); |
if (JSReceiver::HasLocalProperty(obj, key)) { |
return reinterpret_cast<icu::SimpleDateFormat*>( |
obj->GetInternalField(0)); |
@@ -926,7 +919,7 @@ icu::DecimalFormat* NumberFormat::UnpackNumberFormat( |
Isolate* isolate, |
Handle<JSObject> obj) { |
Handle<String> key = |
- isolate->factory()->NewStringFromAscii(CStrVector("numberFormat")); |
+ isolate->factory()->NewStringFromStaticAscii("numberFormat"); |
if (JSReceiver::HasLocalProperty(obj, key)) { |
return reinterpret_cast<icu::DecimalFormat*>(obj->GetInternalField(0)); |
} |
@@ -981,8 +974,7 @@ icu::Collator* Collator::InitializeCollator( |
icu::Collator* Collator::UnpackCollator(Isolate* isolate, |
Handle<JSObject> obj) { |
- Handle<String> key = |
- isolate->factory()->NewStringFromAscii(CStrVector("collator")); |
+ Handle<String> key = isolate->factory()->NewStringFromStaticAscii("collator"); |
if (JSReceiver::HasLocalProperty(obj, key)) { |
return reinterpret_cast<icu::Collator*>(obj->GetInternalField(0)); |
} |
@@ -1041,7 +1033,7 @@ icu::BreakIterator* BreakIterator::InitializeBreakIterator( |
icu::BreakIterator* BreakIterator::UnpackBreakIterator(Isolate* isolate, |
Handle<JSObject> obj) { |
Handle<String> key = |
- isolate->factory()->NewStringFromAscii(CStrVector("breakIterator")); |
+ isolate->factory()->NewStringFromStaticAscii("breakIterator"); |
if (JSReceiver::HasLocalProperty(obj, key)) { |
return reinterpret_cast<icu::BreakIterator*>(obj->GetInternalField(0)); |
} |