v8/test/intl/regress-9513.js
Frank Tang 76f789c334 [Intl] Fix crash bug of formatToParts and -0
1. Fix formatToParts show "plusSign" for -0 by using signbit instead of < 0
2. Fix crash bug of formatToParts while notation is either "engineering" or
   "scientific".

Bug: v8:9513
Change-Id: I36b0b995c157dc642b9c201694d0ac0bb0396988
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710148
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62856}
2019-07-22 17:28:20 +00:00

29 lines
685 B
JavaScript

// Copyright 2019 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: --harmony-intl-numberformat-unified
// Test Infinity, -Infinity, NaN won't crash with any notation in formatToParts.
let validNotations = [
"standard",
"compact",
"engineering",
"scientific",
];
let tests = [
123,
Infinity,
-Infinity,
NaN
];
for (const notation of validNotations) {
let nf = new Intl.NumberFormat("en", {notation});
for (const test of tests) {
assertDoesNotThrow(() => nf.format(test));
assertDoesNotThrow(() => nf.formatToParts(test));
}
}