cross-compartment.js (1385B)
1 // |reftest| skip-if(!this.hasOwnProperty('Intl')||!this.Intl.Segmenter) 2 3 var g = newGlobal({}); 4 5 var segmenter = new Intl.Segmenter(); 6 var ccwSegmenter = new g.Intl.Segmenter(); 7 8 const SegmentsPrototype = Object.getPrototypeOf(segmenter.segment("")); 9 const SegmentIteratorPrototype = Object.getPrototypeOf(segmenter.segment("")[Symbol.iterator]()); 10 11 // Intl.Segmenter.prototype.resolvedOptions () 12 var resolved1 = Intl.Segmenter.prototype.resolvedOptions.call(segmenter); 13 var resolved2 = Intl.Segmenter.prototype.resolvedOptions.call(ccwSegmenter); 14 assertDeepEq(resolved1, resolved2); 15 16 // Intl.Segmenter.prototype.segment 17 var seg1 = Intl.Segmenter.prototype.segment.call(segmenter, "This is a test."); 18 var seg2 = Intl.Segmenter.prototype.segment.call(ccwSegmenter, "This is a test."); 19 20 // %Segments.prototype%.containing ( index ) 21 var data1 = SegmentsPrototype.containing.call(seg1, 10); 22 var data2 = SegmentsPrototype.containing.call(seg2, 10); 23 assertDeepEq(data1, data2); 24 25 // %Segments.prototype% [ @@iterator ] () 26 var iter1 = SegmentsPrototype[Symbol.iterator].call(seg1); 27 var iter2 = SegmentsPrototype[Symbol.iterator].call(seg2); 28 29 // %SegmentIterator.prototype%.next () 30 var result1 = SegmentIteratorPrototype.next.call(iter1); 31 var result2 = SegmentIteratorPrototype.next.call(iter2); 32 assertDeepEq(result1, result2); 33 34 if (typeof reportCompare === "function") 35 reportCompare(0, 0);