From 9114f815a02bd82a9ed52feb70d2a94c28c9e50d Mon Sep 17 00:00:00 2001 From: Mike Pennisi <mike@mikepennisi.com> Date: Tue, 28 Jun 2016 16:51:38 -0400 Subject: [PATCH] Add test for '^' assertion with 'm' flag The specification contains an explicit informative NOTE explaining that the 'm' flag does not effect the behavior of the '^' assertion. Add a test to verify this. --- .../literals/regexp/y-assertion-start.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/language/literals/regexp/y-assertion-start.js diff --git a/test/language/literals/regexp/y-assertion-start.js b/test/language/literals/regexp/y-assertion-start.js new file mode 100644 index 0000000000..efeb0ae78f --- /dev/null +++ b/test/language/literals/regexp/y-assertion-start.js @@ -0,0 +1,46 @@ +// 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-assertion +es6id: 21.2.2.6 +description: The `y` flag has no effect on the `^` assertion +info: > + Even when the y flag is used with a pattern, ^ always matches only at the + beginning of Input, or (if Multiline is true) at the beginning of a line. +---*/ + +var re; + +re = /^a/y; + +re.lastIndex = 0; +assert.sameValue( + re.test('a'), true, 'positive: beginning of input (without `m`)' +); + +re.lastIndex = 1; +assert.sameValue( + re.test(' a'), false, 'negative: within a line (without `m`)' +); + +re.lastIndex = 1; +assert.sameValue( + re.test('\na'), false, 'negative: beginning of line (without `m`)' +); + +re = /^a/my; + +re.lastIndex = 0; +assert.sameValue( + re.test('a'), true, 'positive: beginning of input (with `m`)' +); + +re.lastIndex = 1; +assert.sameValue( + re.test(' a'), false, 'negative: within a line (with `m`)' +); + +re.lastIndex = 1; +assert.sameValue( + re.test('\na'), true, 'positive: beginning of line (with `m`)' +); -- GitLab