Additional tests for QuantifiableAssertion

- Tests that lookahead and lookbehind are not extended to
  QuantifiableAssertion, as in https://github.com/tc39/ecma262/pull/1102
- Additional tests verifying some more combinations of cases for
  QuantifiableAssertion being invalid in Unicode mode.

Based on the tests in https://chromium-review.googlesource.com/c/v8/v8/+/926102

These tests pass on V8 (if the throw for early errors is removed to
work around a V8 issue where RegExps don't have early errors).
This commit is contained in:
Daniel Ehrenberg 2018-02-26 12:26:38 +01:00
parent b59d956b3c
commit f9a0f05850
12 changed files with 220 additions and 0 deletions

View File

@ -0,0 +1,20 @@
// Copyright (C) 2018 Igalia S. L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
description: Lookbehinds are not treated as a QuantifiableAssertion
info: |
Term[U] ::
[~U] QuantifiableAssertion Quantifier
QuantifiableAssertion[N]::
( ? = Disjunction[~U, ?N] )
( ? ! Disjunction[~U, ?N] )
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?<=.)?/;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2018 Igalia S. L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
description: Lookbehinds are not treated as a QuantifiableAssertion
info: |
Term[U] ::
[~U] QuantifiableAssertion Quantifier
QuantifiableAssertion[N]::
( ? = Disjunction[~U, ?N] )
( ? ! Disjunction[~U, ?N] )
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?<!.)?/;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2018 Igalia S. L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
description: Lookbehinds are not treated as a QuantifiableAssertion
info: |
Term[U] ::
[~U] QuantifiableAssertion Quantifier
QuantifiableAssertion[N]::
( ? = Disjunction[~U, ?N] )
( ? ! Disjunction[~U, ?N] )
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?<=.){2,3}/;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2018 Igalia S. L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
description: Lookbehinds are not treated as a QuantifiableAssertion
info: |
Term[U] ::
[~U] QuantifiableAssertion Quantifier
QuantifiableAssertion[N]::
( ? = Disjunction[~U, ?N] )
( ? ! Disjunction[~U, ?N] )
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?<!.){2,3}/;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2018 Igalia S. L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
description: Lookbehinds are not treated as a QuantifiableAssertion
info: |
Term[U] ::
[~U] QuantifiableAssertion Quantifier
QuantifiableAssertion[N]::
( ? = Disjunction[~U, ?N] )
( ? ! Disjunction[~U, ?N] )
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?<=.)?/u;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
es6id: B.1.4
description: Quantifiable assertions disallowed with `u` flag
info: |
The `u` flag precludes quantifiable assertions (even when Annex B is
honored)
Term[U] ::
[~U] QuantifiableAssertion Quantifier
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?!.)?/u;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2018 Igalia S. L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
description: Lookbehinds are not treated as a QuantifiableAssertion
info: |
Term[U] ::
[~U] QuantifiableAssertion Quantifier
QuantifiableAssertion[N]::
( ? = Disjunction[~U, ?N] )
( ? ! Disjunction[~U, ?N] )
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?<!.)?/u;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
es6id: B.1.4
description: Quantifiable assertions disallowed with `u` flag
info: |
The `u` flag precludes quantifiable assertions (even when Annex B is
honored)
Term[U] ::
[~U] QuantifiableAssertion Quantifier
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?=.){2,3}/u;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2018 Igalia S. L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
description: Lookbehinds are not treated as a QuantifiableAssertion
info: |
Term[U] ::
[~U] QuantifiableAssertion Quantifier
QuantifiableAssertion[N]::
( ? = Disjunction[~U, ?N] )
( ? ! Disjunction[~U, ?N] )
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?<=.){2,3}/u;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
es6id: B.1.4
description: Quantifiable assertions disallowed with `u` flag
info: |
The `u` flag precludes quantifiable assertions (even when Annex B is
honored)
Term[U] ::
[~U] QuantifiableAssertion Quantifier
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?!.){2,3}/u;

View File

@ -0,0 +1,20 @@
// Copyright (C) 2018 Igalia S. L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-regular-expressions-patterns
description: Lookbehinds are not treated as a QuantifiableAssertion
info: |
Term[U] ::
[~U] QuantifiableAssertion Quantifier
QuantifiableAssertion[N]::
( ? = Disjunction[~U, ?N] )
( ? ! Disjunction[~U, ?N] )
negative:
phase: parse
type: SyntaxError
---*/
throw "Test262: This statement should not be evaluated.";
/.(?<!.){2,3}/u;