170d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org// Copyright 2014 the V8 project authors. All rights reserved. 270d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be 370d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org// found in the LICENSE file. 470d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org 570d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org// Flags: --allow-natives-syntax --track-field-types --use-gvn 670d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org 770d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgfunction A(id) { 870d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org this.id = id; 970d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org} 1070d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org 1170d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgvar a1 = new A(1); 1270d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgvar a2 = new A(2); 1370d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org 1470d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org 1570d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgvar g; 1670d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgfunction f(o, value) { 1770d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org g = o.o; 1870d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org o.o = value; 1970d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org return o.o; 2070d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org} 2170d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org 2270d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgvar obj = {o: a1}; 2370d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org 2470d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgf(obj, a1); 2570d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgf(obj, a1); 2670d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.org%OptimizeFunctionOnNextCall(f); 2770d11c79c7833b9ab1ee185625fcf707b9480a40machenbach@chromium.orgassertEquals(a2.id, f(obj, a2).id); 28