| // Copyright 2014 the V8 project authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // Flags: --expose-gc --track-field-types | |
| function f1(a) { return {x:a, v:''}; } | |
| function f2(a) { return {x:{v:a}, v:''}; } | |
| function f3(a) { return {x:[], v:{v:''}}; } | |
| f3([0]); | |
| a = f1(1); | |
| a.__defineGetter__('v', function() { gc(); return f2(this); }); | |
| a.v; | |
| f3(1); |