| 
									
										
										
										
											2020-07-04 15:42:19 +01:00
										 |  |  | test("length is 2", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(Reflect.getOwnPropertyDescriptor).toHaveLength(2); | 
					
						
							| 
									
										
										
										
											2020-07-04 15:42:19 +01:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2020-05-01 11:06:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 15:42:19 +01:00
										 |  |  | describe("errors", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     test("target must be an object", () => { | 
					
						
							|  |  |  |         [null, undefined, "foo", 123, NaN, Infinity].forEach(value => { | 
					
						
							|  |  |  |             expect(() => { | 
					
						
							|  |  |  |                 Reflect.getOwnPropertyDescriptor(value); | 
					
						
							|  |  |  |             }).toThrowWithMessage( | 
					
						
							|  |  |  |                 TypeError, | 
					
						
							|  |  |  |                 "First argument of Reflect.getOwnPropertyDescriptor() must be an object" | 
					
						
							|  |  |  |             ); | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2020-05-01 11:06:27 +01:00
										 |  |  |     }); | 
					
						
							| 
									
										
										
										
											2020-07-04 15:42:19 +01:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2020-05-01 11:06:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 15:42:19 +01:00
										 |  |  | describe("normal behavior", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     test("get descriptor of undefined object property", () => { | 
					
						
							|  |  |  |         expect(Reflect.getOwnPropertyDescriptor({})).toBeUndefined(); | 
					
						
							|  |  |  |         expect(Reflect.getOwnPropertyDescriptor({}, "foo")).toBeUndefined(); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2020-05-01 11:06:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     test("get descriptor of defined object property", () => { | 
					
						
							|  |  |  |         var o = { foo: "bar" }; | 
					
						
							|  |  |  |         var d = Reflect.getOwnPropertyDescriptor(o, "foo"); | 
					
						
							|  |  |  |         expect(d.value).toBe("bar"); | 
					
						
							|  |  |  |         expect(d.writable).toBeTrue(); | 
					
						
							|  |  |  |         expect(d.enumerable).toBeTrue(); | 
					
						
							|  |  |  |         expect(d.configurable).toBeTrue(); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2020-05-01 11:06:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     test("get descriptor of array length property", () => { | 
					
						
							|  |  |  |         var a = []; | 
					
						
							|  |  |  |         d = Reflect.getOwnPropertyDescriptor(a, "length"); | 
					
						
							|  |  |  |         expect(d.value).toBe(0); | 
					
						
							|  |  |  |         expect(d.writable).toBeTrue(); | 
					
						
							|  |  |  |         expect(d.enumerable).toBeFalse(); | 
					
						
							|  |  |  |         expect(d.configurable).toBeFalse(); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2020-07-04 15:42:19 +01:00
										 |  |  | }); |