Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
michael@0 | 1 | // Copyright 2012 Mozilla Corporation. All rights reserved. |
michael@0 | 2 | // This code is governed by the BSD license found in the LICENSE file. |
michael@0 | 3 | |
michael@0 | 4 | /** |
michael@0 | 5 | * @description Tests that Intl.NumberFormat.prototype functions throw a |
michael@0 | 6 | * TypeError if called on a non-object value or an object that hasn't been |
michael@0 | 7 | * initialized as a NumberFormat. |
michael@0 | 8 | * @author Norbert Lindenberg |
michael@0 | 9 | */ |
michael@0 | 10 | |
michael@0 | 11 | var functions = { |
michael@0 | 12 | "format getter": Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, "format").get, |
michael@0 | 13 | resolvedOptions: Intl.NumberFormat.prototype.resolvedOptions |
michael@0 | 14 | }; |
michael@0 | 15 | var invalidTargets = [undefined, null, true, 0, "NumberFormat", [], {}]; |
michael@0 | 16 | |
michael@0 | 17 | Object.getOwnPropertyNames(functions).forEach(function (functionName) { |
michael@0 | 18 | var f = functions[functionName]; |
michael@0 | 19 | invalidTargets.forEach(function (target) { |
michael@0 | 20 | var error; |
michael@0 | 21 | try { |
michael@0 | 22 | f.call(target); |
michael@0 | 23 | } catch (e) { |
michael@0 | 24 | error = e; |
michael@0 | 25 | } |
michael@0 | 26 | if (error === undefined) { |
michael@0 | 27 | $ERROR("Calling " + functionName + " on " + target + " was not rejected."); |
michael@0 | 28 | } else if (error.name !== "TypeError") { |
michael@0 | 29 | $ERROR("Calling " + functionName + " on " + target + " was rejected with wrong error " + error.name + "."); |
michael@0 | 30 | } |
michael@0 | 31 | }); |
michael@0 | 32 | }); |
michael@0 | 33 |