mirror of
https://github.com/tc39/test262.git
synced 2025-07-03 12:14:37 +02:00
tests for String.prototype.matchAll changes (#2389)
Per https://github.com/tc39/ecma262/pull/1716
This commit is contained in:
parent
a1acc23cd8
commit
f3e950e8ed
42
test/built-ins/String/prototype/matchAll/flags-nonglobal-throws.js
vendored
Normal file
42
test/built-ins/String/prototype/matchAll/flags-nonglobal-throws.js
vendored
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// Copyright (C) 2019 Jordan Harband. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: pending
|
||||||
|
description: Re-throws errors when calling @@matchAll
|
||||||
|
info: |
|
||||||
|
String.prototype.matchAll ( regexp )
|
||||||
|
[...]
|
||||||
|
2. If _regexp_ is neither *undefined* nor *null*, then
|
||||||
|
1. Let _isRegExp_ be ? IsRegExp(_regexp_).
|
||||||
|
1. If _isRegExp_ is true, then
|
||||||
|
1. Let _flags_ be ? Get(_regexp_, *"flags"*).
|
||||||
|
1. Perform ? RequireObjectCoercible(_flags_).
|
||||||
|
1. If ? ToString(_flags_) does not contain *"g"*, throw a *TypeError* exception.
|
||||||
|
features: [Symbol.matchAll]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function () {
|
||||||
|
''.matchAll(/a/);
|
||||||
|
});
|
||||||
|
assert.throws(TypeError, function () {
|
||||||
|
''.matchAll(/a/i);
|
||||||
|
});
|
||||||
|
assert.throws(TypeError, function () {
|
||||||
|
''.matchAll(/a/m);
|
||||||
|
});
|
||||||
|
assert.throws(TypeError, function () {
|
||||||
|
''.matchAll(/a/u);
|
||||||
|
});
|
||||||
|
assert.throws(TypeError, function () {
|
||||||
|
''.matchAll(/a/y);
|
||||||
|
});
|
||||||
|
|
||||||
|
var regex = /a/;
|
||||||
|
Object.defineProperty(regex, 'flags', {
|
||||||
|
value: 'muyi'
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.throws(TypeError, function () {
|
||||||
|
''.matchAll(regex);
|
||||||
|
});
|
33
test/built-ins/String/prototype/matchAll/flags-undefined-throws.js
vendored
Normal file
33
test/built-ins/String/prototype/matchAll/flags-undefined-throws.js
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (C) 2019 Jordan Harband. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: pending
|
||||||
|
description: Re-throws errors when calling @@matchAll
|
||||||
|
info: |
|
||||||
|
String.prototype.matchAll ( regexp )
|
||||||
|
[...]
|
||||||
|
2. If _regexp_ is neither *undefined* nor *null*, then
|
||||||
|
1. Let _isRegExp_ be ? IsRegExp(_regexp_).
|
||||||
|
1. If _isRegExp_ is true, then
|
||||||
|
1. Let _flags_ be ? Get(_regexp_, *"flags"*).
|
||||||
|
1. Perform ? RequireObjectCoercible(_flags_).
|
||||||
|
1. If ? ToString(_flags_) does not contain *"g"*, throw a *TypeError* exception.
|
||||||
|
features: [Symbol.matchAll]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var regex = /a/g;
|
||||||
|
Object.defineProperty(regex, 'flags', { value: undefined });
|
||||||
|
|
||||||
|
assert.throws(TypeError, function () {
|
||||||
|
''.matchAll(regex);
|
||||||
|
});
|
||||||
|
|
||||||
|
Object.defineProperty(RegExp.prototype, 'flags', {
|
||||||
|
get: function () {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.throws(Test262Error, function () {
|
||||||
|
''.matchAll(/a/g);
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user