v8/test/mjsunit/compiler/regress-4389-4.js
bmeurer fef38c21e8 [crankshaft] DCE must not eliminate (observable) math operations.
The HUnaryMathOperation cannot be eliminated in general, because the
spec requires a ToNumber conversion on the input, which is observable
of course.

BUG=v8:4389
LOG=y

Review URL: https://codereview.chromium.org/1307413003

Cr-Commit-Position: refs/heads/master@{#30343}
2015-08-25 06:24:55 +00:00

12 lines
366 B
JavaScript

// 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 --dead-code-elimination
function foo(x) { Math.round(x); }
foo(1);
foo(2);
%OptimizeFunctionOnNextCall(foo);
assertThrows(function() { foo(Symbol()) }, TypeError);