| OLD | NEW | 
|    1 // Copyright 2014 the V8 project authors. All rights reserved. |    1 // Copyright 2014 the V8 project authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5  |    5  | 
|    6 #ifdef V8_I18N_SUPPORT |    6 #ifdef V8_I18N_SUPPORT | 
|    7 #include "src/v8.h" |    7 #include "src/v8.h" | 
|    8  |    8  | 
 |    9 #include "src/api-natives.h" | 
|    9 #include "src/arguments.h" |   10 #include "src/arguments.h" | 
|   10 #include "src/i18n.h" |   11 #include "src/i18n.h" | 
|   11 #include "src/runtime/runtime-utils.h" |   12 #include "src/runtime/runtime-utils.h" | 
|   12  |   13  | 
|   13 #include "unicode/brkiter.h" |   14 #include "unicode/brkiter.h" | 
|   14 #include "unicode/calendar.h" |   15 #include "unicode/calendar.h" | 
|   15 #include "unicode/coll.h" |   16 #include "unicode/coll.h" | 
|   16 #include "unicode/curramt.h" |   17 #include "unicode/curramt.h" | 
|   17 #include "unicode/datefmt.h" |   18 #include "unicode/datefmt.h" | 
|   18 #include "unicode/dcfmtsym.h" |   19 #include "unicode/dcfmtsym.h" | 
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  310   CONVERT_ARG_HANDLE_CHECKED(String, locale, 0); |  311   CONVERT_ARG_HANDLE_CHECKED(String, locale, 0); | 
|  311   CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); |  312   CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); | 
|  312   CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); |  313   CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); | 
|  313  |  314  | 
|  314   Handle<ObjectTemplateInfo> date_format_template = I18N::GetTemplate(isolate); |  315   Handle<ObjectTemplateInfo> date_format_template = I18N::GetTemplate(isolate); | 
|  315  |  316  | 
|  316   // Create an empty object wrapper. |  317   // Create an empty object wrapper. | 
|  317   Handle<JSObject> local_object; |  318   Handle<JSObject> local_object; | 
|  318   ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |  319   ASSIGN_RETURN_FAILURE_ON_EXCEPTION( | 
|  319       isolate, local_object, |  320       isolate, local_object, | 
|  320       Execution::InstantiateObject(date_format_template)); |  321       ApiNatives::InstantiateObject(date_format_template)); | 
|  321  |  322  | 
|  322   // Set date time formatter as internal field of the resulting JS object. |  323   // Set date time formatter as internal field of the resulting JS object. | 
|  323   icu::SimpleDateFormat* date_format = |  324   icu::SimpleDateFormat* date_format = | 
|  324       DateFormat::InitializeDateTimeFormat(isolate, locale, options, resolved); |  325       DateFormat::InitializeDateTimeFormat(isolate, locale, options, resolved); | 
|  325  |  326  | 
|  326   if (!date_format) return isolate->ThrowIllegalOperation(); |  327   if (!date_format) return isolate->ThrowIllegalOperation(); | 
|  327  |  328  | 
|  328   local_object->SetInternalField(0, reinterpret_cast<Smi*>(date_format)); |  329   local_object->SetInternalField(0, reinterpret_cast<Smi*>(date_format)); | 
|  329  |  330  | 
|  330   Factory* factory = isolate->factory(); |  331   Factory* factory = isolate->factory(); | 
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  405   CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); |  406   CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); | 
|  406   CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); |  407   CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); | 
|  407  |  408  | 
|  408   Handle<ObjectTemplateInfo> number_format_template = |  409   Handle<ObjectTemplateInfo> number_format_template = | 
|  409       I18N::GetTemplate(isolate); |  410       I18N::GetTemplate(isolate); | 
|  410  |  411  | 
|  411   // Create an empty object wrapper. |  412   // Create an empty object wrapper. | 
|  412   Handle<JSObject> local_object; |  413   Handle<JSObject> local_object; | 
|  413   ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |  414   ASSIGN_RETURN_FAILURE_ON_EXCEPTION( | 
|  414       isolate, local_object, |  415       isolate, local_object, | 
|  415       Execution::InstantiateObject(number_format_template)); |  416       ApiNatives::InstantiateObject(number_format_template)); | 
|  416  |  417  | 
|  417   // Set number formatter as internal field of the resulting JS object. |  418   // Set number formatter as internal field of the resulting JS object. | 
|  418   icu::DecimalFormat* number_format = |  419   icu::DecimalFormat* number_format = | 
|  419       NumberFormat::InitializeNumberFormat(isolate, locale, options, resolved); |  420       NumberFormat::InitializeNumberFormat(isolate, locale, options, resolved); | 
|  420  |  421  | 
|  421   if (!number_format) return isolate->ThrowIllegalOperation(); |  422   if (!number_format) return isolate->ThrowIllegalOperation(); | 
|  422  |  423  | 
|  423   local_object->SetInternalField(0, reinterpret_cast<Smi*>(number_format)); |  424   local_object->SetInternalField(0, reinterpret_cast<Smi*>(number_format)); | 
|  424  |  425  | 
|  425   Factory* factory = isolate->factory(); |  426   Factory* factory = isolate->factory(); | 
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  510  |  511  | 
|  511   CONVERT_ARG_HANDLE_CHECKED(String, locale, 0); |  512   CONVERT_ARG_HANDLE_CHECKED(String, locale, 0); | 
|  512   CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); |  513   CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); | 
|  513   CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); |  514   CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); | 
|  514  |  515  | 
|  515   Handle<ObjectTemplateInfo> collator_template = I18N::GetTemplate(isolate); |  516   Handle<ObjectTemplateInfo> collator_template = I18N::GetTemplate(isolate); | 
|  516  |  517  | 
|  517   // Create an empty object wrapper. |  518   // Create an empty object wrapper. | 
|  518   Handle<JSObject> local_object; |  519   Handle<JSObject> local_object; | 
|  519   ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |  520   ASSIGN_RETURN_FAILURE_ON_EXCEPTION( | 
|  520       isolate, local_object, Execution::InstantiateObject(collator_template)); |  521       isolate, local_object, ApiNatives::InstantiateObject(collator_template)); | 
|  521  |  522  | 
|  522   // Set collator as internal field of the resulting JS object. |  523   // Set collator as internal field of the resulting JS object. | 
|  523   icu::Collator* collator = |  524   icu::Collator* collator = | 
|  524       Collator::InitializeCollator(isolate, locale, options, resolved); |  525       Collator::InitializeCollator(isolate, locale, options, resolved); | 
|  525  |  526  | 
|  526   if (!collator) return isolate->ThrowIllegalOperation(); |  527   if (!collator) return isolate->ThrowIllegalOperation(); | 
|  527  |  528  | 
|  528   local_object->SetInternalField(0, reinterpret_cast<Smi*>(collator)); |  529   local_object->SetInternalField(0, reinterpret_cast<Smi*>(collator)); | 
|  529  |  530  | 
|  530   Factory* factory = isolate->factory(); |  531   Factory* factory = isolate->factory(); | 
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  609   CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); |  610   CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); | 
|  610   CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); |  611   CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); | 
|  611  |  612  | 
|  612   Handle<ObjectTemplateInfo> break_iterator_template = |  613   Handle<ObjectTemplateInfo> break_iterator_template = | 
|  613       I18N::GetTemplate2(isolate); |  614       I18N::GetTemplate2(isolate); | 
|  614  |  615  | 
|  615   // Create an empty object wrapper. |  616   // Create an empty object wrapper. | 
|  616   Handle<JSObject> local_object; |  617   Handle<JSObject> local_object; | 
|  617   ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |  618   ASSIGN_RETURN_FAILURE_ON_EXCEPTION( | 
|  618       isolate, local_object, |  619       isolate, local_object, | 
|  619       Execution::InstantiateObject(break_iterator_template)); |  620       ApiNatives::InstantiateObject(break_iterator_template)); | 
|  620  |  621  | 
|  621   // Set break iterator as internal field of the resulting JS object. |  622   // Set break iterator as internal field of the resulting JS object. | 
|  622   icu::BreakIterator* break_iterator = BreakIterator::InitializeBreakIterator( |  623   icu::BreakIterator* break_iterator = BreakIterator::InitializeBreakIterator( | 
|  623       isolate, locale, options, resolved); |  624       isolate, locale, options, resolved); | 
|  624  |  625  | 
|  625   if (!break_iterator) return isolate->ThrowIllegalOperation(); |  626   if (!break_iterator) return isolate->ThrowIllegalOperation(); | 
|  626  |  627  | 
|  627   local_object->SetInternalField(0, reinterpret_cast<Smi*>(break_iterator)); |  628   local_object->SetInternalField(0, reinterpret_cast<Smi*>(break_iterator)); | 
|  628   // Make sure that the pointer to adopted text is NULL. |  629   // Make sure that the pointer to adopted text is NULL. | 
|  629   local_object->SetInternalField(1, reinterpret_cast<Smi*>(NULL)); |  630   local_object->SetInternalField(1, reinterpret_cast<Smi*>(NULL)); | 
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  742   } else if (status >= UBRK_WORD_IDEO && status < UBRK_WORD_IDEO_LIMIT) { |  743   } else if (status >= UBRK_WORD_IDEO && status < UBRK_WORD_IDEO_LIMIT) { | 
|  743     return *isolate->factory()->NewStringFromStaticChars("ideo"); |  744     return *isolate->factory()->NewStringFromStaticChars("ideo"); | 
|  744   } else { |  745   } else { | 
|  745     return *isolate->factory()->NewStringFromStaticChars("unknown"); |  746     return *isolate->factory()->NewStringFromStaticChars("unknown"); | 
|  746   } |  747   } | 
|  747 } |  748 } | 
|  748 } |  749 } | 
|  749 }  // namespace v8::internal |  750 }  // namespace v8::internal | 
|  750  |  751  | 
|  751 #endif  // V8_I18N_SUPPORT |  752 #endif  // V8_I18N_SUPPORT | 
| OLD | NEW |