mirror of https://github.com/tc39/test262.git
tests for String.prototype.matchAll changes (#2389)
Per https://github.com/tc39/ecma262/pull/1716
This commit is contained in:
parent
a1acc23cd8
commit
f3e950e8ed
|
@ -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);
|
||||
});
|
|
@ -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…
Reference in New Issue