mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 11:44:31 +01:00 
			
		
		
		
	* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
		
			
				
	
	
		
			40 lines
		
	
	
		
			907 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			907 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| function assert(b) {
 | |
|     if (!b)
 | |
|         throw new Error("Bad assertion");
 | |
| }
 | |
| 
 | |
| function test(f) {
 | |
|     for (let i = 0; i < 1000; i++)
 | |
|         f();
 | |
| }
 | |
| 
 | |
| let constructors = [Error, String, RegExp, function() {}, class C {}];
 | |
| 
 | |
| for (let constructor of constructors) {
 | |
|     test(function() {
 | |
|         let proxy = new Proxy(constructor, {});
 | |
|         assert(new constructor instanceof proxy);
 | |
|     });
 | |
| }
 | |
| 
 | |
| test(function() {
 | |
|     let called = false;
 | |
|     let proxy = new Proxy(function(){ called = true; }, {});
 | |
|     assert(new proxy instanceof proxy);
 | |
|     assert(called);
 | |
| });
 | |
| 
 | |
| test(function() {
 | |
|     let called = false;
 | |
|     let handler = {
 | |
|         get: function(target, prop) {
 | |
|             if (prop === "prototype")
 | |
|                 return {};
 | |
|             return target[prop];
 | |
|         }
 | |
|     };
 | |
|     let proxy = new Proxy(function(){ called = true; }, handler);
 | |
|     assert(!(new proxy instanceof proxy));
 | |
|     assert(called);
 | |
| });
 |