mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-25 17:53:53 +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