// Copyright 2021 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-initializenumberformat description: Checks handling of the roundingIncrement option to the NumberFormat constructor. includes: [compareArray.js] features: [Intl.NumberFormat-v3] ---*/ const values = [ [undefined, 1], [1, 1], [2, 2], [5, 5], [10, 10], [20, 20], [25, 25], [50, 50], [100, 100], [200, 200], [250, 250], [500, 500], [1000, 1000], [2000, 2000], [2500, 2500], [5000, 5000], [true, 1], ["2", 2], [{valueOf: function() { return 5; }}, 5], ]; for (const [value, expected] of values) { const callOrder = []; const nf = new Intl.NumberFormat([], { get notation() { callOrder.push("notation"); return "standard"; }, get roundingIncrement() { callOrder.push("roundingIncrement"); return value; } }); const resolvedOptions = nf.resolvedOptions(); assert("roundingIncrement" in resolvedOptions, "has property for value " + value); assert.sameValue(resolvedOptions.roundingIncrement, expected); assert.compareArray(callOrder, ["notation", "roundingIncrement"]); }