| // Copyright (C) 2016 the V8 project authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| /*--- |
| esid: sec-regular-expressions-patterns |
| es6id: B.1.4 |
| description: Support for UnicodeIDContinue in IdentityEscape |
| info: | |
| IdentityEscape[U] :: |
| [+U] SyntaxCharacter |
| [+U] / |
| [~U] SourceCharacter but not c |
| ---*/ |
| |
| var match; |
| |
| match = /\C/.exec('ABCDE'); |
| assert.sameValue(match[0], 'C'); |
| |
| match = /O\PQ/.exec('MNOPQRS'); |
| assert.sameValue(match[0], 'OPQ'); |
| |
| match = /\8/.exec('789'); |
| assert.sameValue(match[0], '8'); |
| |
| match = /7\89/.exec('67890'); |
| assert.sameValue(match[0], '789'); |
| |
| match = /\9/.exec('890'); |
| assert.sameValue(match[0], '9'); |
| |
| match = /8\90/.exec('78900'); |
| assert.sameValue(match[0], '890'); |
| |
| match = /(.)(.)(.)(.)(.)(.)(.)(.)\8\8/.exec('0123456777'); |
| assert.sameValue( |
| match[0], |
| '0123456777', |
| 'DecimalEscape takes precedence over IdentityEscape (\\8)' |
| ); |
| |
| match = /(.)(.)(.)(.)(.)(.)(.)(.)(.)\9\9/.exec('01234567888'); |
| assert.sameValue( |
| match[0], |
| '01234567888', |
| 'DecimalEscape takes precedence over IdentityEscape (\\9)' |
| ); |