michael@0: // Copyright 2011-2012 Norbert Lindenberg. All rights reserved. michael@0: // Copyright 2012 Mozilla Corporation. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * @description Tests that Intl.Collator can be subclassed. michael@0: * @author Norbert Lindenberg michael@0: */ michael@0: michael@0: $INCLUDE("testIntl.js"); michael@0: michael@0: // get a collator and have it sort an array for comparison with the subclass michael@0: var locales = ["tlh", "id", "en"]; michael@0: var a = ["A", "C", "E", "B", "D", "F"]; michael@0: var referenceCollator = new Intl.Collator(locales); michael@0: var referenceSorted = a.slice().sort(referenceCollator.compare); michael@0: michael@0: function MyCollator(locales, options) { michael@0: Intl.Collator.call(this, locales, options); michael@0: // could initialize MyCollator properties michael@0: } michael@0: michael@0: MyCollator.prototype = Object.create(Intl.Collator.prototype); michael@0: MyCollator.prototype.constructor = MyCollator; michael@0: // could add methods to MyCollator.prototype michael@0: michael@0: var collator = new MyCollator(locales); michael@0: a.sort(collator.compare); michael@0: testArraysAreSame(referenceSorted, a); michael@0: