// Copyright 2015 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: --allow-natives-syntax --expose-gcvarinner=newArray();inner.a={x:1};inner[0]=1.5;inner.b={x:2};assertTrue(%HasFastDoubleElements(inner));functionfoo(o){returno.field.a.x;}varouter={};outer.field=inner;foo(outer);foo(outer);foo(outer);%OptimizeFunctionOnNextCall(foo);foo(outer);// Generalize representation of field "a" of inner object.varv={getx(){return0x7fffffff;}};inner.a=v;gc();varboom=foo(outer);print(boom);assertEquals(0x7fffffff,boom);