You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
1.8 KiB

/*
* Tests corner cases for \b and \B at start and end of input.
*
* IsWordChar() is defined in E5 Section 15.10.2.6 to be false if
* evaluated for a character outside the input string. The \b and
* \B assertions may thus match even at the start or the end of
* the input string.
*
* Below the '=' character is used as a non-word-character.
*/
var t;
/*===
null
a=
=a
null
ab
null
null
==
===*/
/* normal cases */
t = /.\b./.exec('ab'); /* IsWordChar: true -> true */
print(t);
t = /.\b./.exec('a='); /* IsWordChar: true -> false */
print(t[0]);
t = /.\b./.exec('=a'); /* IsWordChar: false -> true */
print(t[0]);
t = /.\b./.exec('=='); /* IsWordChar: false -> false */
print(t);
t = /.\B./.exec('ab'); /* IsWordChar: true -> true */
print(t[0]);
t = /.\B./.exec('a='); /* IsWordChar: true -> false */
print(t);
t = /.\B./.exec('=a'); /* IsWordChar: false -> true */
print(t);
t = /.\B./.exec('=='); /* IsWordChar: false -> false */
print(t[0]);
/*===
a
null
null
=
===*/
/* \b or \B at start of input */
t = /\b./.exec('a'); /* IsWordChar: false -> true */
print(t[0]);
t = /\b./.exec('='); /* IsWordChar: false -> false */
print(t);
t = /\B./.exec('a'); /* IsWordChar: false -> true */
print(t);
t = /\B./.exec('='); /* IsWordChar: false -> false */
print(t[0]);
/*===
a
null
null
=
===*/
/* \b or \B at end of input */
t = /.\b/.exec('a'); /* IsWordChar: true -> false */
print(t[0]);
t = /.\b/.exec('='); /* IsWordChar: false -> false */
print(t);
t = /.\B/.exec('a'); /* IsWordChar: true -> false */
print(t);
t = /.\B/.exec('='); /* IsWordChar: false -> false */
print(t[0]);
/*===
null
===*/
/* \b or \B for empty string */
t = /\b/.exec(''); /* IsWordChar: false -> false */
print(t);
t = /\B/.exec(''); /* IsWordChar: false -> false */
print(t[0]);