mirror of https://github.com/tc39/test262.git
34 lines
1.5 KiB
JavaScript
34 lines
1.5 KiB
JavaScript
// 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.");
|
|
|
|
return true;
|
|
});
|