[VM] Stop treating 0x180e as whitespace

This aligns us with JS engines and Unicode 6.3

R=lrn@google.com

Bug: 29060
Change-Id: I0b6356f0e652f7c9841bcf6485aa591a3d835061
Reviewed-on: https://dart-review.googlesource.com/35560
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Corry <erikcorry@google.com>
This commit is contained in:
Erik Corry 2018-01-18 10:37:15 +00:00 committed by commit-bot@chromium.org
parent 2d4ccc78ad
commit c8ae9bf77b
11 changed files with 34 additions and 53 deletions

View file

@ -182,13 +182,12 @@ class JSString extends Interceptor implements String, JSIndexable<String> {
return JS('String', r'#.toUpperCase()', this);
}
// Characters with Whitespace property (Unicode 6.2).
// Characters with Whitespace property (Unicode 6.3).
// 0009..000D ; White_Space # Cc <control-0009>..<control-000D>
// 0020 ; White_Space # Zs SPACE
// 0085 ; White_Space # Cc <control-0085>
// 00A0 ; White_Space # Zs NO-BREAK SPACE
// 1680 ; White_Space # Zs OGHAM SPACE MARK
// 180E ; White_Space # Zs MONGOLIAN VOWEL SEPARATOR
// 2000..200A ; White_Space # Zs EN QUAD..HAIR SPACE
// 2028 ; White_Space # Zl LINE SEPARATOR
// 2029 ; White_Space # Zp PARAGRAPH SEPARATOR
@ -218,7 +217,6 @@ class JSString extends Interceptor implements String, JSIndexable<String> {
}
switch (codeUnit) {
case 0x1680:
case 0x180E:
case 0x2000:
case 0x2001:
case 0x2002:

View file

@ -205,7 +205,6 @@ LibTest/core/int/operator_addition_A01_t01: RuntimeError, OK # co19 issue 200
LibTest/core/int/operator_remainder_A01_t01: RuntimeError, OK # Requires bigints.
LibTest/core/int/operator_right_shift_A01_t01: RuntimeError, OK # Expects negative result from bit-operation.
LibTest/core/int/toDouble_A01_t01: RuntimeError, OK # co19 issue 200
LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: Pass,RuntimeError # https://github.com/dart-lang/sdk/issues/29814
LibTest/html/HttpRequest/responseType_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure
LibTest/html/IFrameElement/enteredView_A01_t01: CompileTimeError # co19-roll r706: Please triage this failure
LibTest/isolate/Isolate/spawnUri_A01_t01: Fail # Dart issue 15974
@ -626,7 +625,7 @@ LibTest/async/Zone/createPeriodicTimer_A01_t01: RuntimeError # Issue 7728, timer
LibTest/async/Zone/createTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/core/List/sort_A01_t04: Skip # Must be a bug in jsshell, test sometimes times out.
LibTest/core/Map/Map_class_A01_t04: Pass, Slow # Issue 8096
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # co19-roll r706: Please triage this failure.
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # JS engine has not moved to Unicode 6.3 yet.
LibTest/core/Stopwatch/elapsedInMs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/core/Stopwatch/elapsedInUs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/core/Stopwatch/elapsedTicks_A01_t01: RuntimeError # Please triage this failure
@ -676,7 +675,7 @@ LibTest/core/Uri/Uri_A06_t03: Skip # Issue 18093, timeout.
LibTest/core/Uri/encodeQueryComponent_A01_t02: Skip # Issue 18093, timeout.
[ $compiler == dart2js && $jscl ]
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail, Pass # issue 3333
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail, Pass # Does not work with old JS engines that are on Unicode 6.2
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, OK # This is not rejected by V8. Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@ -1444,7 +1443,6 @@ LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triag
LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Pass,RuntimeError # https://github.com/dart-lang/sdk/issues/29814
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@ -2253,7 +2251,7 @@ LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triag
LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # DRT may not be on Unicode 6.2
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Please triage this failure
@ -4902,7 +4900,7 @@ LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triag
LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Safari may not be on Unicode 6.3
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@ -6630,7 +6628,7 @@ LayoutTests/fast/xsl/xslt-transform-to-fragment-crash_t01: RuntimeError # Please
LibTest/async/Stream/Stream.periodic_A01_t01: Pass, RuntimeError # Please triage this failure
LibTest/async/Timer/Timer.periodic_A01_t01: Pass, RuntimeError # Please triage this failure
LibTest/async/Timer/Timer_A01_t01: Pass, RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # IE11 may not be on Unicode 6.3
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200

View file

@ -404,13 +404,12 @@ abstract class _StringBase implements String {
return (codeUnit == 0x85) || (codeUnit == 0xA0); // NEL, NBSP.
}
// Characters with Whitespace property (Unicode 6.2).
// Characters with Whitespace property (Unicode 6.3).
// 0009..000D ; White_Space # Cc <control-0009>..<control-000D>
// 0020 ; White_Space # Zs SPACE
// 0085 ; White_Space # Cc <control-0085>
// 00A0 ; White_Space # Zs NO-BREAK SPACE
// 1680 ; White_Space # Zs OGHAM SPACE MARK
// 180E ; White_Space # Zs MONGOLIAN VOWEL SEPARATOR
// 2000..200A ; White_Space # Zs EN QUAD..HAIR SPACE
// 2028 ; White_Space # Zl LINE SEPARATOR
// 2029 ; White_Space # Zp PARAGRAPH SEPARATOR
@ -426,7 +425,7 @@ abstract class _StringBase implements String {
if (codeUnit < 0x85) return false;
if ((codeUnit == 0x85) || (codeUnit == 0xA0)) return true;
return (codeUnit <= 0x200A)
? ((codeUnit == 0x1680) || (codeUnit == 0x180E) || (0x2000 <= codeUnit))
? ((codeUnit == 0x1680) || (0x2000 <= codeUnit))
: ((codeUnit == 0x2028) ||
(codeUnit == 0x2029) ||
(codeUnit == 0x202F) ||

View file

@ -2678,9 +2678,11 @@ class AlternativeGenerationList {
// The '2' variant is inclusive from and exclusive to.
// This covers \s as defined in ECMA-262 5.1, 15.10.2.12,
// which include WhiteSpace (7.2) or LineTerminator (7.3) values.
// 0x180E has been removed from Unicode's Zs category and thus
// from ECMAScript's WhiteSpace category as of Unicode 6.3.
static const intptr_t kSpaceRanges[] = {
'\t', '\r' + 1, ' ', ' ' + 1, 0x00A0, 0x00A1, 0x1680, 0x1681,
0x180E, 0x180F, 0x2000, 0x200B, 0x2028, 0x202A, 0x202F, 0x2030,
'\t', '\r' + 1, ' ', ' ' + 1, 0x00A0, 0x00A1, 0x1680,
0x1681, 0x2000, 0x200B, 0x2028, 0x202A, 0x202F, 0x2030,
0x205F, 0x2060, 0x3000, 0x3001, 0xFEFF, 0xFF00, 0x10000};
static const intptr_t kSpaceRangeCount = ARRAY_SIZE(kSpaceRanges);
static const intptr_t kWordRanges[] = {'0', '9' + 1, 'A', 'Z' + 1, '_',

View file

@ -321,14 +321,13 @@ abstract class String implements Comparable<String>, Pattern {
* Whitespace is defined by the Unicode White_Space property (as defined in
* version 6.2 or later) and the BOM character, 0xFEFF.
*
* Here is the list of trimmed characters (following version 6.2):
* Here is the list of trimmed characters (following version 6.3):
*
* 0009..000D ; White_Space # Cc <control-0009>..<control-000D>
* 0020 ; White_Space # Zs SPACE
* 0085 ; White_Space # Cc <control-0085>
* 00A0 ; White_Space # Zs NO-BREAK SPACE
* 1680 ; White_Space # Zs OGHAM SPACE MARK
* 180E ; White_Space # Zs MONGOLIAN VOWEL SEPARATOR
* 2000..200A ; White_Space # Zs EN QUAD..HAIR SPACE
* 2028 ; White_Space # Zl LINE SEPARATOR
* 2029 ; White_Space # Zp PARAGRAPH SEPARATOR

View file

@ -180,7 +180,6 @@ LibTest/core/List/List_class_A01_t01: RuntimeError # co19-roll r623: Please tria
LibTest/core/List/getRange_A03_t01: RuntimeError, OK # Tests that fail because they use the legacy try-catch syntax. co19 issue 184.
LibTest/core/List/removeAt_A02_t01: RuntimeError # Issue 1533
LibTest/core/List/sort_A01_t06: Slow, Pass # Slow tests that needs extra time to finish.
LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: Pass, RuntimeError # https://github.com/dart-lang/sdk/issues/29814
LibTest/core/double/INFINITY_A01_t04: RuntimeError # Expected to fail because double.INFINITY is int.
LibTest/core/double/NEGATIVE_INFINITY_A01_t04: RuntimeError # Expected to fail because double.NEGATIVE_INFINITY is int.
LibTest/core/int/hashCode_A01_t01: RuntimeError, OK # co19 issue 308
@ -981,7 +980,6 @@ LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triag
LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Pass, RuntimeError # https://github.com/dart-lang/sdk/issues/29814
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@ -2031,7 +2029,7 @@ LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triag
LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # DRT is not on Unicode 6.3 yet.
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Please triage this failure
@ -5149,7 +5147,7 @@ LayoutTests/fast/xsl/xslt-transform-to-fragment-crash_t01: RuntimeError # Please
LibTest/async/Stream/Stream.periodic_A01_t01: Pass, RuntimeError # Please triage this failure
LibTest/async/Timer/Timer.periodic_A01_t01: Pass, RuntimeError # Please triage this failure
LibTest/async/Timer/Timer_A01_t01: Pass, RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # IE11 is not on Unicode 6.3 yet.
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@ -5648,7 +5646,7 @@ LibTest/async/Zone/createPeriodicTimer_A01_t01: RuntimeError # Issue 7728, timer
LibTest/async/Zone/createTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/core/List/sort_A01_t04: Skip # Must be a bug in jsshell, test sometimes times out.
LibTest/core/Map/Map_class_A01_t04: Pass, Slow # Issue 8096
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # co19-roll r706: Please triage this failure.
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # JS Engine may not be on Unicode 6.3 yet.
LibTest/core/Stopwatch/elapsedInMs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/core/Stopwatch/elapsedInUs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/core/Stopwatch/elapsedTicks_A01_t01: RuntimeError # Please triage this failure
@ -6494,7 +6492,7 @@ LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triag
LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Safari is not on Unicode 6.3 yet.
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200

View file

@ -302,11 +302,9 @@ LibTest/core/Duration/inMilliseconds_A01_t01: RuntimeError # Large integers
LibTest/core/Duration/inMinutes_A01_t01: RuntimeError # Large integers
LibTest/core/Duration/inSeconds_A01_t01: RuntimeError # Large integers
LibTest/core/List/List_class_A01_t01: RuntimeError # Large integers
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Issue 1296
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, Fail # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError, Fail # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError, Fail # Issue 22200
LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: RuntimeError # Issue 1296
LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Issue 13596
LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Issue 13596
LibTest/core/double/ceil_A01_t04: RuntimeError # Large integers

View file

@ -57,7 +57,6 @@ int_from_environment_test: Fail # Flutter Issue 9111
main_test: RuntimeError # Flutter Issue 9111
string_from_environment2_test: Fail # Flutter Issue 9111
string_from_environment_test: Fail # Flutter Issue 9111
string_trimlr_test/02: RuntimeError # Flutter Issue 9111
[ $runtime == jsshell ]
string_case_test/01: RuntimeError # jsshell does not recognize character 223 aka \xdf
@ -66,7 +65,7 @@ unicode_test: RuntimeError # jsshell does not recognize character 223 aka \xdf
[ $runtime == safari ]
double_round3_test: RuntimeError
double_round_to_double2_test: Pass, Fail, OK
string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
string_trimlr_test/unicode63: RuntimeError # Uses Unicode 6.2.0 or earlier.
[ $strong ]
*: SkipByDesign # tests/corelib_2 has the strong mode versions of these tests.
@ -101,10 +100,10 @@ http_resource_test: Skip, OK # VM specific test, uses dart:io.
[ $compiler == dart2js && $runtime == chromeOnAndroid ]
list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.
string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
string_trimlr_test/unicode63: RuntimeError # Uses Unicode 6.2.0 or earlier.
[ $compiler == dart2js && $runtime == drt ]
string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
string_trimlr_test/unicode63: RuntimeError # Uses Unicode 6.2.0 or earlier.
[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
core_runtime_types_test: Pass, Fail # Issue 27913
@ -335,9 +334,6 @@ symbol_reserved_word_test/10: MissingCompileTimeError
[ $compiler == dart2js && $fast_startup ]
apply3_test: Fail # mirrors not supported
[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
string_trimlr_test/02: RuntimeError # Issue 29060
[ $runtime != d8 && $runtime != dart_precompiled && $runtime != vm ]
regexp/*: Skip # The regexp tests are not verified to work on non d8/vm platforms yet.
@ -369,7 +365,6 @@ data_resource_test: Skip # Resolve URI not supported yet in product mode.
file_resource_test: Skip # Resolve URI not supported yet in product mode.
http_resource_test: Skip # Resolve URI not supported yet in product mode.
package_resource_test: Skip # Resolve URI not supported yet in product mode.
string_trimlr_test/02: RuntimeError # Issue 29060
# We skip all the Dart 1.0 tests in dartk and dartkp mode as these
# modes are intended only for Dart 2.0 with strong mode enabled.

View file

@ -104,8 +104,9 @@ main() {
Expect.identical(s200B, s200B.trimRight()); // //# 01: ok
// U+180E ceased to be whitespace in Unicode version 6.3.0
// string_trimlr_test/02 fails on implementations using earlier versions.
// string_trimlr_test/unicode63 fails on implementations using earlier
// versions.
var s180E = new String.fromCharCode(0x180E);
Expect.identical(s180E, s180E.trimLeft()); // //# 02: ok
Expect.identical(s180E, s180E.trimRight()); // //# 02: ok
Expect.identical(s180E, s180E.trimLeft()); // //# unicode63: ok
Expect.identical(s180E, s180E.trimRight()); // //# unicode63: ok
}

View file

@ -66,7 +66,6 @@ int_from_environment_test: Fail # Flutter Issue 9111
main_test: RuntimeError # Flutter Issue 9111
string_from_environment2_test: Fail # Flutter Issue 9111
string_from_environment_test: Fail # Flutter Issue 9111
string_trimlr_test/02: RuntimeError # Flutter Issue 9111
[ $runtime == jsshell ]
string_case_test/01: Fail, OK # German double S.
@ -75,7 +74,7 @@ unicode_test: Fail
[ $runtime == safari ]
double_round3_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
double_round_to_double2_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
string_trimlr_test/unicode63: RuntimeError # Uses Unicode 6.2.0 or earlier.
[ !$strong ]
cast_test: SkipByDesign # Uses generic method parameters.
@ -130,10 +129,9 @@ string_static_test: MissingCompileTimeError
[ $compiler == dart2js && $runtime == chromeOnAndroid ]
list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.
string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
string_trimlr_test/unicode63: RuntimeError # Uses Unicode 6.2.0 or earlier.
[ $compiler == dart2js && $runtime == d8 ]
string_trimlr_test/02: RuntimeError, Pass # Uses Unicode 6.2.0 or earlier, issue 30279.
uri_base_test: RuntimeError # D8 uses a custom uri scheme for Uri.base
[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
@ -344,7 +342,6 @@ list_set_all_test: RuntimeError
null_nosuchmethod_test/01: CompileTimeError # Issue 31402 (Invocation arguments)
null_nosuchmethod_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
string_from_environment3_test/03: MissingCompileTimeError
string_trimlr_test/02: RuntimeError
symbol_operator_test/03: RuntimeError
symbol_reserved_word_test/04: MissingCompileTimeError
symbol_reserved_word_test/06: RuntimeError
@ -373,7 +370,6 @@ null_nosuchmethod_test/01: CompileTimeError # Issue 31402 (Invocation arguments)
null_nosuchmethod_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
regexp/stack-overflow_test: RuntimeError
string_from_environment3_test/03: MissingCompileTimeError
string_trimlr_test/02: RuntimeError
symbol_operator_test/03: RuntimeError
symbol_reserved_word_test/04: MissingCompileTimeError
symbol_reserved_word_test/06: RuntimeError
@ -393,7 +389,6 @@ string_from_environment_test: Skip
[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
string_trimlr_test/02: RuntimeError # Issue 29060
[ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
iterable_generate_test/01: RuntimeError
@ -404,7 +399,7 @@ apply_test: Skip # Uses new Symbol via symbolMapToStringMap helper
error_stack_trace1_test: Skip # Expects unobfuscated stack trace
[ $runtime == drt && ($compiler == dart2js || $compiler == dartdevc || $compiler == dartdevk) ]
string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
string_trimlr_test/unicode63: RuntimeError # Uses Unicode 6.2.0 or earlier.
[ $runtime != drt && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
symbol_test/02: MissingCompileTimeError # Issue 11669
@ -603,7 +598,6 @@ from_environment_const_type_undefined_test/13: MissingCompileTimeError
from_environment_const_type_undefined_test/14: MissingCompileTimeError
from_environment_const_type_undefined_test/16: MissingCompileTimeError
iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
string_trimlr_test/02: RuntimeError # Issue 29060
[ $compiler == dart2js || $compiler == none && $runtime == vm ]
from_environment_const_type_undefined_test/09: MissingCompileTimeError

View file

@ -96,16 +96,15 @@ main() {
Expect.identical(s, s.trimRight());
}
// U+200b is currently being treated as whitespace by some JS engines.
// string_trimlr_test/01 fails on these engines.
// Should be fixed in tip-of-tree V8 per 2014-02-10.
// U+200b is not treated as whitespace, though historically, some JS engines
// did.
var s200B = new String.fromCharCode(0x200B);
Expect.identical(s200B, s200B.trimLeft()); // //# 01: ok
Expect.identical(s200B, s200B.trimRight()); // //# 01: ok
Expect.identical(s200B, s200B.trimLeft());
Expect.identical(s200B, s200B.trimRight());
// U+180E ceased to be whitespace in Unicode version 6.3.0
// string_trimlr_test/02 fails on implementations using earlier versions.
// string_trimlr_test/unicode63 fails on implementations using earlier versions.
var s180E = new String.fromCharCode(0x180E);
Expect.identical(s180E, s180E.trimLeft()); // //# 02: ok
Expect.identical(s180E, s180E.trimRight()); // //# 02: ok
Expect.identical(s180E, s180E.trimLeft()); // //# unicode63: ok
Expect.identical(s180E, s180E.trimRight()); // //# unicode63: ok
}