|  | // 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)) |