mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 03:34:08 +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)
		
			
				
	
	
		
			43 lines
		
	
	
		
			853 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			853 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| function shouldBe(actual, expected) {
 | |
|     if (actual !== expected)
 | |
|         throw new Error('bad value: ' + actual);
 | |
| }
 | |
| 
 | |
| function test(object)
 | |
| {
 | |
|     return "hello" in object;
 | |
| }
 | |
| noInline(test);
 | |
| 
 | |
| for (var i = 0; i < 1e6; ++i) {
 | |
|     shouldBe(test({
 | |
|         hello: 42
 | |
|     }), true);
 | |
|     shouldBe(test({
 | |
|         hello: undefined,
 | |
|         world: 44
 | |
|     }), true);
 | |
|     shouldBe(test({
 | |
|         helloworld: 43,
 | |
|         ok: 44
 | |
|     }), false);
 | |
| }
 | |
| 
 | |
| function selfCache(object)
 | |
| {
 | |
|     return "hello" in object;
 | |
| }
 | |
| noInline(selfCache);
 | |
| 
 | |
| var object = {};
 | |
| object.hello = 42;
 | |
| for (var i = 0; i < 1e6; ++i)
 | |
|     shouldBe(selfCache(object), true);
 | |
| object.world = 43;
 | |
| shouldBe(selfCache(object), true);
 | |
| object.world = 43;
 | |
| shouldBe(selfCache({ __proto__: object }), true);
 | |
| delete object.hello;
 | |
| shouldBe(selfCache(object), false);
 | |
| shouldBe(selfCache({ __proto__: object }), false);
 |