| Test 1: Non-writable, simple type handler |
| Testing for-in enumeration |
| d: dvalue |
| Setting value to 1 |
| d: 1 |
| Testing getOwnPropertyNames enumeration |
| d: 1 |
| Setting value to 2 |
| d: 2 |
| Setting writability of d to false |
| Testing for-in enumeration |
| d: 2 |
| Setting value to 3 |
| d: 2 |
| Testing getOwnPropertyNames enumeration |
| d: 2 |
| Setting value to 4 |
| d: 2 |
| Setting writability of d to true |
| Testing for-in enumeration |
| d: 2 |
| Setting value to 5 |
| d: 5 |
| Testing getOwnPropertyNames enumeration |
| d: 5 |
| Setting value to 6 |
| d: 6 |
| Changing writability during enumeration... |
| Testing for-in enumeration |
| Setting writability of d to false |
| d: 6 |
| Setting value to 7 |
| d: 6 |
| Testing getOwnPropertyNames enumeration |
| Setting writability of d to false |
| d: 6 |
| Setting value to 8 |
| d: 6 |
| Testing for-in enumeration |
| Setting writability of d to true |
| d: 6 |
| Setting value to 9 |
| d: 9 |
| Testing getOwnPropertyNames enumeration |
| Setting writability of d to true |
| d: 9 |
| Setting value to 10 |
| d: 10 |
| Freezing object |
| Testing for-in enumeration |
| d: 10 |
| Setting value to 11 |
| d: 10 |
| Testing getOwnPropertyNames enumeration |
| d: 10 |
| Setting value to 12 |
| d: 10 |
| |
| Test 2: Non-writable, simple dictionary type handler |
| Testing for-in enumeration |
| d: dvalue |
| Setting value to 1 |
| d: 1 |
| Testing getOwnPropertyNames enumeration |
| d: 1 |
| Setting value to 2 |
| d: 2 |
| Setting writability of d to false |
| Testing for-in enumeration |
| d: 2 |
| Setting value to 3 |
| d: 2 |
| Testing getOwnPropertyNames enumeration |
| d: 2 |
| Setting value to 4 |
| d: 2 |
| Setting writability of d to true |
| Testing for-in enumeration |
| d: 2 |
| Setting value to 5 |
| d: 5 |
| Testing getOwnPropertyNames enumeration |
| d: 5 |
| Setting value to 6 |
| d: 6 |
| Changing writability during enumeration... |
| Testing for-in enumeration |
| Setting writability of d to false |
| d: 6 |
| Setting value to 7 |
| d: 6 |
| Testing getOwnPropertyNames enumeration |
| Setting writability of d to false |
| d: 6 |
| Setting value to 8 |
| d: 6 |
| Testing for-in enumeration |
| Setting writability of d to true |
| d: 6 |
| Setting value to 9 |
| d: 9 |
| Testing getOwnPropertyNames enumeration |
| Setting writability of d to true |
| d: 9 |
| Setting value to 10 |
| d: 10 |
| Freezing object |
| Testing for-in enumeration |
| d: 10 |
| Setting value to 11 |
| d: 10 |
| Testing getOwnPropertyNames enumeration |
| d: 10 |
| Setting value to 12 |
| d: 10 |
| |
| Test 3: Non-writable, dictionary type handler |
| Testing for-in enumeration |
| d: dvalue |
| Setting value to 1 |
| d: 1 |
| Testing getOwnPropertyNames enumeration |
| d: 1 |
| Setting value to 2 |
| d: 2 |
| Setting writability of d to false |
| Testing for-in enumeration |
| d: 2 |
| Setting value to 3 |
| d: 2 |
| Testing getOwnPropertyNames enumeration |
| d: 2 |
| Setting value to 4 |
| d: 2 |
| Setting writability of d to true |
| Testing for-in enumeration |
| d: 2 |
| Setting value to 5 |
| d: 5 |
| Testing getOwnPropertyNames enumeration |
| d: 5 |
| Setting value to 6 |
| d: 6 |
| Changing writability during enumeration... |
| Testing for-in enumeration |
| Setting writability of d to false |
| d: 6 |
| Setting value to 7 |
| d: 6 |
| Testing getOwnPropertyNames enumeration |
| Setting writability of d to false |
| d: 6 |
| Setting value to 8 |
| d: 6 |
| Testing for-in enumeration |
| Setting writability of d to true |
| d: 6 |
| Setting value to 9 |
| d: 9 |
| Testing getOwnPropertyNames enumeration |
| Setting writability of d to true |
| d: 9 |
| Setting value to 10 |
| d: 10 |
| Freezing object |
| Testing for-in enumeration |
| d: 10 |
| Setting value to 11 |
| d: 10 |
| Testing getOwnPropertyNames enumeration |
| d: 10 |
| Setting value to 12 |
| d: 10 |
| |
| Test 4: Accessors |
| Defining accessors for b |
| Defining accessors for f |
| Testing for-in enumeration |
| a: aValue |
| Setting value to 1 |
| a: 1 |
| b: GETTER FOR b |
| Setting value to 2 |
| SETTER FOR b |
| b: GETTER FOR b |
| d: dValue |
| Setting value to 3 |
| d: 3 |
| f: GETTER FOR f |
| Setting value to 4 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: gValue |
| Setting value to 5 |
| g: 5 |
| Testing getOwnPropertyNames enumeration |
| a: 1 |
| Setting value to 6 |
| a: 6 |
| b: GETTER FOR b |
| Setting value to 7 |
| SETTER FOR b |
| b: GETTER FOR b |
| d: 3 |
| Setting value to 8 |
| d: 8 |
| e: eValue |
| Setting value to 9 |
| e: 9 |
| f: GETTER FOR f |
| Setting value to 10 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 5 |
| Setting value to 11 |
| g: 11 |
| Defining accessors for d |
| Testing for-in enumeration |
| a: 6 |
| Setting value to 12 |
| a: 12 |
| b: GETTER FOR b |
| Setting value to 13 |
| SETTER FOR b |
| b: GETTER FOR b |
| f: GETTER FOR f |
| Setting value to 14 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 11 |
| Setting value to 15 |
| g: 15 |
| d: GETTER |
| Setting value to 16 |
| SETTER |
| d: GETTER |
| Testing getOwnPropertyNames enumeration |
| a: 12 |
| Setting value to 17 |
| a: 17 |
| b: GETTER FOR b |
| Setting value to 18 |
| SETTER FOR b |
| b: GETTER FOR b |
| e: 9 |
| Setting value to 19 |
| e: 19 |
| f: GETTER FOR f |
| Setting value to 20 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 15 |
| Setting value to 21 |
| g: 21 |
| d: GETTER |
| Setting value to 22 |
| SETTER |
| d: GETTER |
| Defining data property d with value 23 |
| Testing for-in enumeration |
| a: 17 |
| Setting value to 24 |
| a: 24 |
| b: GETTER FOR b |
| Setting value to 25 |
| SETTER FOR b |
| b: GETTER FOR b |
| f: GETTER FOR f |
| Setting value to 26 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 21 |
| Setting value to 27 |
| g: 27 |
| d: 23 |
| Setting value to 28 |
| d: 28 |
| Testing getOwnPropertyNames enumeration |
| a: 24 |
| Setting value to 29 |
| a: 29 |
| b: GETTER FOR b |
| Setting value to 30 |
| SETTER FOR b |
| b: GETTER FOR b |
| e: 19 |
| Setting value to 31 |
| e: 31 |
| f: GETTER FOR f |
| Setting value to 32 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 27 |
| Setting value to 33 |
| g: 33 |
| d: 28 |
| Setting value to 34 |
| d: 34 |
| Defining accessor property during enumeration... |
| Testing for-in enumeration |
| a: 29 |
| Setting value to 35 |
| a: 35 |
| b: GETTER FOR b |
| Setting value to 36 |
| SETTER FOR b |
| b: GETTER FOR b |
| f: GETTER FOR f |
| Setting value to 37 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 33 |
| Setting value to 38 |
| g: 38 |
| Defining accessors for d |
| d: GETTER |
| Setting value to 39 |
| SETTER |
| d: GETTER |
| Testing getOwnPropertyNames enumeration |
| a: 35 |
| Setting value to 40 |
| a: 40 |
| b: GETTER FOR b |
| Setting value to 41 |
| SETTER FOR b |
| b: GETTER FOR b |
| e: 31 |
| Setting value to 42 |
| e: 42 |
| f: GETTER FOR f |
| Setting value to 43 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 38 |
| Setting value to 44 |
| g: 44 |
| d: GETTER |
| Setting value to 45 |
| SETTER |
| d: GETTER |
| Defining data property during enumeration... |
| Testing for-in enumeration |
| a: 40 |
| Setting value to 47 |
| a: 47 |
| b: GETTER FOR b |
| Setting value to 49 |
| SETTER FOR b |
| b: GETTER FOR b |
| f: GETTER FOR f |
| Setting value to 51 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 44 |
| Setting value to 53 |
| g: 53 |
| Defining data property d with value 54 |
| d: 54 |
| Setting value to 55 |
| d: 55 |
| Testing getOwnPropertyNames enumeration |
| a: 47 |
| Setting value to 57 |
| a: 57 |
| b: GETTER FOR b |
| Setting value to 59 |
| SETTER FOR b |
| b: GETTER FOR b |
| e: 42 |
| Setting value to 61 |
| e: 61 |
| f: GETTER FOR f |
| Setting value to 63 |
| SETTER FOR f |
| f: GETTER FOR f |
| g: 53 |
| Setting value to 65 |
| g: 65 |
| d: 55 |
| Setting value to 67 |
| d: 67 |