From 9bc9116656247eb3426cf1cb91d88b70c6bae594 Mon Sep 17 00:00:00 2001 From: Kevin Gibbons Date: Mon, 5 Nov 2018 15:23:03 -0800 Subject: [PATCH] split unicode-malformed.js --- .../RegExp/named-groups/unicode-malformed.js | 29 ------------------- .../invalid-dangling-groupname-2-u.js | 20 +++++++++++++ .../invalid-dangling-groupname-3-u.js | 20 +++++++++++++ .../invalid-dangling-groupname-4-u.js | 20 +++++++++++++ .../invalid-dangling-groupname-u.js | 20 +++++++++++++ ...lid-dangling-groupname-without-group-u.js} | 2 +- .../invalid-duplicate-groupspecifier-2-u.js | 18 ++++++++++++ .../invalid-duplicate-groupspecifier-u.js | 18 ++++++++++++ .../invalid-empty-groupspecifier-u.js | 15 ++++++++++ .../invalid-identity-escape-in-capture-u.js | 15 ++++++++++ .../invalid-incomplete-groupname-2-u.js | 15 ++++++++++ .../invalid-incomplete-groupname-3-u.js | 15 ++++++++++ .../invalid-incomplete-groupname-u.js | 15 ++++++++++ ...-incomplete-groupname-without-group-2-u.js | 15 ++++++++++ ...-incomplete-groupname-without-group-3-u.js | 15 ++++++++++ ...id-incomplete-groupname-without-group-u.js | 15 ++++++++++ .../invalid-numeric-groupspecifier-u.js | 15 ++++++++++ ...id-punctuator-starting-groupspecifier-u.js | 15 ++++++++++ ...lid-punctuator-starting-groupspecifier.js} | 0 ...alid-punctuator-within-groupspecifier-u.js | 15 ++++++++++ ...valid-punctuator-within-groupspecifier.js} | 0 .../invalid-unterminated-groupspecifier-u.js | 15 ++++++++++ ...=> invalid-unterminated-groupspecifier.js} | 0 23 files changed, 297 insertions(+), 30 deletions(-) delete mode 100644 test/built-ins/RegExp/named-groups/unicode-malformed.js create mode 100644 test/language/literals/regexp/named-groups/invalid-dangling-groupname-2-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-dangling-groupname-3-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-dangling-groupname-4-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-dangling-groupname-u.js rename test/language/literals/regexp/named-groups/{invalid-dangling-groupname-5.js => invalid-dangling-groupname-without-group-u.js} (97%) create mode 100644 test/language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-2-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-empty-groupspecifier-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-identity-escape-in-capture-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-incomplete-groupname-2-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-incomplete-groupname-3-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-incomplete-groupname-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-2-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-3-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-numeric-groupspecifier-u.js create mode 100644 test/language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier-u.js rename test/language/literals/regexp/named-groups/{invalid-punctuator-in-groupspecifier.js => invalid-punctuator-starting-groupspecifier.js} (100%) create mode 100644 test/language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier-u.js rename test/language/literals/regexp/named-groups/{invalid-punctuator-in-groupspecifier-2.js => invalid-punctuator-within-groupspecifier.js} (100%) create mode 100644 test/language/literals/regexp/named-groups/invalid-unterminated-groupspecifier-u.js rename test/language/literals/regexp/named-groups/{invalid-incomplete-groupspecifier.js => invalid-unterminated-groupspecifier.js} (100%) diff --git a/test/built-ins/RegExp/named-groups/unicode-malformed.js b/test/built-ins/RegExp/named-groups/unicode-malformed.js deleted file mode 100644 index 5c9c131a48..0000000000 --- a/test/built-ins/RegExp/named-groups/unicode-malformed.js +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 the V8 project authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -description: Various syntax errors for Unicode RegExps containing named groups -esid: prod-GroupSpecifier -features: [regexp-named-groups] ----*/ - -assert.throws(SyntaxError, () => eval("/(?<>a)/u"), "Empty name"); -assert.throws(SyntaxError, () => eval("/(? eval("/(?<42a>a)/u"), "Name starting with digits"); -assert.throws(SyntaxError, () => eval("/(?<:a>a)/u"), "Name starting with invalid char"); -assert.throws(SyntaxError, () => eval("/(?a)/u"), "Name containing with invalid char"); -assert.throws(SyntaxError, () => eval("/(?a)(?a)/u"), "Duplicate name"); -assert.throws(SyntaxError, () => eval("/(?a)(?b)(?a)/u"), "Duplicate name"); -assert.throws(SyntaxError, () => eval("/\\k/u"), "Invalid reference"); -assert.throws(SyntaxError, () => eval("/\\k eval("/\\k<>/u"), "Empty reference"); -assert.throws(SyntaxError, () => eval("/\\k/u"), "Lone \k"); -assert.throws(SyntaxError, () => eval("/(?.)\\k/u"), "Lone \k"); -assert.throws(SyntaxError, () => eval("/(?.)\\k eval("/(?.)\\k<>/u"), "Empty reference"); -assert.throws(SyntaxError, () => eval("/(?.)\\k/u"), "Invalid reference"); -assert.throws(SyntaxError, () => eval("/(?a)\\k/u"), "Invalid reference"); -assert.throws(SyntaxError, () => eval("/(?a)\\k/u"), "Invalid reference"); -assert.throws(SyntaxError, () => eval("/\\k(?a)/u"), "Invalid reference"); -assert.throws(SyntaxError, () => eval("/(?\\a)/u"), "Identity escape in capture"); - diff --git a/test/language/literals/regexp/named-groups/invalid-dangling-groupname-2-u.js b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-2-u.js new file mode 100644 index 0000000000..264709e7d9 --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-2-u.js @@ -0,0 +1,20 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Group reference must have corresponding group. +info: | + It is a Syntax Error if the enclosing Pattern does not contain a + GroupSpecifier with an enclosed RegExpIdentifierName whose StringValue + equals the StringValue of the RegExpIdentifierName of this production's + GroupName. +esid: sec-patterns-static-semantics-early-errors +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?a)\k/u; diff --git a/test/language/literals/regexp/named-groups/invalid-dangling-groupname-3-u.js b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-3-u.js new file mode 100644 index 0000000000..b0690b5167 --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-3-u.js @@ -0,0 +1,20 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Group reference must have corresponding group. +info: | + It is a Syntax Error if the enclosing Pattern does not contain a + GroupSpecifier with an enclosed RegExpIdentifierName whose StringValue + equals the StringValue of the RegExpIdentifierName of this production's + GroupName. +esid: sec-patterns-static-semantics-early-errors +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?a)\k/u; diff --git a/test/language/literals/regexp/named-groups/invalid-dangling-groupname-4-u.js b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-4-u.js new file mode 100644 index 0000000000..fecebf654e --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-4-u.js @@ -0,0 +1,20 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Group reference must have corresponding group. +info: | + It is a Syntax Error if the enclosing Pattern does not contain a + GroupSpecifier with an enclosed RegExpIdentifierName whose StringValue + equals the StringValue of the RegExpIdentifierName of this production's + GroupName. +esid: sec-patterns-static-semantics-early-errors +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/\k(?a)/u; diff --git a/test/language/literals/regexp/named-groups/invalid-dangling-groupname-u.js b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-u.js new file mode 100644 index 0000000000..dd14be10ab --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-u.js @@ -0,0 +1,20 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Group reference must have corresponding group. +info: | + It is a Syntax Error if the enclosing Pattern does not contain a + GroupSpecifier with an enclosed RegExpIdentifierName whose StringValue + equals the StringValue of the RegExpIdentifierName of this production's + GroupName. +esid: sec-patterns-static-semantics-early-errors +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?.)\k/u; diff --git a/test/language/literals/regexp/named-groups/invalid-dangling-groupname-5.js b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-without-group-u.js similarity index 97% rename from test/language/literals/regexp/named-groups/invalid-dangling-groupname-5.js rename to test/language/literals/regexp/named-groups/invalid-dangling-groupname-without-group-u.js index 582bf29d8a..004618ede4 100644 --- a/test/language/literals/regexp/named-groups/invalid-dangling-groupname-5.js +++ b/test/language/literals/regexp/named-groups/invalid-dangling-groupname-without-group-u.js @@ -17,4 +17,4 @@ features: [regexp-named-groups] throw "Test262: This statement should not be evaluated."; -/\k(?x)/; +/\k/u; diff --git a/test/language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-2-u.js b/test/language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-2-u.js new file mode 100644 index 0000000000..70707a499f --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-2-u.js @@ -0,0 +1,18 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupSpecifiers must be unique. +info: | + It is a Syntax Error if Pattern contains multiple GroupSpecifiers + whose enclosed RegExpIdentifierNames have the same StringValue. +esid: sec-patterns-static-semantics-early-errors +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?a)(?b)(?a)/u; diff --git a/test/language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-u.js b/test/language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-u.js new file mode 100644 index 0000000000..bac9221490 --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-duplicate-groupspecifier-u.js @@ -0,0 +1,18 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupSpecifiers must be unique. +info: | + It is a Syntax Error if Pattern contains multiple GroupSpecifiers + whose enclosed RegExpIdentifierNames have the same StringValue. +esid: sec-patterns-static-semantics-early-errors +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?a)(?a)/u; diff --git a/test/language/literals/regexp/named-groups/invalid-empty-groupspecifier-u.js b/test/language/literals/regexp/named-groups/invalid-empty-groupspecifier-u.js new file mode 100644 index 0000000000..44a86c1c5a --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-empty-groupspecifier-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupSpecifier must be identifier-like. +esid: prod-GroupSpecifier +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?<>a)/u; diff --git a/test/language/literals/regexp/named-groups/invalid-identity-escape-in-capture-u.js b/test/language/literals/regexp/named-groups/invalid-identity-escape-in-capture-u.js new file mode 100644 index 0000000000..0f46b0e1dc --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-identity-escape-in-capture-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupName is `< RegExpIdentifierName >`. +esid: prod-GroupName +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?\a)/u; diff --git a/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-2-u.js b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-2-u.js new file mode 100644 index 0000000000..ed0d2ff019 --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-2-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupName is `< RegExpIdentifierName >`. +esid: prod-GroupName +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?.)\k`. +esid: prod-GroupName +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?.)\k<>/u; diff --git a/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-u.js b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-u.js new file mode 100644 index 0000000000..636b69a578 --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupName is `< RegExpIdentifierName >`. +esid: prod-GroupName +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?.)\k/u; diff --git a/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-2-u.js b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-2-u.js new file mode 100644 index 0000000000..d953a42877 --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-2-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupName is `< RegExpIdentifierName >`. +esid: prod-GroupName +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/\k<>/u; diff --git a/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-3-u.js b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-3-u.js new file mode 100644 index 0000000000..f8c41abbfe --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-3-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupName is `< RegExpIdentifierName >`. +esid: prod-GroupName +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/\k/u; diff --git a/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-u.js b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-u.js new file mode 100644 index 0000000000..b7e22617e6 --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-incomplete-groupname-without-group-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupName is `< RegExpIdentifierName >`. +esid: prod-GroupName +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/\ka)/u; diff --git a/test/language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier-u.js b/test/language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier-u.js new file mode 100644 index 0000000000..b55f2b5453 --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupSpecifier must be identifier-like. +esid: prod-GroupSpecifier +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?<:a>a)/u; diff --git a/test/language/literals/regexp/named-groups/invalid-punctuator-in-groupspecifier.js b/test/language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier.js similarity index 100% rename from test/language/literals/regexp/named-groups/invalid-punctuator-in-groupspecifier.js rename to test/language/literals/regexp/named-groups/invalid-punctuator-starting-groupspecifier.js diff --git a/test/language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier-u.js b/test/language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier-u.js new file mode 100644 index 0000000000..1419cddb5f --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupSpecifier must be identifier-like. +esid: prod-GroupSpecifier +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?a)/u; diff --git a/test/language/literals/regexp/named-groups/invalid-punctuator-in-groupspecifier-2.js b/test/language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier.js similarity index 100% rename from test/language/literals/regexp/named-groups/invalid-punctuator-in-groupspecifier-2.js rename to test/language/literals/regexp/named-groups/invalid-punctuator-within-groupspecifier.js diff --git a/test/language/literals/regexp/named-groups/invalid-unterminated-groupspecifier-u.js b/test/language/literals/regexp/named-groups/invalid-unterminated-groupspecifier-u.js new file mode 100644 index 0000000000..d84c30e4dc --- /dev/null +++ b/test/language/literals/regexp/named-groups/invalid-unterminated-groupspecifier-u.js @@ -0,0 +1,15 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: GroupSpecifier must be identifier-like. +esid: prod-GroupSpecifier +negative: + phase: parse + type: SyntaxError +features: [regexp-named-groups] +---*/ + +throw "Test262: This statement should not be evaluated."; + +/(?