bug 1230490 - Allow 16 bit character codes 1/2; r=evilpie

This commit is contained in:
Morgan Phillips 2016-08-03 12:11:38 -07:00
Родитель 1b5c331814
Коммит 6482267db5
5 изменённых файлов: 63 добавлений и 68 удалений

Просмотреть файл

@ -9,12 +9,12 @@
*/
// CHECK#1
if (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== 0) {
$ERROR('#1.1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === 0. Actual: ' + (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")));
if (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== 0) {
$ERROR('#1.1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === 0. Actual: ' + (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")));
} else {
if (1/Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number.POSITIVE_INFINITY) {
$ERROR('#1.2: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === +0. Actual: -0');
}
if (1/Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number.POSITIVE_INFINITY) {
$ERROR('#1.2: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === +0. Actual: -0');
}
}
// CHECK#2
@ -23,7 +23,7 @@ if (Number(" ") !== 0) {
} else {
if (1/Number(" ") !== Number.POSITIVE_INFINITY) {
$ERROR('#2.2: Number(" ") === +0. Actual: -0');
}
}
}
// CHECK#3
@ -32,7 +32,7 @@ if (Number("\t") !== 0) {
} else {
if (1/Number("\t") !== Number.POSITIVE_INFINITY) {
$ERROR('#3.2: Number("\\t") === +0. Actual: -0');
}
}
}
// CHECK#4
@ -41,7 +41,7 @@ if (Number("\r") !== 0) {
} else {
if (1/Number("\r") !== Number.POSITIVE_INFINITY) {
$ERROR('#4.2: Number("\\r") === +0. Actual: -0');
}
}
}
// CHECK#5
@ -50,7 +50,7 @@ if (Number("\n") !== 0) {
} else {
if (1/Number("\n") !== Number.POSITIVE_INFINITY) {
$ERROR('#5.2: Number("\\n") === +0. Actual: -0');
}
}
}
// CHECK#6
@ -59,7 +59,7 @@ if (Number("\f") !== 0) {
} else {
if (1/Number("\f") !== Number.POSITIVE_INFINITY) {
$ERROR('#6.2: Number("\\f") === +0. Actual: -0');
}
}
}
// CHECK#7
@ -68,7 +68,7 @@ if (Number("\u0009") !== 0) {
} else {
if (1/Number("\u0009") !== Number.POSITIVE_INFINITY) {
$ERROR('#7.2: Number("\\u0009") === +0. Actual: -0');
}
}
}
// CHECK#8
@ -77,7 +77,7 @@ if (Number("\u000A") !== 0) {
} else {
if (1/Number("\u000A") !== Number.POSITIVE_INFINITY) {
$ERROR('#8.2: Number("\\u000A") === +0. Actual: -0');
}
}
}
// CHECK#9
@ -86,7 +86,7 @@ if (Number("\u000B") !== 0) {
} else {
if (1/Number("\u000B") !== Number.POSITIVE_INFINITY) {
$ERROR('#9.1.2: Number("\\u000B") === +0. Actual: -0');
}
}
}
// CHECK#10
@ -95,7 +95,7 @@ if (Number("\u000C") !== 0) {
} else {
if (1/Number("\u000C") !== Number.POSITIVE_INFINITY) {
$ERROR('#10.2: Number("\\u000C") === +0. Actual: -0');
}
}
}
// CHECK#11
@ -104,7 +104,7 @@ if (Number("\u000D") !== 0) {
} else {
if (1/Number("\u000D") !== Number.POSITIVE_INFINITY) {
$ERROR('#11.2: Number("\\u000D") === +0. Actual: -0');
}
}
}
// CHECK#12
@ -113,7 +113,7 @@ if (Number("\u00A0") !== 0) {
} else {
if (1/Number("\u00A0") !== Number.POSITIVE_INFINITY) {
$ERROR('#12.2: Number("\\u00A0") === +0. Actual: -0');
}
}
}
// CHECK#13
@ -122,7 +122,7 @@ if (Number("\u0020") !== 0) {
} else {
if (1/Number("\u0020") !== Number.POSITIVE_INFINITY) {
$ERROR('#13.2: Number("\\u0020") === +0. Actual: -0');
}
}
}
// CHECK#14
@ -131,7 +131,7 @@ if (Number("\u2028") !== 0) {
} else {
if (1/Number("\u2028") !== Number.POSITIVE_INFINITY) {
$ERROR('#14.2: Number("\\u2028") === +0. Actual: -0');
}
}
}
// CHECK#15
@ -140,7 +140,7 @@ if (Number("\u2029") !== 0) {
} else {
if (1/Number("\u2029") !== Number.POSITIVE_INFINITY) {
$ERROR('#15.2: Number("\\u2029") === +0. Actual: -0');
}
}
}
// CHECK#16
@ -149,16 +149,12 @@ if (Number("\u1680") !== 0) {
} else {
if (1/Number("\u1680") !== Number.POSITIVE_INFINITY) {
$ERROR('#16.2: Number("\\u1680") === +0. Actual: -0');
}
}
}
// CHECK#17
if (Number("\u180E") !== 0) {
$ERROR('#17.1: Number("\\u180E") === 0. Actual: ' + (Number("\u180E")));
} else {
if (1/Number("\u180E") !== Number.POSITIVE_INFINITY) {
$ERROR('#17.2: Number("\\u180E") === +0. Actual: -0');
}
if (!Number.isNaN(Number("\u180E"))) {
$ERROR('#17.1: !Number.isNaN(Number("\\u180E")). Actual: ' + (Number("\u180E")));
}
// CHECK#18
@ -167,7 +163,7 @@ if (Number("\u2000") !== 0) {
} else {
if (1/Number("\u2000") !== Number.POSITIVE_INFINITY) {
$ERROR('#18.2: Number("\\u2000") === +0. Actual: -0');
}
}
}
// CHECK#19
@ -176,7 +172,7 @@ if (Number("\u2001") !== 0) {
} else {
if (1/Number("\u2001") !== Number.POSITIVE_INFINITY) {
$ERROR('#19.2: Number("\\u2001") === +0. Actual: -0');
}
}
}
// CHECK#20
@ -185,7 +181,7 @@ if (Number("\u2002") !== 0) {
} else {
if (1/Number("\u2002") !== Number.POSITIVE_INFINITY) {
$ERROR('#20.2: Number("\\u2002") === +0. Actual: -0');
}
}
}
// CHECK#21
@ -194,7 +190,7 @@ if (Number("\u2003") !== 0) {
} else {
if (1/Number("\u2003") !== Number.POSITIVE_INFINITY) {
$ERROR('#21.2: Number("\\u2003") === +0. Actual: -0');
}
}
}
// CHECK#22
@ -203,7 +199,7 @@ if (Number("\u2004") !== 0) {
} else {
if (1/Number("\u2004") !== Number.POSITIVE_INFINITY) {
$ERROR('#22.2: Number("\\u2004") === +0. Actual: -0');
}
}
}
// CHECK#23
@ -212,7 +208,7 @@ if (Number("\u2005") !== 0) {
} else {
if (1/Number("\u2005") !== Number.POSITIVE_INFINITY) {
$ERROR('#23.2: Number("\\u2005") === +0. Actual: -0');
}
}
}
// CHECK#24
@ -221,7 +217,7 @@ if (Number("\u2006") !== 0) {
} else {
if (1/Number("\u2006") !== Number.POSITIVE_INFINITY) {
$ERROR('#24.2: Number("\\u2006") === +0. Actual: -0');
}
}
}
// CHECK#25
@ -230,7 +226,7 @@ if (Number("\u2007") !== 0) {
} else {
if (1/Number("\u2007") !== Number.POSITIVE_INFINITY) {
$ERROR('#25.2: Number("\\u2007") === +0. Actual: -0');
}
}
}
// CHECK#26
@ -239,7 +235,7 @@ if (Number("\u2008") !== 0) {
} else {
if (1/Number("\u2008") !== Number.POSITIVE_INFINITY) {
$ERROR('#26.2: Number("\\u2008") === +0. Actual: -0');
}
}
}
// CHECK#27
@ -248,7 +244,7 @@ if (Number("\u2009") !== 0) {
} else {
if (1/Number("\u2009") !== Number.POSITIVE_INFINITY) {
$ERROR('#27.2: Number("\\u2009") === +0. Actual: -0');
}
}
}
// CHECK#28
@ -257,7 +253,7 @@ if (Number("\u200A") !== 0) {
} else {
if (1/Number("\u200A") !== Number.POSITIVE_INFINITY) {
$ERROR('#28.2: Number("\\u200A") === +0. Actual: -0');
}
}
}
// CHECK#29
@ -266,7 +262,7 @@ if (Number("\u202F") !== 0) {
} else {
if (1/Number("\u202F") !== Number.POSITIVE_INFINITY) {
$ERROR('#29.2: Number("\\u202F") === +0. Actual: -0');
}
}
}
// CHECK#30
@ -275,15 +271,11 @@ if (Number("\u205F") !== 0) {
} else {
if (1/Number("\u205F") !== Number.POSITIVE_INFINITY) {
$ERROR('#30.2: Number("\\u205F") === +0. Actual: -0');
}
}
}
// CHECK#31
if (Number("\u3000") !== 0) {
$ERROR('#31.1: Number("\\u3000") === 0. Actual: ' + (Number("\u3000")));
} else {
if (1/Number("\u3000") !== Number.POSITIVE_INFINITY) {
$ERROR('#31.2: Number("\\u3000") === +0. Actual: -0');
}
if (Number("\u3000") === NaN) {
$ERROR('#31.1: Number("\\u3000") === NaN. Actual: ' + (Number("\u3000")));
}

Просмотреть файл

@ -9,22 +9,22 @@
*/
// CHECK#1
if (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number("")) {
$ERROR('#1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("")');
if (Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number("")) {
$ERROR('#1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("")');
}
// CHECK#2
if (Number("\u0009\u000C\u0020\u00A0\u000A\u000D\u2028\u2029\u000B\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u30001234567890\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number("1234567890")) {
$ERROR('#2: Number("\\u0009\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029\\u000B\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u30001234567890\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("1234567890")');
if (Number("\u0009\u000C\u0020\u00A0\u000A\u000D\u2028\u2029\u000B\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u30001234567890\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") !== Number("1234567890")) {
$ERROR('#2: Number("\\u0009\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029\\u000B\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u30001234567890\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("1234567890")');
}
// CHECK#3
if (!(+("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000Infinity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") == Number("Infinity"))) {
$ERROR('#3: +("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000Infinity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("Infinity")');
if (!(+("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000Infinity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") == Number("Infinity"))) {
$ERROR('#3: +("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000Infinity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("Infinity")');
}
// CHECK#4
if (!(Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000-Infinity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") == Number(-"Infinity"))) {
$ERROR('#4: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000-Infinity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("-Infinity")');
if (!(Number("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000-Infinity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000") == Number(-"Infinity"))) {
$ERROR('#4: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000-Infinity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("-Infinity")');
}

Просмотреть файл

@ -13,22 +13,22 @@ function dynaString(s1, s2){
}
// CHECK#1
if (Number(dynaString("\u0009\u000C\u0020\u00A0\u000B", "\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) !== Number("")) {
$ERROR('#1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B"+"\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("")');
if (Number(dynaString("\u0009\u000C\u0020\u00A0\u000B", "\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) !== Number("")) {
$ERROR('#1: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B"+"\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("")');
}
// CHECK#2
if (+(dynaString("\u0009\u000C\u0020\u00A0\u000A\u000D\u2028\u2029\u000B12345", "67890\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) !== Number("1234567890")) {
$ERROR('#2: +("\\u0009\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029\\u000B12345"+"67890\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("1234567890")');
if (+(dynaString("\u0009\u000C\u0020\u00A0\u000A\u000D\u2028\u2029\u000B12345", "67890\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) !== Number("1234567890")) {
$ERROR('#2: +("\\u0009\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029\\u000B12345"+"67890\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") === Number("1234567890")');
}
// CHECK#3
if (!(Number(dynaString("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029Infi", "nity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) == Number("Infinity"))) {
$ERROR('#3: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029Infi"+"nity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("Infinity")');
if (!(Number(dynaString("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029Infi", "nity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) == Number("Infinity"))) {
$ERROR('#3: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029Infi"+"nity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("Infinity")');
}
// CHECK#4
if (!(Number(dynaString("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029-Infi", "nity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) == Number(-"Infinity"))) {
$ERROR('#4: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029-Infi"+"nity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("-Infinity")');
if (!(Number(dynaString("\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029-Infi", "nity\u0009\u000C\u0020\u00A0\u000B\u000A\u000D\u2028\u2029\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000")) == Number(-"Infinity"))) {
$ERROR('#4: Number("\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029-Infi"+"nity\\u0009\\u000C\\u0020\\u00A0\\u000B\\u000A\\u000D\\u2028\\u2029\\u1680\\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000") == Number("-Infinity")');
}

Просмотреть файл

@ -103,15 +103,15 @@ class CharacterInfo {
}
};
extern const uint8_t index1[];
extern const uint8_t index2[];
extern const uint16_t index1[];
extern const uint16_t index2[];
extern const CharacterInfo js_charinfo[];
inline const CharacterInfo&
CharInfo(char16_t code)
{
const size_t shift = 5;
size_t index = index1[code >> shift];
const size_t shift = 6;
uint16_t index = index1[code >> shift];
index = index2[(index << shift) + (code & ((1 << shift) - 1))];
return js_charinfo[index];

Просмотреть файл

@ -427,7 +427,7 @@ if (typeof reportCompare === "function")
index1, index2, shift = splitbins(index)
# Don't forget to update CharInfo in Unicode.cpp if you need to change this
assert shift == 5
assert shift == 6
same_upper_index1, same_upper_index2, same_upper_shift = splitbins(same_upper_index)
@ -527,13 +527,16 @@ if (typeof reportCompare === "function")
data_file.write('\n')
def dump(data, name, file):
file.write('const uint8_t unicode::' + name + '[] = {\n')
size = 'uint8_t'
if name == 'index1' or name == 'index2':
size = 'uint16_t'
file.write('const ' + size + ' unicode::' + name + '[] = {\n')
line = pad = ' ' * 4
lines = []
for entry in data:
assert entry < 256
s = str(entry)
assert len(s) <= 3
s = s.rjust(3)
if len(line + s) + 5 > 99: