| // 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 pr = new Intl.PluralRules(); |
| const inputs = [undefined, null, true, false, 1, '', 'test', {}, { a: 1 }]; |
| |
| inputs.forEach(input => { |
| const number = Number(input); |
| const expected = pr.select(number); |
| const actual = pr.select(input); |
| assertEquals(actual, expected); |
| }); |
| |
| let count = 0; |
| const dummyObject = {}; |
| dummyObject[Symbol.toPrimitive] = () => ++count; |
| assertEquals(pr.select(dummyObject), pr.select(count)); |
| assertEquals(count, 1); |
| |
| assertEquals(pr.select(0), pr.select(-0)) |