cc494cd3f9
Change the initial value of breakType to undefined Store break type into bits Change the algorithm Bug: v8:6891 Change-Id: Id2cc1e90c28d92364318928fc8a377f172ebb339 Reviewed-on: https://chromium-review.googlesource.com/c/1374996 Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#58298}
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.following);
|
|
|
|
// ToNumber("ABC") return NaN, ToInteger("ABC") return +0, ToIndex("ABC") return 0
|
|
assertDoesNotThrow(() => iter.following("ABC"));
|
|
// ToNumber(null) return +0, ToInteger(null) return +0, ToIndex(null) return 0
|
|
assertDoesNotThrow(() => iter.following(null));
|
|
// ToNumber(1.4) return 1.4, ToInteger(1.4) return 1, ToIndex(1.4) return 1
|
|
assertDoesNotThrow(() => iter.following(1.4));
|
|
|
|
assertThrows(() => iter.following(-3), RangeError);
|
|
|
|
// 1.5.3.2 %SegmentIteratorPrototype%.following( [ from ] )
|
|
// 3.b If from >= iterator.[[SegmentIteratorString]], throw a RangeError exception.
|
|
assertDoesNotThrow(() => iter.following(text.length - 1));
|
|
assertThrows(() => iter.following(text.length), RangeError);
|
|
assertThrows(() => iter.following(text.length + 1), RangeError);
|