9eca23e9ed
This CL adds inlining for the Number constructor if new.target is not present. The lowering is BigInt compatible, i.e. it converts BigInts to numbers. Bug: v8:7904 Change-Id: If03b9f872d82e50b6ded7709069181c33dc44e82 Reviewed-on: https://chromium-review.googlesource.com/1118557 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#54454}
26 lines
725 B
JavaScript
26 lines
725 B
JavaScript
// Copyright 2018 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.
|
|
const A = [undefined, 12, "123"];
|
|
|
|
function NumberConstructor() {
|
|
Number.isNaN(Number(A[0]))
|
|
Number.isNaN(Number(A[1]))
|
|
Number.isNaN(Number(A[2]))
|
|
}
|
|
createSuite('Constructor', 1000, NumberConstructor, ()=>{});
|
|
|
|
function NumberPlus() {
|
|
Number.isNaN(+(A[0]))
|
|
Number.isNaN(+(A[1]))
|
|
Number.isNaN(+(A[2]))
|
|
}
|
|
createSuite('UnaryPlus', 1000, NumberPlus, ()=>{});
|
|
|
|
function NumberParseFloat() {
|
|
Number.isNaN(parseFloat(A[0]))
|
|
Number.isNaN(parseFloat(A[1]))
|
|
Number.isNaN(parseFloat(A[2]))
|
|
}
|
|
createSuite('ParseFloat', 1000, NumberParseFloat, ()=>{});
|