nodejs/deps/v8/test/mjsunit/maglev/math-ceil.js
Michaël Zasso f226350fcb deps: update V8 to 11.3.244.4
PR-URL: https://github.com/nodejs/node/pull/47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
2023-03-31 14:15:23 +00:00

24 lines
731 B
JavaScript

// Copyright 2023 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 --maglev
function f(o) {
return Math.ceil(o.a);
}
%PrepareFunctionForOptimization(f);
f({a: {valueOf(){ return 7.5; }}});
f({a: {valueOf(){ return 7.5; }}});
f({a: {valueOf(){ return 7.5; }}});
f({a: {valueOf(){ return 7.5; }}});
%OptimizeMaglevOnNextCall(f);
assertEquals(NaN, f({a:NaN}));
assertEquals(Infinity, f({a:Infinity}));
assertEquals(-Infinity, f({a:-Infinity}));
assertEquals(-Infinity, 1/f({a:-0.5}));
assertEquals(1, 1/f({a:0.5}));
assertEquals(8, f({a: {valueOf(){
%DeoptimizeFunction(f);
return 7.5; }}}));