summaryrefslogtreecommitdiff
path: root/deps/v8/test/intl/segmenter/segment-iterator-preceding.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/intl/segmenter/segment-iterator-preceding.js')
-rw-r--r--deps/v8/test/intl/segmenter/segment-iterator-preceding.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/deps/v8/test/intl/segmenter/segment-iterator-preceding.js b/deps/v8/test/intl/segmenter/segment-iterator-preceding.js
new file mode 100644
index 0000000000..07d73376f2
--- /dev/null
+++ b/deps/v8/test/intl/segmenter/segment-iterator-preceding.js
@@ -0,0 +1,21 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-segmenter
+
+const segmenter = new Intl.Segmenter();
+const text = "Hello World, Test 123! Foo Bar. How are you?";
+const iter = segmenter.segment(text);
+
+assertEquals("function", typeof iter.preceding);
+
+// 1.5.3.3 %SegmentIteratorPrototype%.preceding( [ from ] )
+// 3.b If ... from = 0, throw a RangeError exception.
+assertThrows(() => iter.preceding(0), RangeError);
+
+// 1.5.3.3 %SegmentIteratorPrototype%.preceding( [ from ] )
+// 3.b If from > iterator.[[SegmentIteratorString]] ... , throw a RangeError exception.
+assertDoesNotThrow(() => iter.preceding(text.length - 1));
+assertDoesNotThrow(() => iter.preceding(text.length));
+assertThrows(() => iter.preceding(text.length + 1), RangeError);