bf95c6fa67
Design doc https://goo.gl/fgc2Cp Bug: v8:6891 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8bc5ea3137fd1b66213403ae9ea3461f40efc977 Reviewed-on: https://chromium-review.googlesource.com/c/1257923 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56757}
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
// 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);
|
|
|
|
assertThrows(() => iter.preceding("ABC"), RangeError);
|
|
assertThrows(() => iter.preceding(null), RangeError);
|
|
assertThrows(() => iter.preceding(1.4), RangeError);
|
|
assertThrows(() => iter.preceding(-3), RangeError);
|
|
|
|
// 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);
|