• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright JS Foundation and other contributors, http://js.foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15assert ([].toLocaleString() === "");
16assert ([1].toLocaleString() === "1");
17assert ([1,2].toLocaleString() === "1,2");
18assert ([1,2,3].toLocaleString() === "1,2,3");
19
20var test_ok = {
21  length: 1,
22  toLocaleString: function() { return "1"; }
23};
24
25assert ([3, test_ok, 4, test_ok].toLocaleString() === "3,1,4,1");
26
27
28var obj = { toLocaleString: function() {} };
29var test_non_str_locale = [undefined, obj, null, obj, obj];
30
31assert(test_non_str_locale.toLocaleString() === ",undefined,,undefined,undefined");
32
33var test_fail = {
34  toLocaleString: "FAIL"
35};
36
37try {
38  [test_fail].toLocaleString();
39  assert (false);
40} catch (e) {
41  assert (e instanceof TypeError);
42}
43
44
45var test_fail_call = {
46  toLocaleString: function() { throw new ReferenceError("foo"); }
47};
48
49
50try {
51  [1, 2, test_fail_call].toLocaleString();
52  assert (false);
53} catch (e) {
54  assert (e.message === "foo");
55  assert (e instanceof ReferenceError);
56}
57