OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 delete fast_double[2]; | 126 delete fast_double[2]; |
127 assertTrue(%HasFastDoubleElements(fast_double)); | 127 assertTrue(%HasFastDoubleElements(fast_double)); |
128 assertEquals("[1.1,2,7,4]", JSON.stringify(fast_double)); | 128 assertEquals("[1.1,2,7,4]", JSON.stringify(fast_double)); |
129 | 129 |
130 var fast_obj = [1, 2, {}, {}]; | 130 var fast_obj = [1, 2, {}, {}]; |
131 fast_obj.__proto__ = [7, 7, 7, 7]; | 131 fast_obj.__proto__ = [7, 7, 7, 7]; |
132 | 132 |
133 delete fast_obj[2]; | 133 delete fast_obj[2]; |
134 assertTrue(%HasFastObjectElements(fast_obj)); | 134 assertTrue(%HasFastObjectElements(fast_obj)); |
135 assertEquals("[1,2,7,{}]", JSON.stringify(fast_obj)); | 135 assertEquals("[1,2,7,{}]", JSON.stringify(fast_obj)); |
| 136 |
| 137 var getter_side_effect = { a: 1, |
| 138 get b() { |
| 139 delete this.a; |
| 140 delete this.c; |
| 141 this.e = 5; |
| 142 return 2; |
| 143 }, |
| 144 c: 3, |
| 145 d: 4 }; |
| 146 assertEquals('{"a":1,"b":2,"d":4}', JSON.stringify(getter_side_effect)); |
| 147 assertEquals('{"b":2,"d":4,"e":5}', JSON.stringify(getter_side_effect)); |
| 148 |
| 149 var non_enum = {}; |
| 150 non_enum.a = 1; |
| 151 Object.defineProperty(non_enum, "b", { value: 2, enumerable: false }); |
| 152 non_enum.c = 3; |
| 153 assertEquals('{"a":1,"c":3}', JSON.stringify(non_enum)); |
OLD | NEW |