Fix representation generalization for doubles.
BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/184393002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
927e5605eb
commit
38ca2629be
@ -138,7 +138,7 @@ class Representation {
|
||||
|
||||
ASSERT(kind_ != kExternal);
|
||||
ASSERT(other.kind_ != kExternal);
|
||||
if (IsHeapObject()) return other.IsDouble() || other.IsNone();
|
||||
if (IsHeapObject()) return other.IsNone();
|
||||
if (kind_ == kUInteger8 && other.kind_ == kInteger8) return false;
|
||||
if (kind_ == kUInteger16 && other.kind_ == kInteger16) return false;
|
||||
return kind_ > other.kind_;
|
||||
|
19
test/mjsunit/regress/regress-347909.js
Normal file
19
test/mjsunit/regress/regress-347909.js
Normal file
@ -0,0 +1,19 @@
|
||||
// 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
|
||||
|
||||
var a = {y:1.5};
|
||||
a.y = 0;
|
||||
var b = a.y;
|
||||
a.y = {};
|
||||
var d = 1;
|
||||
function f() {
|
||||
d = 0;
|
||||
return {y: b};
|
||||
}
|
||||
f();
|
||||
f();
|
||||
%OptimizeFunctionOnNextCall(f);
|
||||
f();
|
Loading…
Reference in New Issue
Block a user