summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/supportedLocalesOf-locales-arg-coered-to-object.js
blob: 9abbeeae27fdb0f620bee37a2867992549b8e80f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2012 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
es5id: 9.2.1_4
description: >
    Tests that non-objects are converted to objects before
    canonicalization.
author: Norbert Lindenberg
includes: [testIntl.js]
---*/

testWithIntlConstructors(function (Constructor) {
    // undefined is handled separately
    
    // null should result in a TypeError
    assert.throws(TypeError, function() {
        var supportedForNull = Constructor.supportedLocalesOf(null);
    }, "Null as locale list was not rejected.");
    
    // let's use an empty list for comparison
    var supportedForEmptyList = Constructor.supportedLocalesOf([]);
    // we don't compare the elements because length should be 0 - let's just verify that
    assert.sameValue(supportedForEmptyList.length, 0, "Internal test error: Assumption about length being 0 is invalid.");

    // most non-objects will be interpreted as empty lists because a missing length property is interpreted as 0
    var supportedForNumber = Constructor.supportedLocalesOf(5);
    assert.sameValue(supportedForNumber.length, supportedForEmptyList.length, "Supported locales differ between numeric and empty list input.");
    var supportedForBoolean = Constructor.supportedLocalesOf(true);
    assert.sameValue(supportedForBoolean.length, supportedForEmptyList.length, "Supported locales differ between boolean and empty list input.");
});

reportCompare(0, 0);