mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-27 01:33:59 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			1003 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1003 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Copyright (C) 2015 the V8 project authors. All rights reserved.
 | |
| // This code is governed by the BSD license found in the LICENSE file.
 | |
| /*---
 | |
| es6id: 21.1.2.4
 | |
| description: >
 | |
|   Returns abrupt completion from ToObject(template.raw.length).
 | |
| info: |
 | |
|   21.1.2.4 String.raw ( template , ...substitutions )
 | |
| 
 | |
|   1. Let substitutions be a List consisting of all of the arguments passed to
 | |
|   this function, starting with the second argument. If fewer than two arguments
 | |
|   were passed, the List is empty.
 | |
|   2. Let numberOfSubstitutions be the number of elements in substitutions.
 | |
|   3. Let cooked be ToObject(template).
 | |
|   4. ReturnIfAbrupt(cooked).
 | |
|   5. Let raw be ToObject(Get(cooked, "raw")).
 | |
|   6. ReturnIfAbrupt(raw).
 | |
|   7. Let literalSegments be ToLength(Get(raw, "length")).
 | |
|   8. ReturnIfAbrupt(literalSegments).
 | |
| ---*/
 | |
| 
 | |
| var obj = {
 | |
|   raw: {}
 | |
| };
 | |
| Object.defineProperty(obj.raw, 'length', {
 | |
|   get: function() {
 | |
|     throw new Test262Error();
 | |
|   }
 | |
| });
 | |
| 
 | |
| assert.throws(Test262Error, function() {
 | |
|   String.raw(obj);
 | |
| });
 |