Chromium Code Reviews| Index: src/extensions/experimental/i18n-utils.cc |
| =================================================================== |
| --- src/extensions/experimental/i18n-utils.cc (revision 7878) |
| +++ src/extensions/experimental/i18n-utils.cc (working copy) |
| @@ -29,6 +29,8 @@ |
| #include <string.h> |
| +#include "unicode/unistr.h" |
| + |
| namespace v8 { |
| namespace internal { |
| @@ -40,4 +42,27 @@ |
| dest[length - 1] = '\0'; |
| } |
| +// static |
| +bool I18NUtils::ExtractStringSetting(const v8::Handle<v8::Object>& settings, |
| + const char* setting, |
| + icu::UnicodeString* result) { |
| + if (!setting || !result) return false; |
| + |
| + v8::HandleScope handle_scope; |
| + v8::TryCatch try_catch; |
| + v8::Handle<v8::Value> value = settings->Get(v8::String::New(setting)); |
| + if (try_catch.HasCaught()) { |
| + return false; |
| + } |
| + // No need to check if |value| is empty because it's taken care of |
| + // by TryCatch above. |
| + if (!value->IsUndefined() && !value->IsNull() && value->IsString()) { |
| + v8::String::AsciiValue ascii_value(value); |
|
jungshik at Google
2011/05/19 18:24:05
JFYI: For now, all the settings have ASCII values,
Nebojša Ćirić
2011/05/19 20:44:41
I made it Ut8Value.
On 2011/05/19 18:24:05, Jungs
|
| + if (*ascii_value == NULL) return false; |
| + result->setTo(icu::UnicodeString::fromUTF8(*ascii_value)); |
| + return true; |
| + } |
| + return false; |
| +} |
| + |
| } } // namespace v8::internal |