// Copyright 2016 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 (function() { function foo(x) { x = x | 0; return Number.parseInt(x + 1); } %PrepareFunctionForOptimization(foo); assertEquals(1, foo(0)); assertEquals(2, foo(1)); %OptimizeFunctionOnNextCall(foo); assertEquals(Math.pow(2, 31), foo(Math.pow(2, 31) - 1)); })(); (function() { function foo(x) { x = x | 0; return Number.parseInt(x + 1, 0); } %PrepareFunctionForOptimization(foo); assertEquals(1, foo(0)); assertEquals(2, foo(1)); %OptimizeFunctionOnNextCall(foo); assertEquals(Math.pow(2, 31), foo(Math.pow(2, 31) - 1)); })(); (function() { function foo(x) { x = x | 0; return Number.parseInt(x + 1, 10); } %PrepareFunctionForOptimization(foo); assertEquals(1, foo(0)); assertEquals(2, foo(1)); %OptimizeFunctionOnNextCall(foo); assertEquals(Math.pow(2, 31), foo(Math.pow(2, 31) - 1)); })(); (function() { function foo(x) { x = x | 0; return Number.parseInt(x + 1, undefined); } %PrepareFunctionForOptimization(foo); assertEquals(1, foo(0)); assertEquals(2, foo(1)); %OptimizeFunctionOnNextCall(foo); assertEquals(Math.pow(2, 31), foo(Math.pow(2, 31) - 1)); })();