diff --git a/features.txt b/features.txt index 7b3c74a5fe8..c1a145619ef 100644 --- a/features.txt +++ b/features.txt @@ -77,6 +77,10 @@ numeric-separator-literal String.prototype.matchAll Symbol.matchAll +# ECMAScript ⊃ JSON +# https://github.com/tc39/proposal-json-superset +json-superset + # Intl.Locale # https://github.com/tc39/proposal-intl-locale Intl.Locale diff --git a/test/language/line-terminators/S7.3_A2.3.js b/test/language/line-terminators/S7.3_A2.3.js deleted file mode 100644 index fb26e7e7a71..00000000000 --- a/test/language/line-terminators/S7.3_A2.3.js +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: LINE SEPARATOR (U+2028) within strings is not allowed -es5id: 7.3_A2.3 -description: Insert LINE SEPARATOR (\u2028) into string ----*/ - -assert.throws(SyntaxError, function() { - eval("'\u2028str\u2028ing\u2028'"); -}); diff --git a/test/language/line-terminators/S7.3_A2.4.js b/test/language/line-terminators/S7.3_A2.4.js deleted file mode 100644 index 582a84f6429..00000000000 --- a/test/language/line-terminators/S7.3_A2.4.js +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: PARAGRAPH SEPARATOR (U+2029) within strings is not allowed -es5id: 7.3_A2.4 -description: Insert PARAGRAPH SEPARATOR (\u2029) into string ----*/ - -// CHECK#1 -assert.throws(SyntaxError, function() { - eval("'\u2029str\u2029ing\u2029'"); -}); diff --git a/test/language/literals/string/line-separator-eval.js b/test/language/literals/string/line-separator-eval.js new file mode 100644 index 00000000000..c8f4b33cbcd --- /dev/null +++ b/test/language/literals/string/line-separator-eval.js @@ -0,0 +1,17 @@ +// Copyright (C) 2018 Richard Gibson. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-literals-string-literals +description: > + U+2028 LINE SEPARATOR can appear in string literals (eval code). +info: | + 11.8.4 String Literals + + All code points may appear literally in a string literal except for the + closing quote code points, U+005C (REVERSE SOLIDUS), U+000D (CARRIAGE RETURN), + and U+000A (LINE FEED). +features: [json-superset] +---*/ + +assert.sameValue(eval("'\u2028'"), "\u2028"); diff --git a/test/language/literals/string/line-separator.js b/test/language/literals/string/line-separator.js new file mode 100644 index 00000000000..359b8977fcd --- /dev/null +++ b/test/language/literals/string/line-separator.js @@ -0,0 +1,18 @@ +// Copyright (C) 2018 Richard Gibson. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-literals-string-literals +description: > + U+2028 LINE SEPARATOR can appear in string literals. +info: | + 11.8.4 String Literals + + All code points may appear literally in a string literal except for the + closing quote code points, U+005C (REVERSE SOLIDUS), U+000D (CARRIAGE RETURN), + and U+000A (LINE FEED). +features: [json-superset] +---*/ + +// U+2028 in strings; UTF8(0x2028) = 0xE2 0x80 0xA8 +assert.sameValue("
", "\u2028"); diff --git a/test/language/literals/string/paragraph-separator-eval.js b/test/language/literals/string/paragraph-separator-eval.js new file mode 100644 index 00000000000..18e8df3a3f3 --- /dev/null +++ b/test/language/literals/string/paragraph-separator-eval.js @@ -0,0 +1,17 @@ +// Copyright (C) 2018 Richard Gibson. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-literals-string-literals +description: > + U+2029 PARAGRAPH SEPARATOR can appear in string literals (eval code). +info: | + 11.8.4 String Literals + + All code points may appear literally in a string literal except for the + closing quote code points, U+005C (REVERSE SOLIDUS), U+000D (CARRIAGE RETURN), + and U+000A (LINE FEED). +features: [json-superset] +---*/ + +assert.sameValue(eval("'\u2029'"), "\u2029"); diff --git a/test/language/literals/string/paragraph-separator.js b/test/language/literals/string/paragraph-separator.js new file mode 100644 index 00000000000..5e0ab447606 --- /dev/null +++ b/test/language/literals/string/paragraph-separator.js @@ -0,0 +1,18 @@ +// Copyright (C) 2018 Richard Gibson. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-literals-string-literals +description: > + U+2029 PARAGRAPH SEPARATOR can appear in string literals. +info: | + 11.8.4 String Literals + + All code points may appear literally in a string literal except for the + closing quote code points, U+005C (REVERSE SOLIDUS), U+000D (CARRIAGE RETURN), + and U+000A (LINE FEED). +features: [json-superset] +---*/ + +// U+2029 in strings; UTF8(0x2029) = 0xE2 0x80 0xA9 +assert.sameValue("
", "\u2029");