| 
									
										
										
										
											2020-04-23 16:06:01 +01:00
										 |  |  | load("test-common.js"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try { | 
					
						
							|  |  |  |     ["foo", 123, null, undefined].forEach(value => { | 
					
						
							|  |  |  |         assertThrowsError(() => { | 
					
						
							|  |  |  |             "prop" in value; | 
					
						
							|  |  |  |         }, { | 
					
						
							|  |  |  |             error: TypeError, | 
					
						
							| 
									
										
										
										
											2020-06-09 22:48:01 -07:00
										 |  |  |             message: "'in' operator must be used on an object" | 
					
						
							| 
									
										
										
										
											2020-04-23 16:06:01 +01:00
										 |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var o = {foo: "bar", bar: undefined}; | 
					
						
							|  |  |  |     assert("" in o === false); | 
					
						
							|  |  |  |     assert("foo" in o === true); | 
					
						
							|  |  |  |     assert("bar" in o === true); | 
					
						
							|  |  |  |     assert("baz" in o === false); | 
					
						
							|  |  |  |     assert("toString" in o === true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var a = ["hello", "friends"]; | 
					
						
							|  |  |  |     assert(0 in a === true); | 
					
						
							|  |  |  |     assert(1 in a === true); | 
					
						
							|  |  |  |     assert(2 in a === false); | 
					
						
							|  |  |  |     assert("0" in a === true); | 
					
						
							|  |  |  |     assert("hello" in a === false); | 
					
						
							|  |  |  |     assert("friends" in a === false); | 
					
						
							|  |  |  |     assert("length" in a === true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var s = new String("foo"); | 
					
						
							|  |  |  |     assert("length" in s); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     console.log("PASS"); | 
					
						
							|  |  |  | } catch (e) { | 
					
						
							|  |  |  |     console.log("FAIL: " + e); | 
					
						
							|  |  |  | } |