From 34231f343b7389c993b66d4f8cc07ba0b4b45487 Mon Sep 17 00:00:00 2001 From: roytam1 Date: Tue, 4 Jan 2022 11:19:13 +0800 Subject: [PATCH] partly import changes from tenfourfox: - #482: better bidi M1358275 M1392181 M1428774 + backbugs (e88a717ab) - M1739352 M1732572(partial) M1717318(partial) M1586061 (03ffdeadb) - M1737515 M1737470(no tests) +TLDs, tzdata (fd2b82f13) --- dom/base/nsTextFragment.cpp | 37 +- intl/icu/source/data/misc/zoneinfo64.txt | 394 +++++++++--------- intl/unicharutil/util/nsBidiUtils.cpp | 24 +- intl/unicharutil/util/nsBidiUtils.h | 22 +- js/xpconnect/wrappers/XrayWrapper.cpp | 3 + js/xpconnect/wrappers/XrayWrapper.h | 6 + .../src/peerconnection/PeerConnectionImpl.cpp | 7 +- netwerk/dns/effective_tld_names.dat | 87 ++-- toolkit/xre/nsNativeAppSupportCocoa.mm | 2 +- xpfe/appshell/nsAppShellService.cpp | 7 + 10 files changed, 311 insertions(+), 278 deletions(-) diff --git a/dom/base/nsTextFragment.cpp b/dom/base/nsTextFragment.cpp index 0ea69bba46..472e0f6059 100644 --- a/dom/base/nsTextFragment.cpp +++ b/dom/base/nsTextFragment.cpp @@ -330,6 +330,10 @@ nsTextFragment::CopyTo(char16_t *aDest, int32_t aOffset, int32_t aCount) bool nsTextFragment::Append(const char16_t* aBuffer, uint32_t aLength, bool aUpdateBidi) { + if (!aLength) { + return true; + } + // This is a common case because some callsites create a textnode // with a value by creating the node and then calling AppendData. if (mState.mLength == 0) { @@ -344,20 +348,20 @@ nsTextFragment::Append(const char16_t* aBuffer, uint32_t aLength, bool aUpdateBi // Note: Using CheckedInt here is wrong as nsTextFragment is 29 bits and needs an // explicit check for that length and not INT_MAX. Also, this method can be a very // hot path and cause performance loss since CheckedInt isn't inlined. - if (NS_MAX_TEXT_FRAGMENT_LENGTH - mState.mLength < aLength) { + if (MOZ_UNLIKELY(NS_MAX_TEXT_FRAGMENT_LENGTH - mState.mLength < aLength)) { return false; // Would be overflowing if we'd continue. } if (mState.mIs2b) { size_t size = mState.mLength + aLength; - if (SIZE_MAX / sizeof(char16_t) < size) { + if (MOZ_UNLIKELY(SIZE_MAX / sizeof(char16_t) < size)) { return false; // Would be overflowing if we'd continue. } size *= sizeof(char16_t); // Already a 2-byte string so the result will be too char16_t* buff = static_cast(realloc(m2b, size)); - if (!buff) { + if (MOZ_UNLIKELY(!buff)) { return false; } @@ -377,7 +381,7 @@ nsTextFragment::Append(const char16_t* aBuffer, uint32_t aLength, bool aUpdateBi if (first16bit != -1) { // aBuffer contains no non-8bit character size_t size = mState.mLength + aLength; - if (SIZE_MAX / sizeof(char16_t) < size) { + if (MOZ_UNLIKELY((SIZE_MAX / sizeof(char16_t)) < size)) { return false; // Would be overflowing if we'd continue. } size *= sizeof(char16_t); @@ -385,7 +389,7 @@ nsTextFragment::Append(const char16_t* aBuffer, uint32_t aLength, bool aUpdateBi // The old data was 1-byte, but the new is not so we have to expand it // all to 2-byte char16_t* buff = static_cast(malloc(size)); - if (!buff) { + if (MOZ_UNLIKELY(!buff)) { return false; } @@ -414,7 +418,7 @@ nsTextFragment::Append(const char16_t* aBuffer, uint32_t aLength, bool aUpdateBi // The new and the old data is all 1-byte // Note: Using CheckedInt here is wrong. See above. - if (NS_MAX_TEXT_FRAGMENT_LENGTH - mState.mLength < aLength) { + if (MOZ_UNLIKELY(NS_MAX_TEXT_FRAGMENT_LENGTH - mState.mLength < aLength)) { return false; // Would be overflowing if we'd continue. } @@ -423,12 +427,12 @@ nsTextFragment::Append(const char16_t* aBuffer, uint32_t aLength, bool aUpdateBi char* buff; if (mState.mInHeap) { buff = static_cast(realloc(const_cast(m1b), size)); - if (!buff) { + if (MOZ_UNLIKELY(!buff)) { return false; } } else { buff = static_cast(malloc(size)); - if (!buff) { + if (MOZ_UNLIKELY(!buff)) { return false; } @@ -466,21 +470,8 @@ void nsTextFragment::UpdateBidiFlag(const char16_t* aBuffer, uint32_t aLength) { if (mState.mIs2b && !mState.mIsBidi) { - const char16_t* cp = aBuffer; - const char16_t* end = cp + aLength; - while (cp < end) { - char16_t ch1 = *cp++; - uint32_t utf32Char = ch1; - if (NS_IS_HIGH_SURROGATE(ch1) && - cp < end && - NS_IS_LOW_SURROGATE(*cp)) { - char16_t ch2 = *cp++; - utf32Char = SURROGATE_TO_UCS4(ch1, ch2); - } - if (UTF32_CHAR_IS_BIDI(utf32Char) || IsBidiControlRTL(utf32Char)) { - mState.mIsBidi = true; - break; - } + if (HasRTLChars(aBuffer, aLength)) { + mState.mIsBidi = true; } } } diff --git a/intl/icu/source/data/misc/zoneinfo64.txt b/intl/icu/source/data/misc/zoneinfo64.txt index 48bbfbb27a..28208be623 100644 --- a/intl/icu/source/data/misc/zoneinfo64.txt +++ b/intl/icu/source/data/misc/zoneinfo64.txt @@ -3,9 +3,9 @@ // License & terms of use: http://www.unicode.org/copyright.html //--------------------------------------------------------- // Build tool: tz2icu -// Build date: Mon Sep 27 21:39:51 2021 +// Build date: Thu Nov 4 10:32:31 2021 // tz database: ftp://ftp.iana.org/tz/ -// tz version: 2021a1 +// tz version: 2021a4 // ICU version: 70.1 //--------------------------------------------------------- // >> !!! >> THIS IS A MACHINE-GENERATED FILE << !!! << @@ -13,7 +13,7 @@ //--------------------------------------------------------- zoneinfo64:table(nofallback) { - TZVersion { "2021a1" } + TZVersion { "2021a4" } Zones:array { /* ACT */ :int { 356 } //Z#0 /* AET */ :int { 368 } //Z#1 @@ -181,7 +181,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -36000 } finalYear:int { 2008 } - links:intvector { 59, 80, 617 } + links:intvector { 59, 80, 618 } } //Z#59 /* America/Anchorage */ :table { transPre32:intvector { -1, 1069743569, -1, 2106016072 } @@ -191,7 +191,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -32400 } finalYear:int { 2008 } - links:intvector { 4, 60, 616 } + links:intvector { 4, 60, 617 } } //Z#60 /* America/Anguilla */ :int { 187 } //Z#61 /* America/Antigua */ :int { 187 } //Z#62 @@ -387,7 +387,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -21600 } finalYear:int { 2008 } - links:intvector { 98, 382, 619 } + links:intvector { 98, 382, 620 } } //Z#98 /* America/Chihuahua */ :table { trans:intvector { -1514739600, -1343066400, -1234807200, -1220292000, -1207159200, -1191344400, 828864000, 846399600, 860313600, 877849200, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 989139600, 1001836800, 1018170000, 1035705600 } @@ -446,7 +446,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -25200 } finalYear:int { 2008 } - links:intvector { 109, 205, 545, 625 } + links:intvector { 109, 205, 545, 626 } } //Z#109 /* America/Detroit */ :table { trans:intvector { -2051202469, -1724083200, -880218000, -765396000, -684349200, -671047200, -80506740, -68666400, -52938000, -37216800, 104914800, 120636000, 126687600, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000 } @@ -455,7 +455,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -18000 } finalYear:int { 2008 } - links:intvector { 110, 624 } + links:intvector { 110, 625 } } //Z#110 /* America/Dominica */ :int { 187 } //Z#111 /* America/Edmonton */ :table { @@ -567,7 +567,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -18000 } finalYear:int { 2008 } - links:intvector { 117, 131, 139, 513, 620 } + links:intvector { 117, 131, 139, 513, 621 } } //Z#131 /* America/Indiana/Knox */ :table { transPre32:intvector { -1, 1577320096 } @@ -577,7 +577,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -21600 } finalYear:int { 2008 } - links:intvector { 132, 147, 623 } + links:intvector { 132, 147, 624 } } //Z#132 /* America/Indiana/Marengo */ :table { transPre32:intvector { -1, 1577320096 } @@ -706,7 +706,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -28800 } finalYear:int { 2008 } - links:intvector { 151, 550, 626, 627 } + links:intvector { 151, 550, 627, 628 } } //Z#151 /* America/Louisville */ :int { 145 } //Z#152 /* America/Lower_Princes */ :int { 105 } //Z#153 @@ -834,7 +834,7 @@ zoneinfo64:table(nofallback) { finalRule { "US" } finalRaw:int { -18000 } finalYear:int { 2008 } - links:intvector { 173, 621 } + links:intvector { 173, 622 } } //Z#173 /* America/Nipigon */ :table { transPre32:intvector { -1, 1928233280 } @@ -929,7 +929,7 @@ zoneinfo64:table(nofallback) { trans:intvector { -1633273200, -1615132800, -1601823600, -1583683200, -880210800, -820519140, -812653140, -796845540, -84380400, -68659200 } typeOffsets:intvector { -26898, 0, -25200, 0, -25200, 3600 } typeMap:bin { "0102010201020102010201" } - links:intvector { 185, 547, 618 } + links:intvector { 185, 547, 619 } } //Z#185 /* America/Port-au-Prince */ :table { transPre32:intvector { -1, 1770463056 } @@ -1363,28 +1363,28 @@ zoneinfo64:table(nofallback) { } //Z#268 /* Asia/Gaza */ :table { transPre32:intvector { -1, 2109557424 } - trans:intvector { -933638400, -923097600, -919036800, -857347200, -844300800, -825811200, -812678400, -794188800, -779846400, -762652800, -748310400, -731116800, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 334101600, 337730400, 452642400, 462319200, 482277600, 494370000, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1219957200, 1238104800, 1252015200, 1269640860, 1281474000, 1301608860, 1312146000, 1333058400, 1348178400, 1364508000, 1380229200, 1395957600, 1414098000, 1427493600, 1445551200, 1458946800, 1477692000, 1490396400, 1509141600, 1521846000, 1540591200, 1553810400, 1572037200, 1585346400, 1603490400 } + trans:intvector { -933638400, -923097600, -919036800, -857347200, -844300800, -825811200, -812678400, -794188800, -779846400, -762652800, -748310400, -731116800, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 334101600, 337730400, 452642400, 462319200, 482277600, 494370000, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1219957200, 1238104800, 1252015200, 1269640860, 1281474000, 1301608860, 1312146000, 1333058400, 1348178400, 1364508000, 1380229200, 1395957600, 1414098000, 1427493600, 1445551200, 1458946800, 1477692000, 1490396400, 1509141600, 1521846000, 1540591200, 1553810400, 1572037200, 1585346400, 1603490400, 1616796000, 1635458400 } typeOffsets:intvector { 8272, 0, 7200, 0, 7200, 3600 } - typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" } + typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" } finalRule { "Palestine" } finalRaw:int { 7200 } - finalYear:int { 2021 } + finalYear:int { 2022 } } //Z#269 /* Asia/Harbin */ :int { 315 } //Z#270 /* Asia/Hebron */ :table { transPre32:intvector { -1, 2109557273 } - trans:intvector { -933638400, -923097600, -919036800, -857347200, -844300800, -825811200, -812678400, -794188800, -779846400, -762652800, -748310400, -731116800, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 334101600, 337730400, 452642400, 462319200, 482277600, 494370000, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1220216400, 1238104800, 1252015200, 1269554400, 1281474000, 1301608860, 1312146000, 1314655200, 1317330000, 1333058400, 1348178400, 1364508000, 1380229200, 1395957600, 1414098000, 1427493600, 1445551200, 1458946800, 1477692000, 1490396400, 1509141600, 1521846000, 1540591200, 1553810400, 1572037200, 1585346400, 1603490400 } + trans:intvector { -933638400, -923097600, -919036800, -857347200, -844300800, -825811200, -812678400, -794188800, -779846400, -762652800, -748310400, -731116800, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 334101600, 337730400, 452642400, 462319200, 482277600, 494370000, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1220216400, 1238104800, 1252015200, 1269554400, 1281474000, 1301608860, 1312146000, 1314655200, 1317330000, 1333058400, 1348178400, 1364508000, 1380229200, 1395957600, 1414098000, 1427493600, 1445551200, 1458946800, 1477692000, 1490396400, 1509141600, 1521846000, 1540591200, 1553810400, 1572037200, 1585346400, 1603490400, 1616796000, 1635458400 } typeOffsets:intvector { 8423, 0, 7200, 0, 7200, 3600 } - typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" } + typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" } finalRule { "Palestine" } finalRaw:int { 7200 } - finalYear:int { 2021 } + finalYear:int { 2022 } } //Z#271 /* Asia/Ho_Chi_Minh */ :table { trans:intvector { -2004073600, -1851577590, -852105600, -782643600, -767869200, -718095600, -457776000, -315648000, 171820800 } typeOffsets:intvector { 25600, 0, 25200, 0, 25590, 0, 28800, 0, 32400, 0 } typeMap:bin { "020103040103010301" } - links:intvector { 272, 311, 631 } + links:intvector { 272, 311, 632 } } //Z#272 /* Asia/Hong_Kong */ :table { trans:intvector { -2056690800, -900910800, -891579600, -884248200, -761209200, -747907200, -728541000, -717049800, -697091400, -683785800, -668061000, -654755400, -636611400, -623305800, -605161800, -591856200, -573712200, -559801800, -541657800, -528352200, -510211800, -498112200, -478762200, -466662600, -446707800, -435213000, -415258200, -403158600, -383808600, -371709000, -352359000, -340259400, -320909400, -308809800, -288855000, -277360200, -257405400, -245910600, -225955800, -213856200, -194506200, -182406600, -163056600, -148537800, -132816600, -117088200, -101367000, -85638600, -69312600, -53584200, -37863000, -22134600, -6413400, 9315000, 25036200, 40764600, 56485800, 72214200, 88540200, 104268600, 119989800, 126041400, 151439400, 167167800, 182889000, 198617400, 214338600, 295385400, 309292200 } @@ -1580,7 +1580,7 @@ zoneinfo64:table(nofallback) { trans:intvector { -1948782472, -1830414600, -681210000, -672228000, -654771600, -640864800, -623408400, -609415200, -588848400, -577965600, -498128400, -462702600, -451733400, -429784200, -418296600, -399544200, -387451800, -368094600, -356002200, -336645000, -324552600, -305195400, -293103000, -264933000, 547578000, 560883600, 579027600, 592333200 } typeOffsets:intvector { 30472, 0, 30600, 0, 30600, 3600, 32400, 0, 32400, 3600 } typeMap:bin { "01030403040304030403010201020102010201020102010304030403" } - links:intvector { 314, 598 } + links:intvector { 314, 599 } } //Z#314 /* Asia/Shanghai */ :table { transPre32:intvector { -1, 2117485353 } @@ -1593,7 +1593,7 @@ zoneinfo64:table(nofallback) { trans:intvector { -2038200925, -1167634800, -1073028000, -894180000, -879665400, -767005200, 378664200 } typeOffsets:intvector { 24925, 0, 25200, 0, 25200, 1200, 26400, 0, 27000, 0, 28800, 0, 32400, 0 } typeMap:bin { "01020304060405" } - links:intvector { 316, 600 } + links:intvector { 316, 601 } } //Z#316 /* Asia/Srednekolymsk */ :table { trans:intvector { -1441188892, -1247565600, 354891600, 370699200, 386427600, 402235200, 417963600, 433771200, 449586000, 465318000, 481042800, 496767600, 512492400, 528217200, 543942000, 559666800, 575391600, 591116400, 606841200, 622566000, 638290800, 654620400, 670345200, 686073600, 695750400, 701794800, 717519600, 733244400, 748969200, 764694000, 780418800, 796143600, 811868400, 828198000, 846342000, 859647600, 877791600, 891097200, 909241200, 922546800, 941295600, 953996400, 972745200, 985446000, 1004194800, 1017500400, 1035644400, 1048950000, 1067094000, 1080399600, 1099148400, 1111849200, 1130598000, 1143298800, 1162047600, 1174748400, 1193497200, 1206802800, 1224946800, 1238252400, 1256396400, 1269702000, 1288450800, 1301151600, 1414245600 } @@ -1605,7 +1605,7 @@ zoneinfo64:table(nofallback) { trans:intvector { -1017820800, -766224000, -745833600, -733827600, -716889600, -699613200, -683884800, -670669200, -652348800, -639133200, -620812800, -607597200, -589276800, -576061200, -562924800, -541760400, -528710400, -510224400, -497174400, -478688400, -465638400, -449830800, -434016000, -418208400, -402480000, -386672400, -370944000, -355136400, -339408000, -323600400, -302515200, -291978000, -270979200, -260442000, 133977600, 149785200, 165513600, 181321200, 299606400, 307551600 } typeOffsets:intvector { 29160, 0, 28800, 0, 28800, 3600, 32400, 0 } typeMap:bin { "0103010201020102010201020102010201020102010201020102010201020102010201020102010201" } - links:intvector { 318, 597 } + links:intvector { 318, 598 } } //Z#318 /* Asia/Tashkent */ :table { trans:intvector { -1441168631, -1247547600, 354909600, 370717200, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 670363200, 686091600 } @@ -2015,7 +2015,7 @@ zoneinfo64:table(nofallback) { /* Etc/UCT */ :int { 436 } //Z#435 /* Etc/UTC */ :table { typeOffsets:intvector { 0, 0 } - links:intvector { 435, 436, 437, 439, 615, 629, 630, 634 } + links:intvector { 435, 436, 437, 439, 616, 630, 631, 635 } } //Z#436 /* Etc/Universal */ :int { 436 } //Z#437 /* Etc/Unknown */ :table { @@ -2154,7 +2154,7 @@ zoneinfo64:table(nofallback) { trans:intvector { -1869875816, -1693706400, -1680490800, -1570413600, -1552186800, -1538359200, -1522551600, -1507514400, -1490583600, -1440208800, -1428030000, -1409709600, -1396494000, -931053600, -922676400, -917834400, -892436400, -875844000, -764737200, -744343200, -733806000, -716436000, -701924400, -684986400, -670474800, -654141600, -639025200, -622087200, -606970800, -590032800, -575521200, -235620000, -194842800, -177732000, -165726000, 107910000, 121215600, 133920000, 152665200, 164678400, 184114800, 196214400, 215564400, 228873600, 245804400, 260323200, 267915600, 428454000, 433893600, 468111600, 482799600, 496710000, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 638319600, 654649200, 670374000, 686098800, 701823600, 717548400, 733273200, 748998000, 764118000, 780447600, 796172400, 811897200, 828226800, 846370800, 859676400, 877820400, 891126000, 909270000, 922575600, 941324400, 954025200, 972774000, 985474800, 1004223600, 1017529200, 1035673200, 1048978800, 1067122800, 1080428400, 1099177200, 1111878000, 1130626800, 1143327600, 1162076400, 1174784400, 1193533200, 1206838800, 1224982800, 1238288400, 1256432400, 1269738000, 1288486800, 1301274000, 1319936400, 1332637200, 1351386000, 1364691600, 1382835600, 1396227600, 1414285200, 1427590800, 1446944400, 1459040400, 1473195600 } typeOffsets:intvector { 6952, 0, 7016, 0, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 } typeMap:bin { "01020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030405040203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020304" } - links:intvector { 276, 459, 614 } + links:intvector { 276, 459, 615 } } //Z#459 /* Europe/Jersey */ :int { 466 } //Z#460 /* Europe/Kaliningrad */ :table { @@ -2183,7 +2183,7 @@ zoneinfo64:table(nofallback) { finalRule { "EU" } finalRaw:int { 0 } finalYear:int { 1997 } - links:intvector { 464, 596 } + links:intvector { 464, 597 } } //Z#464 /* Europe/Ljubljana */ :int { 445 } //Z#465 /* Europe/London */ :table { @@ -2242,7 +2242,7 @@ zoneinfo64:table(nofallback) { trans:intvector { -1688265017, -1656819079, -1641353479, -1627965079, -1618716679, -1596429079, -1593820800, -1589860800, -1542427200, -1539493200, -1525323600, -1522728000, -1491188400, -1247536800, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 638319600, 654649200, 670374000, 686102400, 695779200, 701823600, 717548400, 733273200, 748998000, 764722800, 780447600, 796172400, 811897200, 828226800, 846370800, 859676400, 877820400, 891126000, 909270000, 922575600, 941324400, 954025200, 972774000, 985474800, 1004223600, 1017529200, 1035673200, 1048978800, 1067122800, 1080428400, 1099177200, 1111878000, 1130626800, 1143327600, 1162076400, 1174777200, 1193526000, 1206831600, 1224975600, 1238281200, 1256425200, 1269730800, 1288479600, 1301180400, 1414274400 } typeOffsets:intvector { 9017, 0, 7200, 0, 7200, 3600, 9079, 0, 9079, 3600, 9079, 7200, 10800, 0, 10800, 3600, 10800, 7200, 14400, 0 } typeMap:bin { "0304030504050706070807060106070607060706070607060706070607060706070602010607060706070607060706070607060706070607060706070607060706070607060706070607060906" } - links:intvector { 473, 632 } + links:intvector { 473, 633 } } //Z#473 /* Europe/Nicosia */ :int { 298 } //Z#474 /* Europe/Oslo */ :table { @@ -2393,7 +2393,7 @@ zoneinfo64:table(nofallback) { finalRule { "EU" } finalRaw:int { 3600 } finalYear:int { 1997 } - links:intvector { 499, 595 } + links:intvector { 499, 596 } } //Z#499 /* Europe/Zagreb */ :int { 445 } //Z#500 /* Europe/Zaporozhye */ :table { @@ -2480,7 +2480,7 @@ zoneinfo64:table(nofallback) { /* JST */ :int { 325 } //Z#529 /* Jamaica */ :int { 142 } //Z#530 /* Japan */ :int { 325 } //Z#531 - /* Kwajalein */ :int { 571 } //Z#532 + /* Kwajalein */ :int { 572 } //Z#532 /* Libya */ :int { 56 } //Z#533 /* MET */ :table { trans:intvector { -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -938905200, -857257200, -844556400, -828226800, -812502000, -796777200, -781052400, -766623600, 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400, 828234000, 846378000 } @@ -2561,7 +2561,7 @@ zoneinfo64:table(nofallback) { trans:intvector { -1743674400, -1606813200, -907408800, -770634000 } typeOffsets:intvector { -49972, 0, 32400, 0, 36000, 0, 36428, 0 } typeMap:bin { "030201020102" } - links:intvector { 556, 591, 594 } + links:intvector { 556, 592, 595 } } //Z#556 /* Pacific/Easter */ :table { trans:intvector { -1178124152, -36619200, -23922000, -3355200, 7527600, 24465600, 37767600, 55915200, 69217200, 87969600, 100666800, 118209600, 132116400, 150868800, 163566000, 182318400, 195620400, 213768000, 227070000, 245217600, 258519600, 277272000, 289969200, 308721600, 321418800, 340171200, 353473200, 371620800, 384922800, 403070400, 416372400, 434520000, 447822000, 466574400, 479271600, 498024000, 510721200, 529473600, 545194800, 560923200, 574225200, 592372800, 605674800, 624427200, 637124400, 653457600, 668574000, 687326400, 700628400, 718776000, 732078000, 750225600, 763527600, 781675200, 794977200, 813729600, 826426800, 845179200, 859690800, 876628800, 889930800, 906868800, 923194800, 939528000, 952830000, 971582400, 984279600, 1003032000, 1015729200, 1034481600, 1047178800, 1065931200, 1079233200, 1097380800, 1110682800, 1128830400, 1142132400, 1160884800, 1173582000, 1192334400, 1206846000, 1223784000, 1237086000, 1255233600, 1270350000, 1286683200, 1304823600, 1313899200, 1335668400, 1346558400, 1367118000, 1378612800, 1398567600, 1410062400, 1463281200, 1471147200, 1494730800, 1502596800, 1526180400, 1534046400, 1554606000, 1567915200 } @@ -2577,12 +2577,7 @@ zoneinfo64:table(nofallback) { typeOffsets:intvector { 40396, 0, 39600, 0, 39600, 3600 } typeMap:bin { "0102010201020102010201020102010201020102010201" } } //Z#558 - /* Pacific/Enderbury */ :table { - transPre32:intvector { -1, 2117555556 } - trans:intvector { 307627200, 788871600 } - typeOffsets:intvector { -41060, 0, -43200, 0, -39600, 0, 46800, 0 } - typeMap:bin { "010203" } - } //Z#559 + /* Pacific/Enderbury */ :int { 569 } //Z#559 /* Pacific/Fakaofo */ :table { transPre32:intvector { -1, 2117555592 } trans:intvector { 1325242800 } @@ -2590,12 +2585,12 @@ zoneinfo64:table(nofallback) { typeMap:bin { "0102" } } //Z#560 /* Pacific/Fiji */ :table { - trans:intvector { -1709985344, 909842400, 920124000, 941896800, 951573600, 1259416800, 1269698400, 1287842400, 1299333600, 1319292000, 1327154400, 1350741600, 1358604000, 1382796000, 1390050000, 1414850400, 1421503200, 1446300000, 1452952800, 1478354400, 1484402400, 1509804000, 1515852000, 1541253600, 1547301600, 1573308000, 1578751200, 1608386400, 1610805600, 1636812000 } + trans:intvector { -1709985344, 909842400, 920124000, 941896800, 951573600, 1259416800, 1269698400, 1287842400, 1299333600, 1319292000, 1327154400, 1350741600, 1358604000, 1382796000, 1390050000, 1414850400, 1421503200, 1446300000, 1452952800, 1478354400, 1484402400, 1509804000, 1515852000, 1541253600, 1547301600, 1573308000, 1578751200, 1608386400, 1610805600, 1668261600, 1673704800, 1699711200 } typeOffsets:intvector { 42944, 0, 43200, 0, 43200, 3600 } - typeMap:bin { "010201020102010201020102010201020102010201020102010201020102" } + typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102" } finalRule { "Fiji" } finalRaw:int { 43200 } - finalYear:int { 2022 } + finalYear:int { 2024 } } //Z#561 /* Pacific/Funafuti */ :table { transPre32:intvector { -1, 2117471484 } @@ -2616,64 +2611,70 @@ zoneinfo64:table(nofallback) { trans:intvector { -1806748788 } typeOffsets:intvector { 38388, 0, 39600, 0 } typeMap:bin { "01" } - links:intvector { 565, 599 } + links:intvector { 565, 600 } } //Z#565 /* Pacific/Guam */ :table { transPre32:intvector { -1, 350340556, -1, 2117479756 } trans:intvector { -885549600, -802256400, -331891200, -281610000, -73728000, -29415540, -16704000, -10659600, 9907200, 21394800, 41356800, 52844400, 124819200, 130863600, 201888000, 209487660, 230659200, 241542000 } typeOffsets:intvector { -51660, 0, 32400, 0, 34740, 0, 36000, 0, 36000, 3600 } typeMap:bin { "0203010304030403040304030403040304030403" } - links:intvector { 566, 586 } + links:intvector { 566, 587 } } //Z#566 /* Pacific/Honolulu */ :table { transPre32:intvector { -1, 1960865982 } trans:intvector { -1157283000, -1155436200, -880198200, -765376200, -712150200 } typeOffsets:intvector { -37886, 0, -37800, 0, -37800, 3600, -36000, 0 } typeMap:bin { "010201020103" } - links:intvector { 567, 568, 622 } + links:intvector { 567, 568, 623 } } //Z#567 /* Pacific/Johnston */ :int { 567 } //Z#568 + /* Pacific/Kanton */ :table { + trans:intvector { -1020470400, 307627200, 788871600 } + typeOffsets:intvector { 0, 0, -43200, 0, -39600, 0, 46800, 0 } + typeMap:bin { "010203" } + links:intvector { 559, 569 } + } //Z#569 /* Pacific/Kiritimati */ :table { transPre32:intvector { -1, 2117552256 } trans:intvector { 307622400, 788868000 } typeOffsets:intvector { -37760, 0, -38400, 0, -36000, 0, 50400, 0 } typeMap:bin { "010203" } - } //Z#569 + } //Z#570 /* Pacific/Kosrae */ :table { transPre32:intvector { -1, 350336180, -1, 2117475380 } trans:intvector { -1743678000, -1606813200, -1041418800, -907408800, -770634000, -7988400, 915105600 } typeOffsets:intvector { -47284, 0, 32400, 0, 36000, 0, 39116, 0, 39600, 0, 43200, 0 } typeMap:bin { "030401040201040504" } - } //Z#570 + } //Z#571 /* Pacific/Kwajalein */ :table { transPre32:intvector { -1, 2117474336 } trans:intvector { -1041418800, -907408800, -817462800, -7988400, 745934400 } typeOffsets:intvector { 40160, 0, -43200, 0, 32400, 0, 36000, 0, 39600, 0, 43200, 0 } typeMap:bin { "040302040105" } - links:intvector { 532, 571 } - } //Z#571 + links:intvector { 532, 572 } + } //Z#572 /* Pacific/Majuro */ :table { transPre32:intvector { -1, 2117473408 } trans:intvector { -1743678000, -1606813200, -1041418800, -907408800, -818067600, -7988400 } typeOffsets:intvector { 41088, 0, 32400, 0, 36000, 0, 39600, 0, 43200, 0 } typeMap:bin { "03010302010304" } - } //Z#572 + } //Z#573 /* Pacific/Marquesas */ :table { trans:intvector { -1806676920 } typeOffsets:intvector { -33480, 0, -34200, 0 } typeMap:bin { "01" } - } //Z#573 - /* Pacific/Midway */ :int { 579 } //Z#574 + } //Z#574 + /* Pacific/Midway */ :int { 580 } //Z#575 /* Pacific/Nauru */ :table { trans:intvector { -1545131260, -862918200, -767350800, 287418600 } typeOffsets:intvector { 40060, 0, 32400, 0, 41400, 0, 43200, 0 } typeMap:bin { "02010203" } - } //Z#575 + } //Z#576 /* Pacific/Niue */ :table { trans:intvector { -543069620, -173623200 } typeOffsets:intvector { -40780, 0, -40800, 0, -39600, 0 } typeMap:bin { "0102" } - } //Z#576 + } //Z#577 /* Pacific/Norfolk */ :table { transPre32:intvector { -1, 2117474184 } trans:intvector { -599656320, 152029800, 162916200, 1443882600, 1570287600, 1586012400, 1601737200 } @@ -2682,87 +2683,87 @@ zoneinfo64:table(nofallback) { finalRule { "AN" } finalRaw:int { 39600 } finalYear:int { 2021 } - } //Z#577 + } //Z#578 /* Pacific/Noumea */ :table { trans:intvector { -1829387148, 250002000, 257342400, 281451600, 288878400, 849366000, 857228400 } typeOffsets:intvector { 39948, 0, 39600, 0, 39600, 3600 } typeMap:bin { "01020102010201" } - } //Z#578 + } //Z#579 /* Pacific/Pago_Pago */ :table { transPre32:intvector { -1, 1849542664 } trans:intvector { -1861879032 } typeOffsets:intvector { 45432, 0, -40968, 0, -39600, 0 } typeMap:bin { "0102" } - links:intvector { 574, 579, 587, 628 } - } //Z#579 + links:intvector { 575, 580, 588, 629 } + } //Z#580 /* Pacific/Palau */ :table { transPre32:intvector { -1, 350343020, -1, 2117482220 } typeOffsets:intvector { -54124, 0, 32276, 0, 32400, 0 } typeMap:bin { "0102" } - } //Z#580 + } //Z#581 /* Pacific/Pitcairn */ :table { transPre32:intvector { -1, 2117545716 } trans:intvector { 893665800 } typeOffsets:intvector { -31220, 0, -30600, 0, -28800, 0 } typeMap:bin { "0102" } - } //Z#581 + } //Z#582 /* Pacific/Pohnpei */ :table { transPre32:intvector { -1, 350337324, -1, 2117476524 } trans:intvector { -1743678000, -1606813200, -1041418800, -907408800, -770634000 } typeOffsets:intvector { -48428, 0, 32400, 0, 36000, 0, 37972, 0, 39600, 0 } typeMap:bin { "03040104020104" } - links:intvector { 582, 583 } - } //Z#582 - /* Pacific/Ponape */ :int { 582 } //Z#583 + links:intvector { 583, 584 } + } //Z#583 + /* Pacific/Ponape */ :int { 583 } //Z#584 /* Pacific/Port_Moresby */ :table { transPre32:intvector { -1, 1454791176, -1, 1928176784 } typeOffsets:intvector { 35320, 0, 35312, 0, 36000, 0 } typeMap:bin { "0102" } - } //Z#584 + } //Z#585 /* Pacific/Rarotonga */ :table { transPre32:intvector { -1, 2085412040 } trans:intvector { -543072056, 279714600, 289387800, 309952800, 320837400, 341402400, 352287000, 372852000, 384341400, 404906400, 415791000, 436356000, 447240600, 467805600, 478690200, 499255200, 510139800, 530704800, 541589400, 562154400, 573643800, 594208800, 605093400, 625658400, 636543000, 657108000, 667992600 } typeOffsets:intvector { 48056, 0, -38344, 0, -37800, 0, -36000, 0, -36000, 1800 } typeMap:bin { "01020403040304030403040304030403040304030403040304030403" } - } //Z#585 - /* Pacific/Saipan */ :int { 566 } //Z#586 - /* Pacific/Samoa */ :int { 579 } //Z#587 + } //Z#586 + /* Pacific/Saipan */ :int { 566 } //Z#587 + /* Pacific/Samoa */ :int { 580 } //Z#588 /* Pacific/Tahiti */ :table { trans:intvector { -1806674504 } typeOffsets:intvector { -35896, 0, -36000, 0 } typeMap:bin { "01" } - } //Z#588 + } //Z#589 /* Pacific/Tarawa */ :table { transPre32:intvector { -1, 2117472972 } typeOffsets:intvector { 41524, 0, 43200, 0 } typeMap:bin { "01" } - } //Z#589 + } //Z#590 /* Pacific/Tongatapu */ :table { trans:intvector { -767189952, -284041200, 939214800, 953384400, 973342800, 980596800, 1004792400, 1012046400, 1478350800, 1484398800 } typeOffsets:intvector { 44352, 0, 44400, 0, 46800, 0, 46800, 3600 } typeMap:bin { "01020302030203020302" } - } //Z#590 - /* Pacific/Truk */ :int { 556 } //Z#591 + } //Z#591 + /* Pacific/Truk */ :int { 556 } //Z#592 /* Pacific/Wake */ :table { transPre32:intvector { -1, 2117474508 } typeOffsets:intvector { 39988, 0, 43200, 0 } typeMap:bin { "01" } - } //Z#592 + } //Z#593 /* Pacific/Wallis */ :table { transPre32:intvector { -1, 2117470376 } typeOffsets:intvector { 44120, 0, 43200, 0 } typeMap:bin { "01" } - } //Z#593 - /* Pacific/Yap */ :int { 556 } //Z#594 - /* Poland */ :int { 499 } //Z#595 - /* Portugal */ :int { 464 } //Z#596 - /* ROC */ :int { 318 } //Z#597 - /* ROK */ :int { 314 } //Z#598 - /* SST */ :int { 565 } //Z#599 - /* Singapore */ :int { 316 } //Z#600 + } //Z#594 + /* Pacific/Yap */ :int { 556 } //Z#595 + /* Poland */ :int { 499 } //Z#596 + /* Portugal */ :int { 464 } //Z#597 + /* ROC */ :int { 318 } //Z#598 + /* ROK */ :int { 314 } //Z#599 + /* SST */ :int { 565 } //Z#600 + /* Singapore */ :int { 316 } //Z#601 /* SystemV/AST4 */ :table { typeOffsets:intvector { -14400, 0 } - } //Z#601 + } //Z#602 /* SystemV/AST4ADT */ :table { transPre32:intvector { -1, 2096195296, -1, 2111916496, -1, 2127644896, -1, 2143366096 } trans:intvector { -2135872800, -2120151600, -2104423200, -2088702000, -2072973600, -2056647600, -2040919200, -2025198000, -2009469600, -1993748400, -1978020000, -1962298800, -1946570400, -1930849200, -1915120800, -1898794800, -1883671200, -1867345200, -1851616800, -1835895600, -1820167200, -1804446000, -1788717600, -1772996400, -1757268000, -1741546800, -1725818400, -1709492400, -1693764000, -1678042800, -1662314400, -1646593200, -1630864800, -1615143600, -1599415200, -1583694000, -1567965600, -1551639600, -1536516000, -1520190000, -1504461600, -1488740400, -1473012000, -1457290800, -1441562400, -1425841200, -1410112800, -1394391600, -1378663200, -1362337200, -1347213600, -1330887600, -1315159200, -1299438000, -1283709600, -1267988400, -1252260000, -1236538800, -1220810400, -1205089200, -1189360800, -1173034800, -1157306400, -1141585200, -1125856800, -1110135600, -1094407200, -1078686000, -1062957600, -1047236400, -1031508000, -1015182000, -1000058400, -983732400, -968004000, -952282800, -936554400, -920833200, -905104800, -889383600, -873655200, -857934000, -842205600, -825879600, -810151200, -794430000, -778701600, -762980400, -747252000, -731530800, -715802400, -700081200, -684352800, -668026800, -652903200, -636577200, -620848800, -605127600, -589399200, -573678000, -557949600, -542228400, -526500000, -510778800, -495050400, -478724400, -463600800, -447274800, -431546400, -415825200, -400096800, -384375600, -368647200, -352926000, -337197600, -321476400, -305748000, -289422000, -273693600, -257972400, -242244000, -226522800, -210794400, -195073200, -179344800, -163623600, -147895200, -131569200, -116445600, -100119600, -84391200, -68670000, -52941600, -37220400, -21492000, -5770800, 9957600, 25678800, 41407200, 57733200, 73461600, 89182800, 104911200, 120632400, 126684000, 154501200, 162367200, 183531600, 199260000, 215586000 } @@ -2771,10 +2772,10 @@ zoneinfo64:table(nofallback) { finalRule { "SystemV" } finalRaw:int { -14400 } finalYear:int { 1977 } - } //Z#602 + } //Z#603 /* SystemV/CST6 */ :table { typeOffsets:intvector { -21600, 0 } - } //Z#603 + } //Z#604 /* SystemV/CST6CDT */ :table { transPre32:intvector { -1, 2096202496, -1, 2111923696, -1, 2127652096, -1, 2143373296 } trans:intvector { -2135865600, -2120144400, -2104416000, -2088694800, -2072966400, -2056640400, -2040912000, -2025190800, -2009462400, -1993741200, -1978012800, -1962291600, -1946563200, -1930842000, -1915113600, -1898787600, -1883664000, -1867338000, -1851609600, -1835888400, -1820160000, -1804438800, -1788710400, -1772989200, -1757260800, -1741539600, -1725811200, -1709485200, -1693756800, -1678035600, -1662307200, -1646586000, -1630857600, -1615136400, -1599408000, -1583686800, -1567958400, -1551632400, -1536508800, -1520182800, -1504454400, -1488733200, -1473004800, -1457283600, -1441555200, -1425834000, -1410105600, -1394384400, -1378656000, -1362330000, -1347206400, -1330880400, -1315152000, -1299430800, -1283702400, -1267981200, -1252252800, -1236531600, -1220803200, -1205082000, -1189353600, -1173027600, -1157299200, -1141578000, -1125849600, -1110128400, -1094400000, -1078678800, -1062950400, -1047229200, -1031500800, -1015174800, -1000051200, -983725200, -967996800, -952275600, -936547200, -920826000, -905097600, -889376400, -873648000, -857926800, -842198400, -825872400, -810144000, -794422800, -778694400, -762973200, -747244800, -731523600, -715795200, -700074000, -684345600, -668019600, -652896000, -636570000, -620841600, -605120400, -589392000, -573670800, -557942400, -542221200, -526492800, -510771600, -495043200, -478717200, -463593600, -447267600, -431539200, -415818000, -400089600, -384368400, -368640000, -352918800, -337190400, -321469200, -305740800, -289414800, -273686400, -257965200, -242236800, -226515600, -210787200, -195066000, -179337600, -163616400, -147888000, -131562000, -116438400, -100112400, -84384000, -68662800, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 154508400, 162374400, 183538800, 199267200, 215593200 } @@ -2783,10 +2784,10 @@ zoneinfo64:table(nofallback) { finalRule { "SystemV" } finalRaw:int { -21600 } finalYear:int { 1977 } - } //Z#604 + } //Z#605 /* SystemV/EST5 */ :table { typeOffsets:intvector { -18000, 0 } - } //Z#605 + } //Z#606 /* SystemV/EST5EDT */ :table { transPre32:intvector { -1, 2096198896, -1, 2111920096, -1, 2127648496, -1, 2143369696 } trans:intvector { -2135869200, -2120148000, -2104419600, -2088698400, -2072970000, -2056644000, -2040915600, -2025194400, -2009466000, -1993744800, -1978016400, -1962295200, -1946566800, -1930845600, -1915117200, -1898791200, -1883667600, -1867341600, -1851613200, -1835892000, -1820163600, -1804442400, -1788714000, -1772992800, -1757264400, -1741543200, -1725814800, -1709488800, -1693760400, -1678039200, -1662310800, -1646589600, -1630861200, -1615140000, -1599411600, -1583690400, -1567962000, -1551636000, -1536512400, -1520186400, -1504458000, -1488736800, -1473008400, -1457287200, -1441558800, -1425837600, -1410109200, -1394388000, -1378659600, -1362333600, -1347210000, -1330884000, -1315155600, -1299434400, -1283706000, -1267984800, -1252256400, -1236535200, -1220806800, -1205085600, -1189357200, -1173031200, -1157302800, -1141581600, -1125853200, -1110132000, -1094403600, -1078682400, -1062954000, -1047232800, -1031504400, -1015178400, -1000054800, -983728800, -968000400, -952279200, -936550800, -920829600, -905101200, -889380000, -873651600, -857930400, -842202000, -825876000, -810147600, -794426400, -778698000, -762976800, -747248400, -731527200, -715798800, -700077600, -684349200, -668023200, -652899600, -636573600, -620845200, -605124000, -589395600, -573674400, -557946000, -542224800, -526496400, -510775200, -495046800, -478720800, -463597200, -447271200, -431542800, -415821600, -400093200, -384372000, -368643600, -352922400, -337194000, -321472800, -305744400, -289418400, -273690000, -257968800, -242240400, -226519200, -210790800, -195069600, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 126687600, 154504800, 162370800, 183535200, 199263600, 215589600 } @@ -2795,13 +2796,13 @@ zoneinfo64:table(nofallback) { finalRule { "SystemV" } finalRaw:int { -18000 } finalYear:int { 1977 } - } //Z#606 + } //Z#607 /* SystemV/HST10 */ :table { typeOffsets:intvector { -36000, 0 } - } //Z#607 + } //Z#608 /* SystemV/MST7 */ :table { typeOffsets:intvector { -25200, 0 } - } //Z#608 + } //Z#609 /* SystemV/MST7MDT */ :table { transPre32:intvector { -1, 2096206096, -1, 2111927296, -1, 2127655696, -1, 2143376896 } trans:intvector { -2135862000, -2120140800, -2104412400, -2088691200, -2072962800, -2056636800, -2040908400, -2025187200, -2009458800, -1993737600, -1978009200, -1962288000, -1946559600, -1930838400, -1915110000, -1898784000, -1883660400, -1867334400, -1851606000, -1835884800, -1820156400, -1804435200, -1788706800, -1772985600, -1757257200, -1741536000, -1725807600, -1709481600, -1693753200, -1678032000, -1662303600, -1646582400, -1630854000, -1615132800, -1599404400, -1583683200, -1567954800, -1551628800, -1536505200, -1520179200, -1504450800, -1488729600, -1473001200, -1457280000, -1441551600, -1425830400, -1410102000, -1394380800, -1378652400, -1362326400, -1347202800, -1330876800, -1315148400, -1299427200, -1283698800, -1267977600, -1252249200, -1236528000, -1220799600, -1205078400, -1189350000, -1173024000, -1157295600, -1141574400, -1125846000, -1110124800, -1094396400, -1078675200, -1062946800, -1047225600, -1031497200, -1015171200, -1000047600, -983721600, -967993200, -952272000, -936543600, -920822400, -905094000, -889372800, -873644400, -857923200, -842194800, -825868800, -810140400, -794419200, -778690800, -762969600, -747241200, -731520000, -715791600, -700070400, -684342000, -668016000, -652892400, -636566400, -620838000, -605116800, -589388400, -573667200, -557938800, -542217600, -526489200, -510768000, -495039600, -478713600, -463590000, -447264000, -431535600, -415814400, -400086000, -384364800, -368636400, -352915200, -337186800, -321465600, -305737200, -289411200, -273682800, -257961600, -242233200, -226512000, -210783600, -195062400, -179334000, -163612800, -147884400, -131558400, -116434800, -100108800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 126694800, 154512000, 162378000, 183542400, 199270800, 215596800 } @@ -2810,10 +2811,10 @@ zoneinfo64:table(nofallback) { finalRule { "SystemV" } finalRaw:int { -25200 } finalYear:int { 1977 } - } //Z#609 + } //Z#610 /* SystemV/PST8 */ :table { typeOffsets:intvector { -28800, 0 } - } //Z#610 + } //Z#611 /* SystemV/PST8PDT */ :table { transPre32:intvector { -1, 2096209696, -1, 2111930896, -1, 2127659296, -1, 2143380496 } trans:intvector { -2135858400, -2120137200, -2104408800, -2088687600, -2072959200, -2056633200, -2040904800, -2025183600, -2009455200, -1993734000, -1978005600, -1962284400, -1946556000, -1930834800, -1915106400, -1898780400, -1883656800, -1867330800, -1851602400, -1835881200, -1820152800, -1804431600, -1788703200, -1772982000, -1757253600, -1741532400, -1725804000, -1709478000, -1693749600, -1678028400, -1662300000, -1646578800, -1630850400, -1615129200, -1599400800, -1583679600, -1567951200, -1551625200, -1536501600, -1520175600, -1504447200, -1488726000, -1472997600, -1457276400, -1441548000, -1425826800, -1410098400, -1394377200, -1378648800, -1362322800, -1347199200, -1330873200, -1315144800, -1299423600, -1283695200, -1267974000, -1252245600, -1236524400, -1220796000, -1205074800, -1189346400, -1173020400, -1157292000, -1141570800, -1125842400, -1110121200, -1094392800, -1078671600, -1062943200, -1047222000, -1031493600, -1015167600, -1000044000, -983718000, -967989600, -952268400, -936540000, -920818800, -905090400, -889369200, -873640800, -857919600, -842191200, -825865200, -810136800, -794415600, -778687200, -762966000, -747237600, -731516400, -715788000, -700066800, -684338400, -668012400, -652888800, -636562800, -620834400, -605113200, -589384800, -573663600, -557935200, -542214000, -526485600, -510764400, -495036000, -478710000, -463586400, -447260400, -431532000, -415810800, -400082400, -384361200, -368632800, -352911600, -337183200, -321462000, -305733600, -289407600, -273679200, -257958000, -242229600, -226508400, -210780000, -195058800, -179330400, -163609200, -147880800, -131554800, -116431200, -100105200, -84376800, -68655600, -52927200, -37206000, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 154515600, 162381600, 183546000, 199274400, 215600400 } @@ -2822,10 +2823,10 @@ zoneinfo64:table(nofallback) { finalRule { "SystemV" } finalRaw:int { -28800 } finalYear:int { 1977 } - } //Z#611 + } //Z#612 /* SystemV/YST9 */ :table { typeOffsets:intvector { -32400, 0 } - } //Z#612 + } //Z#613 /* SystemV/YST9YDT */ :table { transPre32:intvector { -1, 2096213296, -1, 2111934496, -1, 2127662896, -1, 2143384096 } trans:intvector { -2135854800, -2120133600, -2104405200, -2088684000, -2072955600, -2056629600, -2040901200, -2025180000, -2009451600, -1993730400, -1978002000, -1962280800, -1946552400, -1930831200, -1915102800, -1898776800, -1883653200, -1867327200, -1851598800, -1835877600, -1820149200, -1804428000, -1788699600, -1772978400, -1757250000, -1741528800, -1725800400, -1709474400, -1693746000, -1678024800, -1662296400, -1646575200, -1630846800, -1615125600, -1599397200, -1583676000, -1567947600, -1551621600, -1536498000, -1520172000, -1504443600, -1488722400, -1472994000, -1457272800, -1441544400, -1425823200, -1410094800, -1394373600, -1378645200, -1362319200, -1347195600, -1330869600, -1315141200, -1299420000, -1283691600, -1267970400, -1252242000, -1236520800, -1220792400, -1205071200, -1189342800, -1173016800, -1157288400, -1141567200, -1125838800, -1110117600, -1094389200, -1078668000, -1062939600, -1047218400, -1031490000, -1015164000, -1000040400, -983714400, -967986000, -952264800, -936536400, -920815200, -905086800, -889365600, -873637200, -857916000, -842187600, -825861600, -810133200, -794412000, -778683600, -762962400, -747234000, -731512800, -715784400, -700063200, -684334800, -668008800, -652885200, -636559200, -620830800, -605109600, -589381200, -573660000, -557931600, -542210400, -526482000, -510760800, -495032400, -478706400, -463582800, -447256800, -431528400, -415807200, -400078800, -384357600, -368629200, -352908000, -337179600, -321458400, -305730000, -289404000, -273675600, -257954400, -242226000, -226504800, -210776400, -195055200, -179326800, -163605600, -147877200, -131551200, -116427600, -100101600, -84373200, -68652000, -52923600, -37202400, -21474000, -5752800, 9975600, 25696800, 41425200, 57751200, 73479600, 89200800, 104929200, 120650400, 126702000, 154519200, 162385200, 183549600, 199278000, 215604000 } @@ -2834,26 +2835,26 @@ zoneinfo64:table(nofallback) { finalRule { "SystemV" } finalRaw:int { -32400 } finalYear:int { 1977 } - } //Z#613 - /* Turkey */ :int { 459 } //Z#614 - /* UCT */ :int { 436 } //Z#615 - /* US/Alaska */ :int { 60 } //Z#616 - /* US/Aleutian */ :int { 59 } //Z#617 - /* US/Arizona */ :int { 185 } //Z#618 - /* US/Central */ :int { 98 } //Z#619 - /* US/East-Indiana */ :int { 131 } //Z#620 - /* US/Eastern */ :int { 173 } //Z#621 - /* US/Hawaii */ :int { 567 } //Z#622 - /* US/Indiana-Starke */ :int { 132 } //Z#623 - /* US/Michigan */ :int { 110 } //Z#624 - /* US/Mountain */ :int { 109 } //Z#625 - /* US/Pacific */ :int { 151 } //Z#626 - /* US/Pacific-New */ :int { 151 } //Z#627 - /* US/Samoa */ :int { 579 } //Z#628 - /* UTC */ :int { 436 } //Z#629 - /* Universal */ :int { 436 } //Z#630 - /* VST */ :int { 272 } //Z#631 - /* W-SU */ :int { 473 } //Z#632 + } //Z#614 + /* Turkey */ :int { 459 } //Z#615 + /* UCT */ :int { 436 } //Z#616 + /* US/Alaska */ :int { 60 } //Z#617 + /* US/Aleutian */ :int { 59 } //Z#618 + /* US/Arizona */ :int { 185 } //Z#619 + /* US/Central */ :int { 98 } //Z#620 + /* US/East-Indiana */ :int { 131 } //Z#621 + /* US/Eastern */ :int { 173 } //Z#622 + /* US/Hawaii */ :int { 567 } //Z#623 + /* US/Indiana-Starke */ :int { 132 } //Z#624 + /* US/Michigan */ :int { 110 } //Z#625 + /* US/Mountain */ :int { 109 } //Z#626 + /* US/Pacific */ :int { 151 } //Z#627 + /* US/Pacific-New */ :int { 151 } //Z#628 + /* US/Samoa */ :int { 580 } //Z#629 + /* UTC */ :int { 436 } //Z#630 + /* Universal */ :int { 436 } //Z#631 + /* VST */ :int { 272 } //Z#632 + /* W-SU */ :int { 473 } //Z#633 /* WET */ :table { trans:intvector { 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400, 828234000, 846378000 } typeOffsets:intvector { 0, 0, 0, 3600 } @@ -2861,8 +2862,8 @@ zoneinfo64:table(nofallback) { finalRule { "EU" } finalRaw:int { 0 } finalYear:int { 1997 } - } //Z#633 - /* Zulu */ :int { 436 } //Z#634 + } //Z#634 + /* Zulu */ :int { 436 } //Z#635 } Names { "ACT","AET","AGT","ART","AST","Africa/Abidjan","Africa/Accra" // 6 @@ -3033,24 +3034,24 @@ zoneinfo64:table(nofallback) { ,"Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo" // 560 ,"Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos" // 563 ,"Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam" // 566 - ,"Pacific/Honolulu","Pacific/Johnston","Pacific/Kiritimati" // 569 - ,"Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro" // 572 - ,"Pacific/Marquesas","Pacific/Midway","Pacific/Nauru" // 575 - ,"Pacific/Niue","Pacific/Norfolk","Pacific/Noumea" // 578 - ,"Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn" // 581 - ,"Pacific/Pohnpei","Pacific/Ponape","Pacific/Port_Moresby" // 584 - ,"Pacific/Rarotonga","Pacific/Saipan","Pacific/Samoa" // 587 - ,"Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu" // 590 - ,"Pacific/Truk","Pacific/Wake","Pacific/Wallis","Pacific/Yap" // 594 - ,"Poland","Portugal","ROC","ROK","SST","Singapore" // 600 - ,"SystemV/AST4","SystemV/AST4ADT","SystemV/CST6","SystemV/CST6CDT" // 604 - ,"SystemV/EST5","SystemV/EST5EDT","SystemV/HST10","SystemV/MST7" // 608 - ,"SystemV/MST7MDT","SystemV/PST8","SystemV/PST8PDT" // 611 - ,"SystemV/YST9","SystemV/YST9YDT","Turkey","UCT","US/Alaska" // 616 - ,"US/Aleutian","US/Arizona","US/Central","US/East-Indiana" // 620 - ,"US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan" // 624 - ,"US/Mountain","US/Pacific","US/Pacific-New","US/Samoa" // 628 - ,"UTC","Universal","VST","W-SU","WET","Zulu" // 634 + ,"Pacific/Honolulu","Pacific/Johnston","Pacific/Kanton" // 569 + ,"Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein" // 572 + ,"Pacific/Majuro","Pacific/Marquesas","Pacific/Midway" // 575 + ,"Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea" // 579 + ,"Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn" // 582 + ,"Pacific/Pohnpei","Pacific/Ponape","Pacific/Port_Moresby" // 585 + ,"Pacific/Rarotonga","Pacific/Saipan","Pacific/Samoa" // 588 + ,"Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu" // 591 + ,"Pacific/Truk","Pacific/Wake","Pacific/Wallis","Pacific/Yap" // 595 + ,"Poland","Portugal","ROC","ROK","SST","Singapore" // 601 + ,"SystemV/AST4","SystemV/AST4ADT","SystemV/CST6","SystemV/CST6CDT" // 605 + ,"SystemV/EST5","SystemV/EST5EDT","SystemV/HST10","SystemV/MST7" // 609 + ,"SystemV/MST7MDT","SystemV/PST8","SystemV/PST8PDT" // 612 + ,"SystemV/YST9","SystemV/YST9YDT","Turkey","UCT","US/Alaska" // 617 + ,"US/Aleutian","US/Arizona","US/Central","US/East-Indiana" // 621 + ,"US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan" // 625 + ,"US/Mountain","US/Pacific","US/Pacific-New","US/Samoa" // 629 + ,"UTC","Universal","VST","W-SU","WET","Zulu" // 635 } Rules { AN:intvector { @@ -3114,7 +3115,7 @@ zoneinfo64:table(nofallback) { 8, -30, -1, 7200, 1, 3, 1, -1, 7200, 1, 3600 } //_#19 Palestine:intvector { - 2, 24, -7, 0, 0, 9, 24, -7, 3600, 0, 3600 + 2, 24, -7, 0, 0, 9, -31, -6, 3600, 0, 3600 } //_#20 Para:intvector { 9, 1, -1, 0, 0, 2, 22, -1, 0, 0, 3600 @@ -3708,71 +3709,72 @@ zoneinfo64:table(nofallback) { "GU", //Z#566 Pacific/Guam "US", //Z#567 Pacific/Honolulu "UM", //Z#568 Pacific/Johnston - "KI", //Z#569 Pacific/Kiritimati - "FM", //Z#570 Pacific/Kosrae - "MH", //Z#571 Pacific/Kwajalein - "MH", //Z#572 Pacific/Majuro - "PF", //Z#573 Pacific/Marquesas - "UM", //Z#574 Pacific/Midway - "NR", //Z#575 Pacific/Nauru - "NU", //Z#576 Pacific/Niue - "NF", //Z#577 Pacific/Norfolk - "NC", //Z#578 Pacific/Noumea - "AS", //Z#579 Pacific/Pago_Pago - "PW", //Z#580 Pacific/Palau - "PN", //Z#581 Pacific/Pitcairn - "FM", //Z#582 Pacific/Pohnpei - "FM", //Z#583 Pacific/Ponape - "PG", //Z#584 Pacific/Port_Moresby - "CK", //Z#585 Pacific/Rarotonga - "MP", //Z#586 Pacific/Saipan - "AS", //Z#587 Pacific/Samoa - "PF", //Z#588 Pacific/Tahiti - "KI", //Z#589 Pacific/Tarawa - "TO", //Z#590 Pacific/Tongatapu - "FM", //Z#591 Pacific/Truk - "UM", //Z#592 Pacific/Wake - "WF", //Z#593 Pacific/Wallis - "FM", //Z#594 Pacific/Yap - "PL", //Z#595 Poland - "PT", //Z#596 Portugal - "TW", //Z#597 ROC - "KR", //Z#598 ROK - "SB", //Z#599 SST - "SG", //Z#600 Singapore - "001",//Z#601 SystemV/AST4 - "001",//Z#602 SystemV/AST4ADT - "001",//Z#603 SystemV/CST6 - "001",//Z#604 SystemV/CST6CDT - "001",//Z#605 SystemV/EST5 - "001",//Z#606 SystemV/EST5EDT - "001",//Z#607 SystemV/HST10 - "001",//Z#608 SystemV/MST7 - "001",//Z#609 SystemV/MST7MDT - "001",//Z#610 SystemV/PST8 - "001",//Z#611 SystemV/PST8PDT - "001",//Z#612 SystemV/YST9 - "001",//Z#613 SystemV/YST9YDT - "TR", //Z#614 Turkey - "001",//Z#615 UCT - "US", //Z#616 US/Alaska - "US", //Z#617 US/Aleutian - "US", //Z#618 US/Arizona - "US", //Z#619 US/Central - "US", //Z#620 US/East-Indiana - "US", //Z#621 US/Eastern - "US", //Z#622 US/Hawaii - "US", //Z#623 US/Indiana-Starke - "US", //Z#624 US/Michigan - "US", //Z#625 US/Mountain - "US", //Z#626 US/Pacific - "US", //Z#627 US/Pacific-New - "AS", //Z#628 US/Samoa - "001",//Z#629 UTC - "001",//Z#630 Universal - "VN", //Z#631 VST - "RU", //Z#632 W-SU - "001",//Z#633 WET - "001",//Z#634 Zulu + "KI", //Z#569 Pacific/Kanton + "KI", //Z#570 Pacific/Kiritimati + "FM", //Z#571 Pacific/Kosrae + "MH", //Z#572 Pacific/Kwajalein + "MH", //Z#573 Pacific/Majuro + "PF", //Z#574 Pacific/Marquesas + "UM", //Z#575 Pacific/Midway + "NR", //Z#576 Pacific/Nauru + "NU", //Z#577 Pacific/Niue + "NF", //Z#578 Pacific/Norfolk + "NC", //Z#579 Pacific/Noumea + "AS", //Z#580 Pacific/Pago_Pago + "PW", //Z#581 Pacific/Palau + "PN", //Z#582 Pacific/Pitcairn + "FM", //Z#583 Pacific/Pohnpei + "FM", //Z#584 Pacific/Ponape + "PG", //Z#585 Pacific/Port_Moresby + "CK", //Z#586 Pacific/Rarotonga + "MP", //Z#587 Pacific/Saipan + "AS", //Z#588 Pacific/Samoa + "PF", //Z#589 Pacific/Tahiti + "KI", //Z#590 Pacific/Tarawa + "TO", //Z#591 Pacific/Tongatapu + "FM", //Z#592 Pacific/Truk + "UM", //Z#593 Pacific/Wake + "WF", //Z#594 Pacific/Wallis + "FM", //Z#595 Pacific/Yap + "PL", //Z#596 Poland + "PT", //Z#597 Portugal + "TW", //Z#598 ROC + "KR", //Z#599 ROK + "SB", //Z#600 SST + "SG", //Z#601 Singapore + "001",//Z#602 SystemV/AST4 + "001",//Z#603 SystemV/AST4ADT + "001",//Z#604 SystemV/CST6 + "001",//Z#605 SystemV/CST6CDT + "001",//Z#606 SystemV/EST5 + "001",//Z#607 SystemV/EST5EDT + "001",//Z#608 SystemV/HST10 + "001",//Z#609 SystemV/MST7 + "001",//Z#610 SystemV/MST7MDT + "001",//Z#611 SystemV/PST8 + "001",//Z#612 SystemV/PST8PDT + "001",//Z#613 SystemV/YST9 + "001",//Z#614 SystemV/YST9YDT + "TR", //Z#615 Turkey + "001",//Z#616 UCT + "US", //Z#617 US/Alaska + "US", //Z#618 US/Aleutian + "US", //Z#619 US/Arizona + "US", //Z#620 US/Central + "US", //Z#621 US/East-Indiana + "US", //Z#622 US/Eastern + "US", //Z#623 US/Hawaii + "US", //Z#624 US/Indiana-Starke + "US", //Z#625 US/Michigan + "US", //Z#626 US/Mountain + "US", //Z#627 US/Pacific + "US", //Z#628 US/Pacific-New + "AS", //Z#629 US/Samoa + "001",//Z#630 UTC + "001",//Z#631 Universal + "VN", //Z#632 VST + "RU", //Z#633 W-SU + "001",//Z#634 WET + "001",//Z#635 Zulu } } diff --git a/intl/unicharutil/util/nsBidiUtils.cpp b/intl/unicharutil/util/nsBidiUtils.cpp index 8c186ac685..db7ed41fd6 100644 --- a/intl/unicharutil/util/nsBidiUtils.cpp +++ b/intl/unicharutil/util/nsBidiUtils.cpp @@ -5,6 +5,10 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsBidiUtils.h" +namespace mozilla { +static const uint32_t kMinRTLChar = 0x0590; +} // namespace mozilla; + #define ARABIC_TO_HINDI_DIGIT_INCREMENT (START_HINDI_DIGITS - START_ARABIC_DIGITS) #define PERSIAN_TO_HINDI_DIGIT_INCREMENT (START_HINDI_DIGITS - START_FARSI_DIGITS) #define ARABIC_TO_PERSIAN_DIGIT_INCREMENT (START_FARSI_DIGITS - START_ARABIC_DIGITS) @@ -82,16 +86,18 @@ nsresult HandleNumbers(char16_t* aBuffer, uint32_t aSize, uint32_t aNumFlag) return NS_OK; } -bool HasRTLChars(const nsAString& aString) +bool HasRTLChars(const char16_t* aText, uint32_t aLength) { -// This is used to determine whether to enable bidi if a string has -// right-to-left characters. To simplify things, anything that could be a -// surrogate or RTL presentation form is covered just by testing >= 0xD800). -// It's fine to enable bidi in rare cases where it actually isn't needed. - int32_t length = aString.Length(); - for (int32_t i = 0; i < length; i++) { - char16_t ch = aString.CharAt(i); - if (ch >= 0xD800 || IS_IN_BMP_RTL_BLOCK(ch)) { + // This is used to determine whether a string has right-to-left characters + // that mean it will require bidi processing. + const char16_t* cp = aText; + const char16_t* end = cp + aLength; + while (cp < end) { + char16_t ch = *cp++; + if (ch < mozilla::kMinRTLChar) { + continue; + } + if (UTF16_CODE_UNIT_IS_BIDI(ch) || IsBidiControlRTL(ch)) { return true; } } diff --git a/intl/unicharutil/util/nsBidiUtils.h b/intl/unicharutil/util/nsBidiUtils.h index d30fef1bf0..b4476e6e98 100644 --- a/intl/unicharutil/util/nsBidiUtils.h +++ b/intl/unicharutil/util/nsBidiUtils.h @@ -147,10 +147,17 @@ typedef enum nsCharType nsCharType; } /** - * Give an nsString. + * Give a 16-bit (UTF-16) text buffer and length * @return true if the string contains right-to-left characters */ - bool HasRTLChars(const nsAString& aString); + bool HasRTLChars(const char16_t* aText, uint32_t aLength); + + /** + * Convenience function to call the above on an nsAString. + */ + inline bool HasRTLChars(const nsAString& aString) { + return HasRTLChars(aString.BeginReading(), aString.Length()); + } // These values are shared with Preferences dialog // ------------------ @@ -256,6 +263,17 @@ typedef enum nsCharType nsCharType; ((0xfe70 <= (c)) && ((c) <= 0xfefc))) #define IS_IN_SMP_RTL_BLOCK(c) (((0x10800 <= (c)) && ((c) <= 0x10fff)) || \ ((0x1e800 <= (c)) && ((c) <= 0x1eFFF))) +// Due to the supplementary-plane RTL blocks being identifiable from the +// high surrogate without examining the low surrogate, it is correct to +// use this by-code-unit check on potentially astral text without doing +// the math to decode surrogate pairs into code points. However, unpaired +// high surrogates that are RTL high surrogates then count as RTL even +// though, if replaced by the REPLACEMENT CHARACTER, it would not be +// RTL. +#define UTF16_CODE_UNIT_IS_BIDI(c) ((IS_IN_BMP_RTL_BLOCK(c)) || \ + (IS_RTL_PRESENTATION_FORM(c)) || \ + (c) == 0xD802 || (c) == 0xD803 || \ + (c) == 0xD83A || (c) == 0xD83B) #define UCS2_CHAR_IS_BIDI(c) ((IS_IN_BMP_RTL_BLOCK(c)) || \ (IS_RTL_PRESENTATION_FORM(c)) || \ (c) == 0xD802 || (c) == 0xD803) diff --git a/js/xpconnect/wrappers/XrayWrapper.cpp b/js/xpconnect/wrappers/XrayWrapper.cpp index e63a1d6d4d..cd25761e1d 100644 --- a/js/xpconnect/wrappers/XrayWrapper.cpp +++ b/js/xpconnect/wrappers/XrayWrapper.cpp @@ -891,6 +891,9 @@ JSXrayTraits::construct(JSContext* cx, HandleObject wrapper, { JSXrayTraits& self = JSXrayTraits::singleton; JS::RootedObject holder(cx, self.ensureHolder(cx, wrapper)); + if (!holder) { + return false; + } if (self.getProtoKey(holder) == JSProto_Function) { JSProtoKey standardConstructor = constructorFor(holder); if (standardConstructor == JSProto_Null) diff --git a/js/xpconnect/wrappers/XrayWrapper.h b/js/xpconnect/wrappers/XrayWrapper.h index 503d232c95..d3a8f0e05d 100644 --- a/js/xpconnect/wrappers/XrayWrapper.h +++ b/js/xpconnect/wrappers/XrayWrapper.h @@ -258,6 +258,9 @@ public: { JSXrayTraits& self = JSXrayTraits::singleton; JS::RootedObject holder(cx, self.ensureHolder(cx, wrapper)); + if (!holder) { + return false; + } if (self.getProtoKey(holder) == JSProto_Function) return baseInstance.call(cx, wrapper, args); @@ -274,6 +277,9 @@ public: JS::MutableHandleObject protop) { JS::RootedObject holder(cx, ensureHolder(cx, wrapper)); + if (!holder) { + return false; + } JSProtoKey key = getProtoKey(holder); if (isPrototype(holder)) { JSProtoKey protoKey = js::InheritanceProtoKeyForStandardClass(key); diff --git a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp index 555c820cbf..27146ce362 100644 --- a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp +++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp @@ -378,8 +378,9 @@ PeerConnectionImpl::~PeerConnectionImpl() destroy_timecard(mTimeCard); mTimeCard = nullptr; } - // This aborts if not on main thread (in Debug builds) - PC_AUTO_ENTER_API_CALL_NO_CHECK(); + + MOZ_ASSERT(NS_IsMainThread()); + #if !defined(MOZILLA_EXTERNAL_LINKAGE) if (mPrivateWindow) { auto * log = RLogConnector::GetInstance(); @@ -3055,7 +3056,7 @@ PeerConnectionImpl::CloseInt() void PeerConnectionImpl::ShutdownMedia() { - PC_AUTO_ENTER_API_CALL_NO_CHECK(); + MOZ_ASSERT(NS_IsMainThread()); if (!mMedia) return; diff --git a/netwerk/dns/effective_tld_names.dat b/netwerk/dns/effective_tld_names.dat index 5cc95b9000..dd1c7d19cc 100644 --- a/netwerk/dns/effective_tld_names.dat +++ b/netwerk/dns/effective_tld_names.dat @@ -7132,7 +7132,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-10-08T15:12:46Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-12-04T15:13:28Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7197,9 +7197,6 @@ aeg // aetna : 2015-05-21 Aetna Life Insurance Company aetna -// afamilycompany : 2015-07-23 Johnson Shareholdings, Inc. -afamilycompany - // afl : 2014-10-02 Australian Football League afl @@ -7647,7 +7644,7 @@ cars // casa : 2013-11-21 Registry Services, LLC casa -// case : 2015-09-03 CNH Industrial N.V. +// case : 2015-09-03 Helium TLDs Ltd case // cash : 2014-03-06 Binky Moon, LLC @@ -8016,9 +8013,6 @@ dtv // dubai : 2015-01-01 Dubai Smart Government Department dubai -// duck : 2015-07-23 Johnson Shareholdings, Inc. -duck - // dunlop : 2015-07-02 The Goodyear Tire & Rubber Company dunlop @@ -8346,9 +8340,6 @@ gives // giving : 2014-11-13 Giving Limited giving -// glade : 2015-07-23 Johnson Shareholdings, Inc. -glade - // glass : 2013-11-07 Binky Moon, LLC glass @@ -9216,9 +9207,6 @@ obi // observer : 2015-04-30 Dog Beach, LLC observer -// off : 2015-07-23 Johnson Shareholdings, Inc. -off - // office : 2015-03-12 Microsoft Corporation office @@ -9462,9 +9450,6 @@ racing // radio : 2016-07-21 European Broadcasting Union (EBU) radio -// raid : 2015-07-23 Johnson Shareholdings, Inc. -raid - // read : 2014-12-18 Amazon Registry Services, Inc. read @@ -9669,9 +9654,6 @@ schwarz // science : 2014-09-11 dot Science Limited science -// scjohnson : 2015-07-23 Johnson Shareholdings, Inc. -scjohnson - // scot : 2014-01-23 Dot Scot Registry Limited scot @@ -10317,9 +10299,6 @@ xin // xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED OY 在线 -// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd. -大众汽车 - // xn--3pxu8k : 2015-01-15 VeriSign Sarl 点看 @@ -10785,10 +10764,6 @@ s3-website.eu-west-2.amazonaws.com s3-website.eu-west-3.amazonaws.com s3-website.us-east-2.amazonaws.com -// Amsterdam Wireless: https://www.amsterdamwireless.nl/ -// Submitted by Imre Jonk -amsw.nl - // Amune : https://amune.org/ // Submitted by Team Amune t3l3p0rt.net @@ -10880,6 +10855,18 @@ rs.ba app.banzaicloud.io *.backyards.banzaicloud.io +// BASE, Inc. : https://binc.jp +// Submitted by Yuya NAGASAWA +base.ec +official.ec +buyshop.jp +fashionstore.jp +handcrafted.jp +kawaiishop.jp +supersale.jp +theshop.jp +shopselect.net +base.shop // BetaInABox // Submitted by Adrian @@ -10982,7 +10969,6 @@ za.com // No longer operated by CentralNic, these entries should be adopted and/or removed by current operators // Submitted by Gavin Brown ar.com -gb.com hu.com kr.com no.com @@ -11036,10 +11022,6 @@ cx.ua discourse.group discourse.team -// ClearVox : http://www.clearvox.nl/ -// Submitted by Leon Rowland -virtueeldomein.nl - // Clever Cloud : https://www.clever-cloud.com/ // Submitted by Quentin Adam cleverapps.io @@ -11642,12 +11624,6 @@ blogsite.xyz // Submitted by Dominik Menke dynv6.net -// Ellucian : https://ellucian.com -// Submitted by Josue Colon -elluciancrmadvance.com -elluciancrmadvise.com -elluciancrmrecruit.com - // E4YOU spol. s.r.o. : https://e4you.cz/ // Submitted by Vladimir Dudr e4.cz @@ -11676,6 +11652,10 @@ tuleap-partners.com onred.one staging.onred.one +// encoway GmbH : https://www.encoway.de +// Submitted by Marcel Daus +eu.encoway.cloud + // EU.org https://eu.org/ // Submitted by Pierre Beyssac eu.org @@ -11915,6 +11895,11 @@ fireweb.app // Submitted by Louis Chemineau flap.id +// FlashDrive : https://flashdrive.io +// Submitted by Eric Chan +onflashdrive.app +fldrv.com + // fly.io: https://fly.io // Submitted by Kurt Mackey fly.dev @@ -12200,6 +12185,7 @@ herokussl.com // Hibernating Rhinos // Submitted by Oren Eini +ravendb.cloud myravendb.com ravendb.community ravendb.me @@ -12214,6 +12200,11 @@ homesklep.pl // Submitted by SECaaS Team secaas.hk +// Hoplix : https://www.hoplix.com +// Submitted by Danilo De Franco +hoplix.shop + + // HOSTBIP REGISTRY : https://www.hostbip.com/ // Submitted by Atanunu Igbunuroghene orx.biz @@ -12459,6 +12450,10 @@ uni5.net // Submitted by Roy Keene knightpoint.systems +// KoobinEvent, SL: https://www.koobin.com +// Submitted by Iván Oliva +koobin.events + // KUROKU LTD : https://kuroku.ltd/ // Submitted by DisposaBoy oya.to @@ -12727,6 +12722,10 @@ that.win from.work to.work +// Net at Work Gmbh : https://www.netatwork.de +// Submitted by Jan Jaeschke +cloud.nospamproxy.com + // Netlify : https://www.netlify.com // Submitted by Jessica Parsons netlify.app @@ -12886,11 +12885,6 @@ zapto.org // Submitted by Konstantin Nosov stage.nodeart.io -// Nodum B.V. : https://nodum.io/ -// Submitted by Wietse Wind -nodum.co -nodum.io - // Nucleos Inc. : https://nucleos.com // Submitted by Piotr Zduniak pcloud.host @@ -13491,7 +13485,8 @@ sopot.pl // Teckids e.V. : https://www.teckids.org // Submitted by Dominik George -edugit.org +edugit.io +s3.teckids.org // Telebit : https://telebit.cloud // Submitted by AJ ONeal @@ -13589,6 +13584,10 @@ syno-ds.de synology-diskstation.de synology-ds.de +// Typeform : https://www.typeform.com +// Submitted by Sergi Ferriz +pro.typeform.com + // Uberspace : https://uberspace.de // Submitted by Moritz Werner uber.space diff --git a/toolkit/xre/nsNativeAppSupportCocoa.mm b/toolkit/xre/nsNativeAppSupportCocoa.mm index 6da6790c15..bc2c535219 100644 --- a/toolkit/xre/nsNativeAppSupportCocoa.mm +++ b/toolkit/xre/nsNativeAppSupportCocoa.mm @@ -136,7 +136,7 @@ nsNativeAppSupportCocoa::ReOpen() nsCOMPtr widget = nullptr; baseWindow->GetMainWidget(getter_AddRefs(widget)); - if (!widget) { + if (!widget || !widget->IsVisible()) { windowList->HasMoreElements(&more); continue; } diff --git a/xpfe/appshell/nsAppShellService.cpp b/xpfe/appshell/nsAppShellService.cpp index 868bd78123..7094bfcdd6 100644 --- a/xpfe/appshell/nsAppShellService.cpp +++ b/xpfe/appshell/nsAppShellService.cpp @@ -109,6 +109,13 @@ nsAppShellService::EnsurePrivateHiddenWindow() nsresult nsAppShellService::CreateHiddenWindowHelper(bool aIsPrivate) { + if (!aIsPrivate && mHiddenWindow) { + return NS_OK; + } + if (aIsPrivate && mHiddenPrivateWindow) { + return NS_OK; + } + nsresult rv; int32_t initialHeight = 100, initialWidth = 100;