tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

double-conversion.diff (5697B)


      1 diff --git a/intl/icu/source/i18n/measunit_extra.cpp b/intl/icu/source/i18n/measunit_extra.cpp
      2 --- a/intl/icu/source/i18n/measunit_extra.cpp
      3 +++ b/intl/icu/source/i18n/measunit_extra.cpp
      4 @@ -10,17 +10,21 @@
      5 
      6 // Allow implicit conversion from char16_t* to UnicodeString for this file:
      7 // Helpful in toString methods and elsewhere.
      8 #define UNISTR_FROM_STRING_EXPLICIT
      9 
     10 #include "charstr.h"
     11 #include "cmemory.h"
     12 #include "cstring.h"
     13 +#ifdef JS_HAS_INTL_API
     14 +#include "double-conversion/string-to-double.h"
     15 +#else
     16 #include "double-conversion-string-to-double.h"
     17 +#endif
     18 #include "measunit_impl.h"
     19 #include "resource.h"
     20 #include "uarrsort.h"
     21 #include "uassert.h"
     22 #include "ucln_in.h"
     23 #include "umutex.h"
     24 #include "unicode/bytestrie.h"
     25 #include "unicode/bytestriebuilder.h"
     26 @@ -33,17 +37,21 @@
     27 #include "util.h"
     28 #include <limits.h>
     29 #include <cstdlib>
     30 U_NAMESPACE_BEGIN
     31 
     32 
     33 namespace {
     34 
     35 +#ifdef JS_HAS_INTL_API
     36 +using double_conversion::StringToDoubleConverter;
     37 +#else
     38 using icu::double_conversion::StringToDoubleConverter;
     39 +#endif
     40 
     41 // TODO: Propose a new error code for this?
     42 constexpr UErrorCode kUnitIdentifierSyntaxError = U_ILLEGAL_ARGUMENT_ERROR;
     43 
     44 // Trie value offset for SI or binary prefixes. This is big enough to ensure we only
     45 // insert positive integers into the trie.
     46 constexpr int32_t kPrefixOffset = 64;
     47 static_assert(kPrefixOffset + UMEASURE_PREFIX_INTERNAL_MIN_BIN > 0,
     48 diff --git a/intl/icu/source/i18n/number_decimalquantity.cpp b/intl/icu/source/i18n/number_decimalquantity.cpp
     49 --- a/intl/icu/source/i18n/number_decimalquantity.cpp
     50 +++ b/intl/icu/source/i18n/number_decimalquantity.cpp
     51 @@ -11,28 +11,37 @@
     52 #include <stdlib.h>
     53 
     54 #include "unicode/plurrule.h"
     55 #include "cmemory.h"
     56 #include "number_decnum.h"
     57 #include "putilimp.h"
     58 #include "number_decimalquantity.h"
     59 #include "number_roundingutils.h"
     60 +#ifdef JS_HAS_INTL_API
     61 +#include "double-conversion/double-conversion.h"
     62 +#else
     63 #include "double-conversion.h"
     64 +#endif
     65 #include "charstr.h"
     66 #include "number_utils.h"
     67 #include "uassert.h"
     68 #include "util.h"
     69 
     70 using namespace icu;
     71 using namespace icu::number;
     72 using namespace icu::number::impl;
     73 
     74 +#ifdef JS_HAS_INTL_API
     75 +using double_conversion::DoubleToStringConverter;
     76 +using double_conversion::StringToDoubleConverter;
     77 +#else
     78 using icu::double_conversion::DoubleToStringConverter;
     79 using icu::double_conversion::StringToDoubleConverter;
     80 +#endif
     81 
     82 namespace {
     83 
     84 int8_t NEGATIVE_FLAG = 1;
     85 int8_t INFINITY_FLAG = 2;
     86 int8_t NAN_FLAG = 4;
     87 
     88 /** Helper function for safe subtraction (no overflow). */
     89 diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/number_rounding.cpp
     90 --- a/intl/icu/source/i18n/number_rounding.cpp
     91 +++ b/intl/icu/source/i18n/number_rounding.cpp
     92 @@ -5,17 +5,21 @@
     93 
     94 #if !UCONFIG_NO_FORMATTING
     95 
     96 #include "charstr.h"
     97 #include "uassert.h"
     98 #include "unicode/numberformatter.h"
     99 #include "number_types.h"
    100 #include "number_decimalquantity.h"
    101 +#ifdef JS_HAS_INTL_API
    102 +#include "double-conversion/double-conversion.h"
    103 +#else
    104 #include "double-conversion.h"
    105 +#endif
    106 #include "number_roundingutils.h"
    107 #include "number_skeletons.h"
    108 #include "number_decnum.h"
    109 #include "putilimp.h"
    110 #include "string_segment.h"
    111 
    112 using namespace icu;
    113 using namespace icu::number;
    114 diff --git a/intl/icu/source/i18n/number_utils.cpp b/intl/icu/source/i18n/number_utils.cpp
    115 --- a/intl/icu/source/i18n/number_utils.cpp
    116 +++ b/intl/icu/source/i18n/number_utils.cpp
    117 @@ -12,26 +12,34 @@
    118 #include <stdlib.h>
    119 #include <cmath>
    120 #include "number_decnum.h"
    121 #include "number_types.h"
    122 #include "number_utils.h"
    123 #include "charstr.h"
    124 #include "decContext.h"
    125 #include "decNumber.h"
    126 +#ifdef JS_HAS_INTL_API
    127 +#include "double-conversion/double-conversion.h"
    128 +#else
    129 #include "double-conversion.h"
    130 +#endif
    131 #include "fphdlimp.h"
    132 #include "uresimp.h"
    133 #include "ureslocs.h"
    134 
    135 using namespace icu;
    136 using namespace icu::number;
    137 using namespace icu::number::impl;
    138 
    139 +#ifdef JS_HAS_INTL_API
    140 +using double_conversion::DoubleToStringConverter;
    141 +#else
    142 using icu::double_conversion::DoubleToStringConverter;
    143 +#endif
    144 
    145 
    146 namespace {
    147 
    148 const char16_t*
    149 doGetPattern(UResourceBundle* res, const char* nsName, const char* patternKey, UErrorCode& publicStatus,
    150              UErrorCode& localStatus) {
    151     // Construct the path into the resource bundle
    152 diff --git a/intl/icu/source/i18n/units_converter.cpp b/intl/icu/source/i18n/units_converter.cpp
    153 --- a/intl/icu/source/i18n/units_converter.cpp
    154 +++ b/intl/icu/source/i18n/units_converter.cpp
    155 @@ -3,17 +3,21 @@
    156 
    157 #include "unicode/utypes.h"
    158 
    159 #if !UCONFIG_NO_FORMATTING
    160 
    161 #include "charstr.h"
    162 #include "cmemory.h"
    163 #include "cstring.h"
    164 +#ifdef JS_HAS_INTL_API
    165 +#include "double-conversion/string-to-double.h"
    166 +#else
    167 #include "double-conversion-string-to-double.h"
    168 +#endif
    169 #include "measunit_impl.h"
    170 #include "putilimp.h"
    171 #include "uassert.h"
    172 #include "unicode/errorcode.h"
    173 #include "unicode/localpointer.h"
    174 #include "unicode/stringpiece.h"
    175 #include "units_converter.h"
    176 #include <algorithm>
    177 @@ -105,17 +109,21 @@ void Factor::substituteConstants() {
    178         this->constantExponents[i] = 0;
    179     }
    180 }
    181 
    182 namespace {
    183 
    184 /* Helpers */
    185 
    186 +#ifdef JS_HAS_INTL_API
    187 +using double_conversion::StringToDoubleConverter;
    188 +#else
    189 using icu::double_conversion::StringToDoubleConverter;
    190 +#endif
    191 
    192 // TODO: Make this a shared-utility function.
    193 // Returns `double` from a scientific number(i.e. "1", "2.01" or "3.09E+4")
    194 double strToDouble(StringPiece strNum, UErrorCode &status) {
    195     // We are processing well-formed input, so we don't need any special options to
    196     // StringToDoubleConverter.
    197     StringToDoubleConverter converter(0, 0, 0, "", "");
    198     int32_t count;