summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Intl/Segmenter/cross-compartment.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/Intl/Segmenter/cross-compartment.js')
-rw-r--r--js/src/tests/non262/Intl/Segmenter/cross-compartment.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/js/src/tests/non262/Intl/Segmenter/cross-compartment.js b/js/src/tests/non262/Intl/Segmenter/cross-compartment.js
new file mode 100644
index 0000000000..58845e6b62
--- /dev/null
+++ b/js/src/tests/non262/Intl/Segmenter/cross-compartment.js
@@ -0,0 +1,35 @@
+// |reftest| skip-if(!this.hasOwnProperty('Intl')||!this.Intl.Segmenter)
+
+var g = newGlobal({});
+
+var segmenter = new Intl.Segmenter();
+var ccwSegmenter = new g.Intl.Segmenter();
+
+const SegmentsPrototype = Object.getPrototypeOf(segmenter.segment(""));
+const SegmentIteratorPrototype = Object.getPrototypeOf(segmenter.segment("")[Symbol.iterator]());
+
+// Intl.Segmenter.prototype.resolvedOptions ()
+var resolved1 = Intl.Segmenter.prototype.resolvedOptions.call(segmenter);
+var resolved2 = Intl.Segmenter.prototype.resolvedOptions.call(ccwSegmenter);
+assertDeepEq(resolved1, resolved2);
+
+// Intl.Segmenter.prototype.segment
+var seg1 = Intl.Segmenter.prototype.segment.call(segmenter, "This is a test.");
+var seg2 = Intl.Segmenter.prototype.segment.call(ccwSegmenter, "This is a test.");
+
+// %Segments.prototype%.containing ( index )
+var data1 = SegmentsPrototype.containing.call(seg1, 10);
+var data2 = SegmentsPrototype.containing.call(seg2, 10);
+assertDeepEq(data1, data2);
+
+// %Segments.prototype% [ @@iterator ] ()
+var iter1 = SegmentsPrototype[Symbol.iterator].call(seg1);
+var iter2 = SegmentsPrototype[Symbol.iterator].call(seg2);
+
+// %SegmentIterator.prototype%.next ()
+var result1 = SegmentIteratorPrototype.next.call(iter1);
+var result2 = SegmentIteratorPrototype.next.call(iter2);
+assertDeepEq(result1, result2);
+
+if (typeof reportCompare === "function")
+ reportCompare(0, 0);