| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /** |
| * @assertion 15.10.2.10: The production CharacterEscape :: |
| * UnicodeEscapeSequence evaluates by evaluating the character value of the |
| * UnicodeEscapeSequence (see 7.8.4) and returning its character result.<br/> |
| * HexEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit |
| * @description Checks the assertion using some uncommon \u-encoded characters |
| * in the test string. |
| * @3rdparty sputnik-v1:S15.10.2.10_A4.1_T1.js |
| * @author rodionov |
| */ |
| import "../../../../Utils/expect.dart"; |
| |
| main() { |
| Map<String, String> codes = const { |
| "0000" : "\u0000", "0001" : "\u0001", "000A" : "\u000A", "000F" : "\u000F", |
| "00FF" : "\u00FF", "0FFF" : "\u0FFF", "FFFF" : "\uFFFF", "F00F" : "\uF00F" |
| }; |
| |
| StringBuffer errStr = new StringBuffer(); |
| codes.forEach((String key, String value) { |
| RegExp re = new RegExp("\\u$key"); |
| if(null == re.firstMatch(value)) { |
| errStr.write("\"\\u${key}\" does not match \"${value}\"\n"); |
| } |
| }); |
| |
| if(errStr.length > 0) { |
| Expect.fail(errStr.toString()); |
| } |
| } |