diff options
Diffstat (limited to 'js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase')
28 files changed, 919 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A10.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A10.js new file mode 100644 index 0000000000..07ac6f90b7 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A10.js @@ -0,0 +1,37 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + The String.prototype.toLocaleUpperCase.length property has the attribute + ReadOnly +es5id: 15.5.4.19_A10 +description: > + Checking if varying the String.prototype.toLocaleUpperCase.length + property fails +includes: [propertyHelper.js] +---*/ + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (!(String.prototype.toLocaleUpperCase.hasOwnProperty('length'))) { + throw new Test262Error('#1: String.prototype.toLocaleUpperCase.hasOwnProperty(\'length\') return true. Actual: ' + String.prototype.toLocaleUpperCase.hasOwnProperty('length')); +} +// +////////////////////////////////////////////////////////////////////////////// + +var __obj = String.prototype.toLocaleUpperCase.length; + +verifyNotWritable(String.prototype.toLocaleUpperCase, "length", null, function() { + return "shifted"; +}); + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if (String.prototype.toLocaleUpperCase.length !== __obj) { + throw new Test262Error('#2: __obj = String.prototype.toLocaleUpperCase.length; String.prototype.toLocaleUpperCase.length = function(){return "shifted";}; String.prototype.toLocaleUpperCase.length === __obj. Actual: ' + String.prototype.toLocaleUpperCase.length); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A11.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A11.js new file mode 100644 index 0000000000..24681ed604 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A11.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: The length property of the toLocaleUpperCase method is 0 +es5id: 15.5.4.19_A11 +description: Checking String.prototype.toLocaleUpperCase.length +---*/ + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (!(String.prototype.toLocaleUpperCase.hasOwnProperty("length"))) { + throw new Test262Error('#1: String.prototype.toLocaleUpperCase.hasOwnProperty("length") return true. Actual: ' + String.prototype.toLocaleUpperCase.hasOwnProperty("length")); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if (String.prototype.toLocaleUpperCase.length !== 0) { + throw new Test262Error('#2: String.prototype.toLocaleUpperCase.length === 0. Actual: ' + String.prototype.toLocaleUpperCase.length); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T1.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T1.js new file mode 100644 index 0000000000..dfdae2894e --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T1.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T1 +description: Arguments is true, and instance is object +---*/ + +var __instance = new Object(true); + +__instance.toLocaleUpperCase = String.prototype.toLocaleUpperCase; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (__instance.toLocaleUpperCase() !== "TRUE") { + throw new Test262Error('#1: __instance = new Object(true); __instance.toLocaleUpperCase = String.prototype.toLocaleUpperCase; __instance.toLocaleUpperCase() === "TRUE". Actual: ' + __instance.toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T10.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T10.js new file mode 100644 index 0000000000..1548daa7ea --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T10.js @@ -0,0 +1,27 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T10 +description: > + Call toLocaleUpperCase() function of object with overrode toString + function +---*/ + +var __obj = { + toString: function() { + return "\u0041b"; + } +} +__obj.toLocaleUpperCase = String.prototype.toLocaleUpperCase; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (__obj.toLocaleUpperCase() !== "AB") { + throw new Test262Error('#1: var __obj = {toString:function(){return "\u0041b";}}; __obj.toLocaleUpperCase = String.prototype.toLocaleUpperCase; __obj.toLocaleUpperCase() ==="AB". Actual: ' + __obj.toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T11.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T11.js new file mode 100644 index 0000000000..19d8a43eca --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T11.js @@ -0,0 +1,31 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T11 +description: > + Override toString function, toString throw exception, then call + toLocaleUpperCase() function for this object +---*/ + +var __obj = { + toString: function() { + throw "intostr"; + } +} +__obj.toLocaleUpperCase = String.prototype.toLocaleUpperCase; +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +try { + var x = __obj.toLocaleUpperCase(); + throw new Test262Error('#1: "var x = __obj.toLocaleUpperCase()" lead to throwing exception'); +} catch (e) { + if (e !== "intostr") { + throw new Test262Error('#1.1: Exception === "intostr". Actual: ' + e); + } +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T12.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T12.js new file mode 100644 index 0000000000..250b208e21 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T12.js @@ -0,0 +1,34 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T12 +description: > + Override toString and valueOf functions, valueOf throw exception, + then call toLocaleUpperCase() function for this object +---*/ + +var __obj = { + toString: function() { + return {}; + }, + valueOf: function() { + throw "intostr"; + } +} +__obj.toLocaleUpperCase = String.prototype.toLocaleUpperCase; +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +try { + var x = __obj.toLocaleUpperCase(); + throw new Test262Error('#1: "var x = __obj.toLocaleUpperCase()" lead to throwing exception'); +} catch (e) { + if (e !== "intostr") { + throw new Test262Error('#1.1: Exception === "intostr". Actual: ' + e); + } +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T13.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T13.js new file mode 100644 index 0000000000..ab19cf326a --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T13.js @@ -0,0 +1,37 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T13 +description: > + Override toString and valueOf functions, then call + toLocaleUpperCase() function for this object +---*/ + +var __obj = { + toString: function() { + return {}; + }, + valueOf: function() { + return 1; + } +} +__obj.toLocaleUpperCase = String.prototype.toLocaleUpperCase; +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (__obj.toLocaleUpperCase() !== "1") { + throw new Test262Error('#1: var __obj = {toString:function(){return {};},valueOf:function(){return 1;}}; __obj.toLocaleUpperCase = String.prototype.toLocaleUpperCase; __obj.toLocaleUpperCase() ==="1". Actual: ' + __obj.toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if (__obj.toLocaleUpperCase().length !== 1) { + throw new Test262Error('#2: var __obj = {toString:function(){return {};},valueOf:function(){return 1;}}; __obj.toLocaleUpperCase = String.prototype.toLocaleUpperCase; __obj.toLocaleUpperCase().length === 1. Actual: ' + __obj.toLocaleUpperCase().length); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T14.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T14.js new file mode 100644 index 0000000000..c76d70bd29 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T14.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T14 +description: Call toLocaleUpperCase() function for RegExp object +---*/ + +var __reg = new RegExp("abc"); +__reg.toLocaleUpperCase = String.prototype.toLocaleUpperCase; +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (__reg.toLocaleUpperCase() !== "/ABC/") { + throw new Test262Error('#1: var __reg = new RegExp("abc"); __reg.toLocaleUpperCase = String.prototype.toLocaleUpperCase; __reg.toLocaleUpperCase() === "/ABC/". Actual: ' + __reg.toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T2.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T2.js new file mode 100644 index 0000000000..3fe8267677 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T2.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T2 +description: Instance is Boolean object +---*/ + +var __instance = new Boolean; + +__instance.toLocaleUpperCase = String.prototype.toLocaleUpperCase; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (__instance.toLocaleUpperCase() !== "FALSE") { + throw new Test262Error('#1: __instance = new Boolean; __instance.toLocaleUpperCase = String.prototype.toLocaleUpperCase; __instance.toLocaleUpperCase() === "FALSE". Actual: ' + __instance.toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T3.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T3.js new file mode 100644 index 0000000000..23b5df7c2e --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T3.js @@ -0,0 +1,18 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T3 +description: Checking by using eval +---*/ + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (eval("\"bj\"").toLocaleUpperCase() !== "BJ") { + throw new Test262Error('#1: eval("\\"bj\\"").toLocaleUpperCase() === "BJ". Actual: ' + eval("\"bj\"").toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T4.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T4.js new file mode 100644 index 0000000000..6afd8033f0 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T4.js @@ -0,0 +1,47 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T4 +description: > + Call toLocaleUpperCase() function without arguments of string and + from empty string +---*/ + +var __lowerCase = "".toLocaleUpperCase(); +var __expected = ""; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (__lowerCase.length !== __expected.length) { + throw new Test262Error('#1: __lowerCase = "".toLocaleUpperCase(); __expected = ""; __lowerCase.length === __expected.length. Actual: ' + __lowerCase.length); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if (__lowerCase.index !== __expected.index) { + throw new Test262Error('#2: __lowerCase = "".toLocaleUpperCase(); __expected = ""; __lowerCase.index === __expected.index. Actual: ' + __lowerCase.index); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if (__lowerCase.input !== __expected.input) { + throw new Test262Error('#3: __lowerCase = "".toLocaleUpperCase(); __expected = ""; __lowerCase.input === __expected.input. Actual: ' + __lowerCase.input); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#4 +if (__lowerCase[0] !== __expected[0]) { + throw new Test262Error('#4: __lowerCase = "".toLocaleUpperCase(); __lowerCase[0]===' + __expected[0] + '. Actual: ' + __lowerCase[0]); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T5.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T5.js new file mode 100644 index 0000000000..bc0b5822ca --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T5.js @@ -0,0 +1,23 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T5 +description: Call toLocaleUpperCase() function of function call +---*/ + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +//since ToString(null) evaluates to "null" match(null) evaluates to match("null") +if (function() { + return "GnulLuNa" + }().toLocaleUpperCase() !== "GNULLUNA") { + throw new Test262Error('#1: function(){return "GnulLuNa"}().toLocaleUpperCase() === "GNULLUNA". Actual: ' + function() { + return "GnulLuNa" + }().toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T6.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T6.js new file mode 100644 index 0000000000..d72635a568 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T6.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T6 +description: Call toLocaleUpperCase() function of Number.NEGATIVE_INFINITY +---*/ + +Number.prototype.toLocaleUpperCase = String.prototype.toLocaleUpperCase; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if ((Number.NEGATIVE_INFINITY).toLocaleUpperCase() !== "-INFINITY") { + throw new Test262Error('#1: Number.prototype.toLocaleUpperCase = String.prototype.toLocaleUpperCase; (Number.NEGATIVE_INFINITY).toLocaleUpperCase() === "-INFINITY". Actual: ' + (Number.NEGATIVE_INFINITY).toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T7.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T7.js new file mode 100644 index 0000000000..87420328a6 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T7.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T7 +description: Call toLocaleUpperCase() function of NaN +---*/ + +Number.prototype.toLocaleUpperCase = String.prototype.toLocaleUpperCase; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (NaN.toLocaleUpperCase() !== "NAN") { + throw new Test262Error('#1: Number.prototype.toLocaleUpperCase = String.prototype.toLocaleUpperCase; NaN.toLocaleUpperCase()=== "NAN". Actual: ' + NaN.toLocaleUpperCase()); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T8.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T8.js new file mode 100644 index 0000000000..ce1d49011f --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T8.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T8 +description: Call toLocaleUpperCase() function of Infinity +---*/ + +Number.prototype.toLocaleUpperCase = String.prototype.toLocaleUpperCase; + +if (Infinity.toLocaleUpperCase() !== "INFINITY") { + throw new Test262Error('#1: Number.prototype.toLocaleUpperCase = String.prototype.toLocaleUpperCase; Infinity.toLocaleUpperCase()=== "INFINITY". Actual: ' + Infinity.toLocaleUpperCase()); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T9.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T9.js new file mode 100644 index 0000000000..644e10bd04 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T9.js @@ -0,0 +1,53 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase() +es5id: 15.5.4.19_A1_T9 +description: Call toLocaleUpperCase() function of string object +---*/ + +var __obj = { + valueOf: function() {}, + toString: void 0 +}; + +var __lowerCase = new String(__obj).toLocaleUpperCase(); + +var __expected = "UNDEFINED"; + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (__lowerCase.length !== __expected.length) { + throw new Test262Error('#1: __obj = {valueOf:function(){}, toString:void 0}; __lowerCase = new String(__obj).toLocaleUpperCase(); __expected ="UNDEFINED"; __lowerCase.length === __expected.length. Actual: ' + __lowerCase.length); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if (__lowerCase.index !== __expected.index) { + throw new Test262Error('#2: __obj = {valueOf:function(){}, toString:void 0}; __lowerCase = new String(__obj).toLocaleUpperCase(); __expected ="UNDEFINED"; __lowerCase.index === __expected.index. Actual: ' + __lowerCase.index); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if (__lowerCase.input !== __expected.input) { + throw new Test262Error('#3: __obj = {valueOf:function(){}, toString:void 0}; __lowerCase = new String(__obj).toLocaleUpperCase(); __expected ="UNDEFINED"; __lowerCase.input === __expected.input. Actual: ' + __lowerCase.input); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#4 +for (var index = 0; index < __expected.length; index++) { + if (__lowerCase[index] !== __expected[index]) { + throw new Test262Error('#4.' + index + ': __obj = {valueOf:function(){}, toString:void 0}; __lowerCase = new String(__obj).toLocaleUpperCase(); __expected ="UNDEFINED"; __lowerCase[' + index + ']===' + __expected[index] + '. Actual: ' + __lowerCase[index]); + } +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A2_T1.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A2_T1.js new file mode 100644 index 0000000000..5ddf56ba2a --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A2_T1.js @@ -0,0 +1,36 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + String.prototype.toLocaleUpperCase() return a string, but not a String + object +es5id: 15.5.4.19_A2_T1 +description: Checking returned result +---*/ + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if ("Hello, WoRlD!".toLocaleUpperCase() !== "HELLO, WORLD!") { + throw new Test262Error('#1: "Hello, WoRlD!".toLocaleUpperCase() === "HELLO, WORLD!". Actual: ' + ("Hello, WoRlD!".toLocaleUpperCase())); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if ("Hello, WoRlD!".toLocaleUpperCase() !== String("HELLO, WORLD!")) { + throw new Test262Error('#2: "Hello, WoRlD!".toLocaleUpperCase() === String("HELLO, WORLD!"). Actual: ' + ("Hello, WoRlD!".toLocaleUpperCase())); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#3 +if ("Hello, WoRlD!".toLocaleUpperCase() === new String("HELLO, WORLD!")) { + throw new Test262Error('#3: "Hello, WoRlD!".toLocaleUpperCase() !== new String("HELLO, WORLD!"'); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A6.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A6.js new file mode 100644 index 0000000000..d2ad63105b --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A6.js @@ -0,0 +1,18 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase has not prototype property +es5id: 15.5.4.19_A6 +description: Checking String.prototype.toLocaleUpperCase.prototype +---*/ + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (String.prototype.toLocaleUpperCase.prototype !== undefined) { + throw new Test262Error('#1: String.prototype.toLocaleUpperCase.prototype === undefined. Actual: ' + String.prototype.toLocaleUpperCase.prototype); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A7.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A7.js new file mode 100644 index 0000000000..fbde6f1043 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A7.js @@ -0,0 +1,23 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: String.prototype.toLocaleUpperCase can't be used as constructor +es5id: 15.5.4.19_A7 +description: > + Checking if creating the String.prototype.toLocaleUpperCase object + fails +---*/ + +var __FACTORY = String.prototype.toLocaleUpperCase; + +try { + var __instance = new __FACTORY; + throw new Test262Error('#1: __FACTORY = String.prototype.toLocaleUpperCase; "__instance = new __FACTORY" lead to throwing exception'); +} catch (e) { + if ((e instanceof TypeError) !== true) { + throw new Test262Error('#1.1: var __instance = new __FACTORY; Object has no construct lead a TypeError. Actual: ' + (e)); + } +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A8.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A8.js new file mode 100644 index 0000000000..43939e080b --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A8.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + The String.prototype.toLocaleUpperCase.length property has the attribute + DontEnum +es5id: 15.5.4.19_A8 +description: > + Checking if enumerating the + String.prototype.toLocaleUpperCase.length property fails +---*/ + +////////////////////////////////////////////////////////////////////////////// +//CHECK#0 +if (!(String.prototype.toLocaleUpperCase.hasOwnProperty('length'))) { + throw new Test262Error('#0: String.prototype.toLocaleUpperCase.hasOwnProperty(\'length\') return true. Actual: ' + String.prototype.toLocaleUpperCase.hasOwnProperty('length')); +} +// +////////////////////////////////////////////////////////////////////////////// + + +////////////////////////////////////////////////////////////////////////////// +// CHECK#1 +if (String.prototype.toLocaleUpperCase.propertyIsEnumerable('length')) { + throw new Test262Error('#1: String.prototype.toLocaleUpperCase.propertyIsEnumerable(\'length\') return false'); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +// CHECK#2 +var count = 0; + +for (var p in String.prototype.toLocaleUpperCase) { + if (p === "length") count++; +} + +if (count !== 0) { + throw new Test262Error('#2: count=0; for (p in String.prototype.toLocaleUpperCase){if (p==="length") count++;}; count === 0. Actual: ' + count); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A9.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A9.js new file mode 100644 index 0000000000..b411014e54 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A9.js @@ -0,0 +1,38 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: | + The String.prototype.toLocaleUpperCase.length property does not have the + attribute DontDelete +es5id: 15.5.4.19_A9 +description: > + Checking if deleting the String.prototype.toLocaleUpperCase.length + property fails +---*/ + +////////////////////////////////////////////////////////////////////////////// +//CHECK#0 +if (!(String.prototype.toLocaleUpperCase.hasOwnProperty('length'))) { + throw new Test262Error('#0: String.prototype.toLocaleUpperCase.hasOwnProperty(\'length\') return true. Actual: ' + String.prototype.toLocaleUpperCase.hasOwnProperty('length')); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#1 +if (!delete String.prototype.toLocaleUpperCase.length) { + throw new Test262Error('#1: delete String.prototype.toLocaleUpperCase.length return true'); +} +// +////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////// +//CHECK#2 +if (String.prototype.toLocaleUpperCase.hasOwnProperty('length')) { + throw new Test262Error('#2: delete String.prototype.toLocaleUpperCase.length; String.prototype.toLocaleUpperCase.hasOwnProperty(\'length\') return false. Actual: ' + String.prototype.toLocaleUpperCase.hasOwnProperty('length')); +} +// +////////////////////////////////////////////////////////////////////////////// + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/browser.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/browser.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/browser.js diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/name.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/name.js new file mode 100644 index 0000000000..e20dd69220 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/name.js @@ -0,0 +1,28 @@ +// Copyright (C) 2015 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 21.1.3.21 +description: > + String.prototype.toLocaleUpperCase.name is "toLocaleUpperCase". +info: | + String.prototype.toLocaleUpperCase ( [ reserved1 [ , reserved2 ] ] ) + + 17 ECMAScript Standard Built-in Objects: + Every built-in Function object, including constructors, that is not + identified as an anonymous function has a name property whose value + is a String. + + Unless otherwise specified, the name property of a built-in Function + object, if it exists, has the attributes { [[Writable]]: false, + [[Enumerable]]: false, [[Configurable]]: true }. +includes: [propertyHelper.js] +---*/ + +assert.sameValue(String.prototype.toLocaleUpperCase.name, "toLocaleUpperCase"); + +verifyNotEnumerable(String.prototype.toLocaleUpperCase, "name"); +verifyNotWritable(String.prototype.toLocaleUpperCase, "name"); +verifyConfigurable(String.prototype.toLocaleUpperCase, "name"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/not-a-constructor.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/not-a-constructor.js new file mode 100644 index 0000000000..2dbfcb12e1 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/not-a-constructor.js @@ -0,0 +1,35 @@ +// Copyright (C) 2020 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-ecmascript-standard-built-in-objects +description: > + String.prototype.toLocaleUpperCase does not implement [[Construct]], is not new-able +info: | + ECMAScript Function Objects + + Built-in function objects that are not identified as constructors do not + implement the [[Construct]] internal method unless otherwise specified in + the description of a particular function. + + sec-evaluatenew + + ... + 7. If IsConstructor(constructor) is false, throw a TypeError exception. + ... +includes: [isConstructor.js] +features: [Reflect.construct, arrow-function] +---*/ + +assert.sameValue( + isConstructor(String.prototype.toLocaleUpperCase), + false, + 'isConstructor(String.prototype.toLocaleUpperCase) must return false' +); + +assert.throws(TypeError, () => { + new String.prototype.toLocaleUpperCase(); +}, '`new String.prototype.toLocaleUpperCase()` throws TypeError'); + + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/shell.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/shell.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/shell.js diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/special_casing.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/special_casing.js new file mode 100644 index 0000000000..16edb26757 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/special_casing.js @@ -0,0 +1,137 @@ +// Copyright (C) 2015 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: > + Check if String.prototype.toLocaleUpperCase supports mappings defined in SpecialCasings +info: | + The result must be derived according to the locale-insensitive case mappings in the Unicode Character + Database (this explicitly includes not only the UnicodeData.txt file, but also all locale-insensitive + mappings in the SpecialCasings.txt file that accompanies it). +es5id: 15.5.4.19 +es6id: 21.1.3.21 +---*/ + +// SpecialCasing.txt, except for conditional mappings. + +assert.sameValue("\u00DF".toLocaleUpperCase(), "\u0053\u0053", "LATIN SMALL LETTER SHARP S"); + +assert.sameValue("\u0130".toLocaleUpperCase(), "\u0130", "LATIN CAPITAL LETTER I WITH DOT ABOVE"); + +assert.sameValue("\uFB00".toLocaleUpperCase(), "\u0046\u0046", "LATIN SMALL LIGATURE FF"); +assert.sameValue("\uFB01".toLocaleUpperCase(), "\u0046\u0049", "LATIN SMALL LIGATURE FI"); +assert.sameValue("\uFB02".toLocaleUpperCase(), "\u0046\u004C", "LATIN SMALL LIGATURE FL"); +assert.sameValue("\uFB03".toLocaleUpperCase(), "\u0046\u0046\u0049", "LATIN SMALL LIGATURE FFI"); +assert.sameValue("\uFB04".toLocaleUpperCase(), "\u0046\u0046\u004C", "LATIN SMALL LIGATURE FFL"); +assert.sameValue("\uFB05".toLocaleUpperCase(), "\u0053\u0054", "LATIN SMALL LIGATURE LONG S T"); +assert.sameValue("\uFB06".toLocaleUpperCase(), "\u0053\u0054", "LATIN SMALL LIGATURE ST"); + +assert.sameValue("\u0587".toLocaleUpperCase(), "\u0535\u0552", "ARMENIAN SMALL LIGATURE ECH YIWN"); +assert.sameValue("\uFB13".toLocaleUpperCase(), "\u0544\u0546", "ARMENIAN SMALL LIGATURE MEN NOW"); +assert.sameValue("\uFB14".toLocaleUpperCase(), "\u0544\u0535", "ARMENIAN SMALL LIGATURE MEN ECH"); +assert.sameValue("\uFB15".toLocaleUpperCase(), "\u0544\u053B", "ARMENIAN SMALL LIGATURE MEN INI"); +assert.sameValue("\uFB16".toLocaleUpperCase(), "\u054E\u0546", "ARMENIAN SMALL LIGATURE VEW NOW"); +assert.sameValue("\uFB17".toLocaleUpperCase(), "\u0544\u053D", "ARMENIAN SMALL LIGATURE MEN XEH"); + +assert.sameValue("\u0149".toLocaleUpperCase(), "\u02BC\u004E", "LATIN SMALL LETTER N PRECEDED BY APOSTROPHE"); + +assert.sameValue("\u0390".toLocaleUpperCase(), "\u0399\u0308\u0301", "GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS"); +assert.sameValue("\u03B0".toLocaleUpperCase(), "\u03A5\u0308\u0301", "GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS"); + +assert.sameValue("\u01F0".toLocaleUpperCase(), "\u004A\u030C", "LATIN SMALL LETTER J WITH CARON"); +assert.sameValue("\u1E96".toLocaleUpperCase(), "\u0048\u0331", "LATIN SMALL LETTER H WITH LINE BELOW"); +assert.sameValue("\u1E97".toLocaleUpperCase(), "\u0054\u0308", "LATIN SMALL LETTER T WITH DIAERESIS"); +assert.sameValue("\u1E98".toLocaleUpperCase(), "\u0057\u030A", "LATIN SMALL LETTER W WITH RING ABOVE"); +assert.sameValue("\u1E99".toLocaleUpperCase(), "\u0059\u030A", "LATIN SMALL LETTER Y WITH RING ABOVE"); +assert.sameValue("\u1E9A".toLocaleUpperCase(), "\u0041\u02BE", "LATIN SMALL LETTER A WITH RIGHT HALF RING"); + +assert.sameValue("\u1F50".toLocaleUpperCase(), "\u03A5\u0313", "GREEK SMALL LETTER UPSILON WITH PSILI"); +assert.sameValue("\u1F52".toLocaleUpperCase(), "\u03A5\u0313\u0300", "GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA"); +assert.sameValue("\u1F54".toLocaleUpperCase(), "\u03A5\u0313\u0301", "GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA"); +assert.sameValue("\u1F56".toLocaleUpperCase(), "\u03A5\u0313\u0342", "GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI"); +assert.sameValue("\u1FB6".toLocaleUpperCase(), "\u0391\u0342", "GREEK SMALL LETTER ALPHA WITH PERISPOMENI"); +assert.sameValue("\u1FC6".toLocaleUpperCase(), "\u0397\u0342", "GREEK SMALL LETTER ETA WITH PERISPOMENI"); +assert.sameValue("\u1FD2".toLocaleUpperCase(), "\u0399\u0308\u0300", "GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA"); +assert.sameValue("\u1FD3".toLocaleUpperCase(), "\u0399\u0308\u0301", "GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA"); +assert.sameValue("\u1FD6".toLocaleUpperCase(), "\u0399\u0342", "GREEK SMALL LETTER IOTA WITH PERISPOMENI"); +assert.sameValue("\u1FD7".toLocaleUpperCase(), "\u0399\u0308\u0342", "GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI"); +assert.sameValue("\u1FE2".toLocaleUpperCase(), "\u03A5\u0308\u0300", "GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA"); +assert.sameValue("\u1FE3".toLocaleUpperCase(), "\u03A5\u0308\u0301", "GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA"); +assert.sameValue("\u1FE4".toLocaleUpperCase(), "\u03A1\u0313", "GREEK SMALL LETTER RHO WITH PSILI"); +assert.sameValue("\u1FE6".toLocaleUpperCase(), "\u03A5\u0342", "GREEK SMALL LETTER UPSILON WITH PERISPOMENI"); +assert.sameValue("\u1FE7".toLocaleUpperCase(), "\u03A5\u0308\u0342", "GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI"); +assert.sameValue("\u1FF6".toLocaleUpperCase(), "\u03A9\u0342", "GREEK SMALL LETTER OMEGA WITH PERISPOMENI"); + +assert.sameValue("\u1F80".toLocaleUpperCase(), "\u1F08\u0399", "GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI"); +assert.sameValue("\u1F81".toLocaleUpperCase(), "\u1F09\u0399", "GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F82".toLocaleUpperCase(), "\u1F0A\u0399", "GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F83".toLocaleUpperCase(), "\u1F0B\u0399", "GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F84".toLocaleUpperCase(), "\u1F0C\u0399", "GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F85".toLocaleUpperCase(), "\u1F0D\u0399", "GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F86".toLocaleUpperCase(), "\u1F0E\u0399", "GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI"); +assert.sameValue("\u1F87".toLocaleUpperCase(), "\u1F0F\u0399", "GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI"); + +assert.sameValue("\u1F88".toLocaleUpperCase(), "\u1F08\u0399", "GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI"); +assert.sameValue("\u1F89".toLocaleUpperCase(), "\u1F09\u0399", "GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F8A".toLocaleUpperCase(), "\u1F0A\u0399", "GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F8B".toLocaleUpperCase(), "\u1F0B\u0399", "GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F8C".toLocaleUpperCase(), "\u1F0C\u0399", "GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F8D".toLocaleUpperCase(), "\u1F0D\u0399", "GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F8E".toLocaleUpperCase(), "\u1F0E\u0399", "GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI"); +assert.sameValue("\u1F8F".toLocaleUpperCase(), "\u1F0F\u0399", "GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI"); + +assert.sameValue("\u1F90".toLocaleUpperCase(), "\u1F28\u0399", "GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI"); +assert.sameValue("\u1F91".toLocaleUpperCase(), "\u1F29\u0399", "GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F92".toLocaleUpperCase(), "\u1F2A\u0399", "GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F93".toLocaleUpperCase(), "\u1F2B\u0399", "GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F94".toLocaleUpperCase(), "\u1F2C\u0399", "GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F95".toLocaleUpperCase(), "\u1F2D\u0399", "GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1F96".toLocaleUpperCase(), "\u1F2E\u0399", "GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI"); +assert.sameValue("\u1F97".toLocaleUpperCase(), "\u1F2F\u0399", "GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI"); + +assert.sameValue("\u1F98".toLocaleUpperCase(), "\u1F28\u0399", "GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI"); +assert.sameValue("\u1F99".toLocaleUpperCase(), "\u1F29\u0399", "GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F9A".toLocaleUpperCase(), "\u1F2A\u0399", "GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F9B".toLocaleUpperCase(), "\u1F2B\u0399", "GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F9C".toLocaleUpperCase(), "\u1F2C\u0399", "GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F9D".toLocaleUpperCase(), "\u1F2D\u0399", "GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1F9E".toLocaleUpperCase(), "\u1F2E\u0399", "GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI"); +assert.sameValue("\u1F9F".toLocaleUpperCase(), "\u1F2F\u0399", "GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI"); + +assert.sameValue("\u1FA0".toLocaleUpperCase(), "\u1F68\u0399", "GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI"); +assert.sameValue("\u1FA1".toLocaleUpperCase(), "\u1F69\u0399", "GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FA2".toLocaleUpperCase(), "\u1F6A\u0399", "GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FA3".toLocaleUpperCase(), "\u1F6B\u0399", "GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FA4".toLocaleUpperCase(), "\u1F6C\u0399", "GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FA5".toLocaleUpperCase(), "\u1F6D\u0399", "GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FA6".toLocaleUpperCase(), "\u1F6E\u0399", "GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI"); +assert.sameValue("\u1FA7".toLocaleUpperCase(), "\u1F6F\u0399", "GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI"); + +assert.sameValue("\u1FA8".toLocaleUpperCase(), "\u1F68\u0399", "GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI"); +assert.sameValue("\u1FA9".toLocaleUpperCase(), "\u1F69\u0399", "GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1FAA".toLocaleUpperCase(), "\u1F6A\u0399", "GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1FAB".toLocaleUpperCase(), "\u1F6B\u0399", "GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1FAC".toLocaleUpperCase(), "\u1F6C\u0399", "GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1FAD".toLocaleUpperCase(), "\u1F6D\u0399", "GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI"); +assert.sameValue("\u1FAE".toLocaleUpperCase(), "\u1F6E\u0399", "GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI"); +assert.sameValue("\u1FAF".toLocaleUpperCase(), "\u1F6F\u0399", "GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI"); + +assert.sameValue("\u1FB3".toLocaleUpperCase(), "\u0391\u0399", "GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI"); +assert.sameValue("\u1FBC".toLocaleUpperCase(), "\u0391\u0399", "GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI"); +assert.sameValue("\u1FC3".toLocaleUpperCase(), "\u0397\u0399", "GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI"); +assert.sameValue("\u1FCC".toLocaleUpperCase(), "\u0397\u0399", "GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI"); +assert.sameValue("\u1FF3".toLocaleUpperCase(), "\u03A9\u0399", "GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI"); +assert.sameValue("\u1FFC".toLocaleUpperCase(), "\u03A9\u0399", "GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI"); + +assert.sameValue("\u1FB2".toLocaleUpperCase(), "\u1FBA\u0399", "GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FB4".toLocaleUpperCase(), "\u0386\u0399", "GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FC2".toLocaleUpperCase(), "\u1FCA\u0399", "GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FC4".toLocaleUpperCase(), "\u0389\u0399", "GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FF2".toLocaleUpperCase(), "\u1FFA\u0399", "GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI"); +assert.sameValue("\u1FF4".toLocaleUpperCase(), "\u038F\u0399", "GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI"); + +assert.sameValue("\u1FB7".toLocaleUpperCase(), "\u0391\u0342\u0399", "GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI"); +assert.sameValue("\u1FC7".toLocaleUpperCase(), "\u0397\u0342\u0399", "GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI"); +assert.sameValue("\u1FF7".toLocaleUpperCase(), "\u03A9\u0342\u0399", "GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/supplementary_plane.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/supplementary_plane.js new file mode 100644 index 0000000000..1d1b40ff81 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/supplementary_plane.js @@ -0,0 +1,72 @@ +// Copyright (C) 2015 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: String.prototype.toLocaleUpperCase() iterates over code points +info: | + 21.1.3.21 String.prototype.toLocaleUpperCase() + ... + This function interprets a String value as a sequence of UTF-16 encoded + code points, as described in 6.1.4. + + This function works exactly the same as toUpperCase [...]. + + 21.1.3.24 String.prototype.toUpperCase ( ) + + This function behaves in exactly the same way as String.prototype.toLowerCase, + except that code points are mapped to their uppercase equivalents as specified + in the Unicode Character Database. + + 21.1.3.22 String.prototype.toLowerCase ( ) + + ... + 4. Let cpList be a List containing in order the code points as defined in + 6.1.4 of S, starting at the first element of S. + 5. For each code point c in cpList, if the Unicode Character Database + provides a language insensitive lower case equivalent of c then replace + c in cpList with that equivalent code point(s). +es6id: 21.1.3.21 +---*/ + +assert.sameValue("\uD801\uDC28".toLocaleUpperCase(), "\uD801\uDC00", "DESERET SMALL LETTER LONG I"); +assert.sameValue("\uD801\uDC29".toLocaleUpperCase(), "\uD801\uDC01", "DESERET SMALL LETTER LONG E"); +assert.sameValue("\uD801\uDC2A".toLocaleUpperCase(), "\uD801\uDC02", "DESERET SMALL LETTER LONG A"); +assert.sameValue("\uD801\uDC2B".toLocaleUpperCase(), "\uD801\uDC03", "DESERET SMALL LETTER LONG AH"); +assert.sameValue("\uD801\uDC2C".toLocaleUpperCase(), "\uD801\uDC04", "DESERET SMALL LETTER LONG O"); +assert.sameValue("\uD801\uDC2D".toLocaleUpperCase(), "\uD801\uDC05", "DESERET SMALL LETTER LONG OO"); +assert.sameValue("\uD801\uDC2E".toLocaleUpperCase(), "\uD801\uDC06", "DESERET SMALL LETTER SHORT I"); +assert.sameValue("\uD801\uDC2F".toLocaleUpperCase(), "\uD801\uDC07", "DESERET SMALL LETTER SHORT E"); +assert.sameValue("\uD801\uDC30".toLocaleUpperCase(), "\uD801\uDC08", "DESERET SMALL LETTER SHORT A"); +assert.sameValue("\uD801\uDC31".toLocaleUpperCase(), "\uD801\uDC09", "DESERET SMALL LETTER SHORT AH"); +assert.sameValue("\uD801\uDC32".toLocaleUpperCase(), "\uD801\uDC0A", "DESERET SMALL LETTER SHORT O"); +assert.sameValue("\uD801\uDC33".toLocaleUpperCase(), "\uD801\uDC0B", "DESERET SMALL LETTER SHORT OO"); +assert.sameValue("\uD801\uDC34".toLocaleUpperCase(), "\uD801\uDC0C", "DESERET SMALL LETTER AY"); +assert.sameValue("\uD801\uDC35".toLocaleUpperCase(), "\uD801\uDC0D", "DESERET SMALL LETTER OW"); +assert.sameValue("\uD801\uDC36".toLocaleUpperCase(), "\uD801\uDC0E", "DESERET SMALL LETTER WU"); +assert.sameValue("\uD801\uDC37".toLocaleUpperCase(), "\uD801\uDC0F", "DESERET SMALL LETTER YEE"); +assert.sameValue("\uD801\uDC38".toLocaleUpperCase(), "\uD801\uDC10", "DESERET SMALL LETTER H"); +assert.sameValue("\uD801\uDC39".toLocaleUpperCase(), "\uD801\uDC11", "DESERET SMALL LETTER PEE"); +assert.sameValue("\uD801\uDC3A".toLocaleUpperCase(), "\uD801\uDC12", "DESERET SMALL LETTER BEE"); +assert.sameValue("\uD801\uDC3B".toLocaleUpperCase(), "\uD801\uDC13", "DESERET SMALL LETTER TEE"); +assert.sameValue("\uD801\uDC3C".toLocaleUpperCase(), "\uD801\uDC14", "DESERET SMALL LETTER DEE"); +assert.sameValue("\uD801\uDC3D".toLocaleUpperCase(), "\uD801\uDC15", "DESERET SMALL LETTER CHEE"); +assert.sameValue("\uD801\uDC3E".toLocaleUpperCase(), "\uD801\uDC16", "DESERET SMALL LETTER JEE"); +assert.sameValue("\uD801\uDC3F".toLocaleUpperCase(), "\uD801\uDC17", "DESERET SMALL LETTER KAY"); +assert.sameValue("\uD801\uDC40".toLocaleUpperCase(), "\uD801\uDC18", "DESERET SMALL LETTER GAY"); +assert.sameValue("\uD801\uDC41".toLocaleUpperCase(), "\uD801\uDC19", "DESERET SMALL LETTER EF"); +assert.sameValue("\uD801\uDC42".toLocaleUpperCase(), "\uD801\uDC1A", "DESERET SMALL LETTER VEE"); +assert.sameValue("\uD801\uDC43".toLocaleUpperCase(), "\uD801\uDC1B", "DESERET SMALL LETTER ETH"); +assert.sameValue("\uD801\uDC44".toLocaleUpperCase(), "\uD801\uDC1C", "DESERET SMALL LETTER THEE"); +assert.sameValue("\uD801\uDC45".toLocaleUpperCase(), "\uD801\uDC1D", "DESERET SMALL LETTER ES"); +assert.sameValue("\uD801\uDC46".toLocaleUpperCase(), "\uD801\uDC1E", "DESERET SMALL LETTER ZEE"); +assert.sameValue("\uD801\uDC47".toLocaleUpperCase(), "\uD801\uDC1F", "DESERET SMALL LETTER ESH"); +assert.sameValue("\uD801\uDC48".toLocaleUpperCase(), "\uD801\uDC20", "DESERET SMALL LETTER ZHEE"); +assert.sameValue("\uD801\uDC49".toLocaleUpperCase(), "\uD801\uDC21", "DESERET SMALL LETTER ER"); +assert.sameValue("\uD801\uDC4A".toLocaleUpperCase(), "\uD801\uDC22", "DESERET SMALL LETTER EL"); +assert.sameValue("\uD801\uDC4B".toLocaleUpperCase(), "\uD801\uDC23", "DESERET SMALL LETTER EM"); +assert.sameValue("\uD801\uDC4C".toLocaleUpperCase(), "\uD801\uDC24", "DESERET SMALL LETTER EN"); +assert.sameValue("\uD801\uDC4D".toLocaleUpperCase(), "\uD801\uDC25", "DESERET SMALL LETTER ENG"); +assert.sameValue("\uD801\uDC4E".toLocaleUpperCase(), "\uD801\uDC26", "DESERET SMALL LETTER OI"); +assert.sameValue("\uD801\uDC4F".toLocaleUpperCase(), "\uD801\uDC27", "DESERET SMALL LETTER EW"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/this-value-not-obj-coercible.js b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/this-value-not-obj-coercible.js new file mode 100644 index 0000000000..f3e2977792 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/toLocaleUpperCase/this-value-not-obj-coercible.js @@ -0,0 +1,34 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-string.prototype.tolocaleuppercase +description: The "this" value must be object-coercible +info: | + This function works exactly the same as toUpperCase except that its result is + intended to yield the correct result for the host environment's current + locale, rather than a locale-independent result. + + 21.1.3.26 String.prototype.toUpperCase + + This function behaves in exactly the same way as + String.prototype.toLowerCase, except that code points are mapped to their + uppercase equivalents as specified in the Unicode Character Database. + + 21.1.3.24 String.prototype.toLowerCase + + 1. Let O be ? RequireObjectCoercible(this value). +---*/ + +var toLocaleUpperCase = String.prototype.toLocaleUpperCase; + +assert.sameValue(typeof toLocaleUpperCase, 'function'); + +assert.throws(TypeError, function() { + toLocaleUpperCase.call(undefined); +}, 'undefined'); + +assert.throws(TypeError, function() { + toLocaleUpperCase.call(null); +}, 'null'); + +reportCompare(0, 0); |