mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/9412 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>v7.x
committed by
Myles Borins
32 changed files with 357 additions and 111 deletions
@ -0,0 +1,51 @@ |
|||
// 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 signInt32(i) { |
|||
i = i|0; |
|||
return Math.sign(i); |
|||
} |
|||
|
|||
signInt32(0); |
|||
signInt32(2); |
|||
%OptimizeFunctionOnNextCall(signInt32); |
|||
assertEquals(1, signInt32(1)); |
|||
assertEquals(0, signInt32(0)); |
|||
assertEquals(-1, signInt32(-1)); |
|||
assertEquals(-1, signInt32(-1)); |
|||
assertEquals(1, signInt32(2147483647)); |
|||
assertEquals(-1, signInt32(2147483648)); |
|||
assertEquals(-1, signInt32(-2147483648)); |
|||
assertEquals(0, signInt32(NaN)); |
|||
assertEquals(0, signInt32(undefined)); |
|||
assertEquals(0, signInt32(-0)); |
|||
|
|||
function signFloat64(i) { |
|||
return Math.sign(+i); |
|||
} |
|||
|
|||
signFloat64(0.1); |
|||
signFloat64(-0.1); |
|||
%OptimizeFunctionOnNextCall(signFloat64); |
|||
assertEquals(1, signFloat64(1)); |
|||
assertEquals(1, signFloat64(0.001)); |
|||
assertEquals(-1, signFloat64(-0.002)); |
|||
assertEquals(1, signFloat64(1e100)); |
|||
assertEquals(-1, signFloat64(-2e100)); |
|||
assertEquals(0, signFloat64(0)); |
|||
assertEquals(Infinity, 1/signFloat64(0)); |
|||
assertEquals(-1, signFloat64(-1)); |
|||
assertEquals(-1, signFloat64(-1)); |
|||
assertEquals(1, signFloat64(2147483647)); |
|||
assertEquals(1, signFloat64(2147483648)); |
|||
assertEquals(-1, signFloat64(-2147483647)); |
|||
assertEquals(-1, signFloat64(-2147483648)); |
|||
assertEquals(-1, signFloat64(-2147483649)); |
|||
assertEquals(-0, signFloat64(-0)); |
|||
assertEquals(NaN, signFloat64(NaN)); |
|||
assertEquals(NaN, signFloat64(undefined)); |
|||
assertEquals(1, signFloat64(Infinity)); |
|||
assertEquals(-1, signFloat64(-Infinity)); |
@ -0,0 +1,30 @@ |
|||
// 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
|
|||
|
|||
var n; |
|||
|
|||
function Ctor() { |
|||
n = new Set(); |
|||
} |
|||
|
|||
function Check() { |
|||
n.xyz = 0x826852f4; |
|||
} |
|||
|
|||
Ctor(); |
|||
Ctor(); |
|||
%OptimizeFunctionOnNextCall(Ctor); |
|||
Ctor(); |
|||
|
|||
Check(); |
|||
Check(); |
|||
%OptimizeFunctionOnNextCall(Check); |
|||
Check(); |
|||
|
|||
Ctor(); |
|||
Check(); |
|||
|
|||
parseInt('AAAAAAAA'); |
@ -0,0 +1,31 @@ |
|||
// 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
|
|||
|
|||
var n; |
|||
|
|||
function Ctor() { |
|||
try { } catch (e) {} |
|||
n = new Set(); |
|||
} |
|||
|
|||
function Check() { |
|||
n.xyz = 0x826852f4; |
|||
} |
|||
|
|||
Ctor(); |
|||
Ctor(); |
|||
%OptimizeFunctionOnNextCall(Ctor); |
|||
Ctor(); |
|||
|
|||
Check(); |
|||
Check(); |
|||
%OptimizeFunctionOnNextCall(Check); |
|||
Check(); |
|||
|
|||
Ctor(); |
|||
Check(); |
|||
|
|||
parseInt('AAAAAAAA'); |
Loading…
Reference in new issue