| <!DOCTYPE html> |
| <link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#exprlex"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <script> |
| function parse(expression) { |
| document.evaluate(expression, document, null, XPathResult.ANY_TYPE, null); |
| } |
| |
| // https://www.w3.org/TR/1999/REC-xpath-19991116/#NT-Literal |
| test(() => { |
| parse(' \'a"bc\' '); |
| parse(' "a\'bc" '); |
| |
| assert_throws_dom('SyntaxError', () => { parse(' \u2019xyz\u2019 '); }); |
| }, 'Literal: Only \' and " should be handled as literal quotes.'); |
| |
| // https://www.w3.org/TR/1999/REC-xpath-19991116/#NT-ExprWhitespace |
| test(() => { |
| parse(' \t\r\n.\r\n\t '); |
| |
| assert_throws_dom('SyntaxError', () => { parse('\x0B\x0C .'); }); |
| assert_throws_dom('SyntaxError', () => { parse('\x0E\x0F .'); }); |
| assert_throws_dom('SyntaxError', () => { parse('\u3000 .'); }); |
| assert_throws_dom('SyntaxError', () => { parse('\u2029 .'); }); |
| }, 'ExprWhitespace: Only #x20 #x9 #xD or #xA must be handled as a whitespace.'); |
| </script> |
| </body> |