diff options
Diffstat (limited to 'js/src/tests/ecma/SourceText')
-rw-r--r-- | js/src/tests/ecma/SourceText/6-1.js | 94 | ||||
-rw-r--r-- | js/src/tests/ecma/SourceText/6-2.js | 97 | ||||
-rw-r--r-- | js/src/tests/ecma/SourceText/browser.js | 0 | ||||
-rw-r--r-- | js/src/tests/ecma/SourceText/shell.js | 0 |
4 files changed, 191 insertions, 0 deletions
diff --git a/js/src/tests/ecma/SourceText/6-1.js b/js/src/tests/ecma/SourceText/6-1.js new file mode 100644 index 000000000..d618e7daa --- /dev/null +++ b/js/src/tests/ecma/SourceText/6-1.js @@ -0,0 +1,94 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +/** + File Name: 6-1.js + ECMA Section: Source Text + Description: + + ECMAScript source text is represented as a sequence of characters + representable using the Unicode version 2.0 character encoding. + + SourceCharacter :: + any Unicode character + + However, it is possible to represent every ECMAScript program using + only ASCII characters (which are equivalent to the first 128 Unicode + characters). Non-ASCII Unicode characters may appear only within comments + and string literals. In string literals, any Unicode character may also be + expressed as a Unicode escape sequence consisting of six ASCII characters, + namely \u plus four hexadecimal digits. Within a comment, such an escape + sequence is effectively ignored as part of the comment. Within a string + literal, the Unicode escape sequence contributes one character to the string + value of the literal. + + Note that ECMAScript differs from the Java programming language in the + behavior of Unicode escape sequences. In a Java program, if the Unicode escape + sequence \u000A, for example, occurs within a single-line comment, it is + interpreted as a line terminator (Unicode character 000A is line feed) and + therefore the next character is not part of the comment. Similarly, if the + Unicode escape sequence \u000A occurs within a string literal in a Java + program, it is likewise interpreted as a line terminator, which is not + allowed within a string literal-one must write \n instead of \u000A to + cause a line feed to be part of the string value of a string literal. In + an ECMAScript program, a Unicode escape sequence occurring within a comment + is never interpreted and therefore cannot contribute to termination of the + comment. Similarly, a Unicode escape sequence occurring within a string literal + in an ECMAScript program always contributes a character to the string value of + the literal and is never interpreted as a line terminator or as a quote mark + that might terminate the string literal. + + Author: christine@netscape.com + Date: 12 november 1997 +*/ + +var SECTION = "6-1"; +var VERSION = "ECMA_1"; +startTest(); +var TITLE = "Source Text"; + +writeHeaderToLog( SECTION + " "+ TITLE); + +var testcase = new TestCase( SECTION, + "// the following character should not be interpreted as a line terminator in a comment: \u000A", + 'PASSED', + "PASSED" ); + +// \u000A testcase.actual = "FAILED!"; + +testcase = + new TestCase( SECTION, + "// the following character should not be interpreted as a line terminator in a comment: \\n 'FAILED'", + 'PASSED', + 'PASSED' ); + +// the following character should noy be interpreted as a line terminator: \\n testcase.actual = "FAILED" + +testcase = + new TestCase( SECTION, + "// the following character should not be interpreted as a line terminator in a comment: \\u000A 'FAILED'", + 'PASSED', + 'PASSED' ); + +// the following character should not be interpreted as a line terminator: \u000A testcase.actual = "FAILED" + +testcase = + new TestCase( SECTION, + "// the following character should not be interpreted as a line terminator in a comment: \n 'PASSED'", + 'PASSED', + 'PASSED' ); +// the following character should not be interpreted as a line terminator: \n testcase.actual = 'FAILED' + +testcase = + new TestCase( SECTION, + "// the following character should not be interpreted as a line terminator in a comment: u000D", + 'PASSED', + 'PASSED' ); + +// the following character should not be interpreted as a line terminator: \u000D testcase.actual = "FAILED" + +test(); + diff --git a/js/src/tests/ecma/SourceText/6-2.js b/js/src/tests/ecma/SourceText/6-2.js new file mode 100644 index 000000000..d7bb09077 --- /dev/null +++ b/js/src/tests/ecma/SourceText/6-2.js @@ -0,0 +1,97 @@ +/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + +/** + File Name: 6-1.js + ECMA Section: Source Text + Description: + + ECMAScript source text is represented as a sequence of characters + representable using the Unicode version 2.0 character encoding. + + SourceCharacter :: + any Unicode character + + However, it is possible to represent every ECMAScript program using + only ASCII characters (which are equivalent to the first 128 Unicode + characters). Non-ASCII Unicode characters may appear only within comments + and string literals. In string literals, any Unicode character may also be + expressed as a Unicode escape sequence consisting of six ASCII characters, + namely \u plus four hexadecimal digits. Within a comment, such an escape + sequence is effectively ignored as part of the comment. Within a string + literal, the Unicode escape sequence contributes one character to the string + value of the literal. + + Note that ECMAScript differs from the Java programming language in the + behavior of Unicode escape sequences. In a Java program, if the Unicode escape + sequence \u000A, for example, occurs within a single-line comment, it is + interpreted as a line terminator (Unicode character 000A is line feed) and + therefore the next character is not part of the comment. Similarly, if the + Unicode escape sequence \u000A occurs within a string literal in a Java + program, it is likewise interpreted as a line terminator, which is not + allowed within a string literal-one must write \n instead of \u000A to + cause a line feed to be part of the string value of a string literal. In + an ECMAScript program, a Unicode escape sequence occurring within a comment + is never interpreted and therefore cannot contribute to termination of the + comment. Similarly, a Unicode escape sequence occurring within a string literal + in an ECMAScript program always contributes a character to the string value of + the literal and is never interpreted as a line terminator or as a quote mark + that might terminate the string literal. + + Author: christine@netscape.com + Date: 12 november 1997 +*/ + +var SECTION = "6-1"; +var VERSION = "ECMA_1"; +startTest(); +var TITLE = "Source Text"; + +writeHeaderToLog( SECTION + " "+ TITLE); + +// encoded quotes should not end a quote + +new TestCase( SECTION, + "var s = 'PAS\\u0022SED'; s", + "PAS\"SED", + eval("var s = 'PAS\\u0022SED'; s") ); + +new TestCase( SECTION, + 'var s = "PAS\\u0022SED"; s', + "PAS\"SED", + eval('var s = "PAS\\u0022SED"; s') ); + + +new TestCase( SECTION, + "var s = 'PAS\\u0027SED'; s", + "PAS\'SED", + eval("var s = 'PAS\\u0027SED'; s") ); + + +new TestCase( SECTION, + 'var s = "PAS\\u0027SED"; s', + "PAS\'SED", + eval('var s = "PAS\\u0027SED"; s') ); + +var testcase = new TestCase( SECTION, + 'var s="PAS\\u0027SED"; s', + "PAS\'SED", + "" ); +var s = "PAS\u0027SED"; + +testcase.actual = s; + +testcase = new TestCase( SECTION, + 'var s = "PAS\\u0022SED"; s', + "PAS\"SED", + "" ); +var s = "PAS\u0022SED"; + +testcase.actual = s; + + +test(); + diff --git a/js/src/tests/ecma/SourceText/browser.js b/js/src/tests/ecma/SourceText/browser.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/js/src/tests/ecma/SourceText/browser.js diff --git a/js/src/tests/ecma/SourceText/shell.js b/js/src/tests/ecma/SourceText/shell.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/js/src/tests/ecma/SourceText/shell.js |