// |reftest| skip-if(!Intl.Segmenter) -- Intl.Segmenter is not enabled unconditionally // Copyright 2020 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-%segmentsprototype%.containing description: Verifies the isWordLike in the result when granularity is "word". info: | %Segments.prototype%.containing ( index ) 10. Return ! CreateSegmentDataObject(segmenter, string, startIndex, endIndex). CreateSegmentDataObject ( segmenter, string, startIndex, endIndex ) 11. If granularity is "word", then a. Let isWordLike be a Boolean value indicating whether the segment in string is "word-like" according to locale segmenter.[[Locale]]. b. Perform ! CreateDataPropertyOrThrow(result, "isWordLike", isWordLike). includes: [compareArray.js] features: [Intl.Segmenter] ---*/ // Some text const inputs = [ "Hello world!", // English "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?", // Vietnamese "Σοβαρές ενστάσεις Κομισιόν για τον προϋπολογισμό της Ιταλίας", // Greek "Решение Индии о покупке российских С-400 расценили как вызов США", // Russian "הרופא שהציל נשים והנערה ששועבדה ע", // Hebrew, "ترامب للملك سلمان: أنا جاد للغاية.. عليك دفع المزيد", // Arabic "भारत की एस 400 मिसाइल के मुकाबले पाक की थाड, जानें कौन कितना ताकतवर", // Hindi "ரெட் அலர்ட் எச்சரிக்கை; புதுச்சேரியில் நாளை அரசு விடுமுறை!", // Tamil "'ఉత్తర్వులు అందే వరకు ఓటర్ల తుది జాబితాను వెబ్‌సైట్లో పెట్టవద్దు'", // Telugu "台北》抹黑柯P失敗?朱學恒酸:姚文智氣pupu嗆大老闆", // Chinese "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าอาวาสเผยคนร้องเรียนรับผลกรรมแล้ว", // Thai "九州北部の一部が暴風域に入りました(日直予報士 2018年10月06日) - 日本気象協会 tenki.jp", // Japanese "법원 “다스 지분 처분권·수익권 모두 MB가 보유”", // Korean ]; const granularity = "word"; const segmenter = new Intl.Segmenter(undefined, {granularity}); inputs.forEach(function(input) { const segment = segmenter.segment(input); for (let index = 0; index < input.length; index++) { const result = segment.containing(index); const msg = "granularity: " + granularity + " input: " + input + " containing(" + index + ") "; assert.sameValue(true, result.index >= 0, msg + "index >= 0"); assert.sameValue(true, result.index < input.length, msg + "index < " + input.length); assert.sameValue("string", typeof result.input, msg + "input"); assert.sameValue("boolean", typeof result.isWordLike, msg + "isWordLike should be boolean"); assert.compareArray(Object.getOwnPropertyNames(result), ["segment", "index", "input", "isWordLike"]); } }); reportCompare(0, 0);