From 2591003da520c35420149b4c4754af0205a2c313 Mon Sep 17 00:00:00 2001 From: "bmeurer@chromium.org" Date: Mon, 16 Jun 2014 13:21:42 +0000 Subject: [PATCH] Add unit test for regression in GVN caused by field type tracking. BUG=v8:3347 LOG=n R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/333273004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- test/mjsunit/regress/regress-gvn-ftt.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 test/mjsunit/regress/regress-gvn-ftt.js diff --git a/test/mjsunit/regress/regress-gvn-ftt.js b/test/mjsunit/regress/regress-gvn-ftt.js new file mode 100644 index 0000000..d2cb443 --- /dev/null +++ b/test/mjsunit/regress/regress-gvn-ftt.js @@ -0,0 +1,27 @@ +// 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: --allow-natives-syntax --track-field-types --use-gvn + +function A(id) { + this.id = id; +} + +var a1 = new A(1); +var a2 = new A(2); + + +var g; +function f(o, value) { + g = o.o; + o.o = value; + return o.o; +} + +var obj = {o: a1}; + +f(obj, a1); +f(obj, a1); +%OptimizeFunctionOnNextCall(f); +assertEquals(a2.id, f(obj, a2).id); -- 2.7.4