mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	The `test/language/class/` directory contains a small subset of Test262's tests for ES2015 classes. The majority of tests for classes are organized within `test/language/statements/class/`. - Move the tests that rely on the ClassDeclaration syntactic form from `test/language/class/` to `test/language/statements/class/`. - Move the test that relies on the ClassExpression syntactic form from `test/language/class/` to `test/language/expressions/class/`.
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (C) 2015 Caitlin Potter. All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
description: >
 | 
						|
    Functions created using ClassExpression syntactic form do not
 | 
						|
    have own properties "caller" or "arguments", but inherit them from
 | 
						|
    %FunctionPrototype%.
 | 
						|
es6id: 16.1
 | 
						|
---*/
 | 
						|
 | 
						|
var BaseClass = class {};
 | 
						|
 | 
						|
assert.sameValue(
 | 
						|
  BaseClass.hasOwnProperty('caller'), false, 'No "caller" own property'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  BaseClass.hasOwnProperty('arguments'), false, 'No "arguments" own property'
 | 
						|
);
 | 
						|
 | 
						|
assert.throws(TypeError, function() {
 | 
						|
  return BaseClass.caller;
 | 
						|
});
 | 
						|
 | 
						|
assert.throws(TypeError, function() {
 | 
						|
  BaseClass.caller = {};
 | 
						|
});
 | 
						|
 | 
						|
assert.throws(TypeError, function() {
 | 
						|
  return BaseClass.arguments;
 | 
						|
});
 | 
						|
 | 
						|
assert.throws(TypeError, function() {
 | 
						|
  BaseClass.arguments = {};
 | 
						|
});
 | 
						|
 | 
						|
var SubClass = class extends BaseClass {};
 | 
						|
 | 
						|
assert.sameValue(
 | 
						|
  SubClass.hasOwnProperty('caller'), false, 'No "caller" own property'
 | 
						|
);
 | 
						|
assert.sameValue(
 | 
						|
  SubClass.hasOwnProperty('arguments'), false, 'No "arguments" own property'
 | 
						|
);
 | 
						|
 | 
						|
assert.throws(TypeError, function() {
 | 
						|
  return SubClass.caller;
 | 
						|
});
 | 
						|
 | 
						|
assert.throws(TypeError, function() {
 | 
						|
  SubClass.caller = {};
 | 
						|
});
 | 
						|
 | 
						|
assert.throws(TypeError, function() {
 | 
						|
  return SubClass.arguments;
 | 
						|
});
 | 
						|
 | 
						|
assert.throws(TypeError, function() {
 | 
						|
  SubClass.arguments = {};
 | 
						|
});
 |