From 10606aa7562be98fa0bcc25827b4a7a10702e5dd Mon Sep 17 00:00:00 2001 From: "jarin@chromium.org" Date: Wed, 26 Mar 2014 13:14:08 +0000 Subject: [PATCH] Fix missing representation for the result of HIsSmiAndBranch. R=jkummerow@chromium.org BUG= Review URL: https://codereview.chromium.org/211273010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/hydrogen-instructions.h | 4 +++- test/mjsunit/regress/regress-is-smi-repr.js | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 test/mjsunit/regress/regress-is-smi-repr.js diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h index d22cc32..09050a5 100644 --- a/src/hydrogen-instructions.h +++ b/src/hydrogen-instructions.h @@ -4403,7 +4403,9 @@ class HIsSmiAndBranch V8_FINAL : public HUnaryControlInstruction { HIsSmiAndBranch(HValue* value, HBasicBlock* true_target = NULL, HBasicBlock* false_target = NULL) - : HUnaryControlInstruction(value, true_target, false_target) {} + : HUnaryControlInstruction(value, true_target, false_target) { + set_representation(Representation::Tagged()); + } }; diff --git a/test/mjsunit/regress/regress-is-smi-repr.js b/test/mjsunit/regress/regress-is-smi-repr.js new file mode 100644 index 0000000..e9f2b51 --- /dev/null +++ b/test/mjsunit/regress/regress-is-smi-repr.js @@ -0,0 +1,18 @@ +// 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 + +"use strict"; + +var global; + +function g() { global = this; } +Object.defineProperty(Number.prototype, "prop", { get: g }); +function f(s) { s.prop; } + +f(1); +f(1); +%OptimizeFunctionOnNextCall(f); +f(1); -- 2.7.4